如何部署Oracle Linux 10.x Docker生产集群环境?

Docker

1 基础知识

如何部署Docker生产环境?

2 最佳实践

2.1 系统环境配置

2.1.1 系统环境信息

HOST = hd0[1-n] OS = Oracle Linux 10.x x86_64
IP Address = 10.168.0.2[10-1x]

2.1.2 部署常用工具

In hd0[1-n]

yum install -y vim wget net-tools unzip

2.1.3 设置内存权限大小

In hd0[1-n]

echo 'vm.max_map_count = 262144' >> /etc/sysctl.d/100-docker.conf
sysctl -p /etc/sysctl.d/100-docker.conf
sysctl -a | grep vm.max_map_count

显示如下则达成目的:

vm.max_map_count = 262144

2.1.4 关闭SELinux

In hd0[1-n]

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

2.1.5 设置时区

In hd0[1-n]

timedatectl set-timezone Asia/Shanghai

2.1.6 配置名称解析

In hd0[1-n]

echo '10.168.0.210 hd01 hd01.cmdschool.org' >> /etc/hosts
echo '10.168.0.211 hd02 hd02.cmdschool.org' >> /etc/hosts

2.2 软件环境配置

2.2.1 升级系统到指定版本

In hd0[1-n]

yum -y update

然后,重启系统验证配置,

reboot

2.2.2 手动配置Docker的源(可选)

In hd0[1-n]

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

或者,可是使用如下手动设置,

curl https://download.docker.com/linux/rhel/docker-ce.repo > /etc/yum.repos.d/docker-ce.repo

2.3.3 安装DockerCE相关包

In hd0[1-n]

dnf install -y docker-ce-29.4.0

验证管理用户的创建,

grep -i docker /etc/group /etc/passwd

显示如下:

/etc/group:docker:x:994:

注:docker组已经创建,但尚未有用户加入该组

2.3.4 启动Docker并配置自启动

In hd0[1-n]

systemctl enable docker.service
systemctl start docker.service
systemctl status docker.service

2.3.5 修改Docker存储位置

In hd0[1-n] 查看存储的类型与位置

docker info | egrep -i "Docker Root Dir|Storage Driver"

显示如下:

 Storage Driver: overlayfs
 Docker Root Dir: /var/lib/docker

停止Dcoker的服务

systemctl stop docker.service

迁移存储数据

mkdir -p /data/docker/
mv /var/lib/docker /data/docker/runningdata

定义新的存储位置:

vim /etc/docker/daemon.json

更改如下参数:

{
  "storage-driver": "overlay2",
  "data-root": "/data/docker/runningdata"
}

启动Dcoker的服务

systemctl start docker.service

确认钱以后的存储的类型与位置

docker info | egrep -i "Docker Root Dir|Storage Driver"

显示如下:

Storage Driver: overlay2
Docker Root Dir: /data/docker/runningdata

2.3.6 校验安装的版本

In hd0[1-n]

docker --version

2.3.7 查看更详细的版本

In hd0[1-n]

docker info

信息显示如下:

Containers: 0
 Running: 0
 Paused: 0
[…]

3 搭建Swarm集群

3.1 Swarm集群的基础知识

– Swarm集群是一组运行Docker并加入集群中的机器
– 加入集群后,运行的Dckcek将在集群管理器中执行
– 群体中的机器可以是物理节点也可以是虚拟节点
– Swarm集群支持多种策略运行容器(例如应用运行在负载最低节点)
– 集群管理者是集群中唯一可以执行命令的机器或授权的其他机器

3.2 配置公钥认证(可选)

In hd0[1-n]

ssh-keygen

向导如下,

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
[…]

然后,使用如下命令部署公钥,

ssh-copy-id -i ~/.ssh/id_rsa.pub hd02

部署完毕后,使用如下命令测试,

ssh hd02

3.3 建立你的集群

3.3.1 配置主机防火墙

In hd0[1-n]

systemctl stop firewalld.service
systemctl disable firewalld.service

3.3.2 执行的步骤

运行“docker swarm init”启用集群模式
运行“docker swarm join”将新的节点加入集群

3.3.3 管理主机启用集群

In hd01

docker swarm init

提示如下:

Swarm initialized: current node (km3cx63bzg9pfaue0o8hbo8m9) is now a manager.

To add a worker to this swarm, run the following command:

	docker swarm join --token SWMTKN-1-2o1l0zx4ow0av23rvffgi8827t6dk8zobmscph7ypscgplm61p-ejp2a1v7665uyw2yr0yoft3zv 10.168.0.210:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

3.3.4 将成员主机加入集群

In hd0[2-n]

docker swarm join --token SWMTKN-1-2o1l0zx4ow0av23rvffgi8827t6dk8zobmscph7ypscgplm61p-ejp2a1v7665uyw2yr0yoft3zv 10.168.0.210:2377

另外,以上字符串如果忘记,可通过如下命令查询,
In hd01

docker swarm join-token worker

3.3.5 查看群集成员

In hd01

docker node ls

显示如下:

ID                            HOSTNAME                STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
km3cx63bzg9pfaue0o8hbo8m9 *   hd01.cmdschool.org      Ready     Active         Leader           29.4.0
jw10e1kylrk5pwvs1bzv0l95b     hd02.cmdschool.org      Ready     Active                          29.4.0

4 部署Docker Registry服务

如何部署生产环境的Docker Registry服务?

5 部署Portainer服务

如何部署生产环境的Portainer服务?

参阅文档
====================

Docker引擎
———-
https://docs.docker.com/engine/

Docker引擎的安装
———-
https://docs.docker.com/engine/install/rhel/#installation-methods
https://docs.docker.com/engine/install

没有评论

发表回复

Docker
如何部署生产环境的Portainer服务?

1 部署Docker集群 如何部署Oracle Linux 10.x Docker生产环境? 2 部 …

Docker
如何部署生产环境的Docker Registry服务?

1 部署Docker集群 如何部署Oracle Linux 10.x Docker生产环境? 2 部 …

Docker
如何安装部署WinBoat容器应用?

1 前言 一个问题,一篇文章,一出故事。 昨天完成了WinBoat的部署,今天尝试安装应用。 2 最 …