Docker 容器编排的部署
实验环境:
两个节点(master、node)
所有节点已配置好主机名网卡、yum源,并安装docker-ce。
IP规划
IP | 主机名 |
---|---|
192.168.15.133 | master |
192.168.15.134 | node |
一、部署swarm集群
1、配置主机映射
所有节点
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.15.133 master
192.168.15.134 node
2、配置时间同步
所有节点安装chrony服务。
yum install -y chrony
Master 节点修改/etc/chrony.conf 文件
sed -i 's/^server/#&/' /etc/chrony.conf
cat >> /etc/chrony.conf << EOF
local stratum 10
server master iburst
allow all
EOF
Master 节点重启 chronyd 服务并设为开机启动,开启网络时间同步功能。
systemctl enable chronyd && systemctl restart chronyd
timedatectl set-ntp true
Node 节点修改/etc/chrony.conf 文件,指定内网 Master 节点为上游 NTP 服务器,重启服
务并设为开机启动。
sed -i 's/^server/#&/' /etc/chrony.conf
echo server 192.168.15.133 iburst >> /etc/chrony.conf
systemctl enable chronyd && systemctl restart chronyd
所有节点执行 chronyc sources 命令,查询结果中如果存在以“^*”开头的行,即说明已经同步成功。
chronyc sources
3、配置 Docker API
所有节点开启 Docker API并上传加载Docker容器镜像。
vi /lib/systemd/system/docker.service
将
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
systemctl daemon-reload
systemctl restart docker
./image.sh
4、初始化集群
在 Master 节点创建 Swarm 集群。
docker swarm init --advertise-addr 192.168.15.133
5、 Node 节点加入集群
复制前面的 docker swarm join 命令,在 Node 节点执行以加入 Swarm 集群。
docker swarm join --token
SWMTKN-1-2oyrpgkp41z40zg0z6l0yppv6420vz18rr171kqv0mfsbiufii-c3ficc1qh782wo567uav1
6n3n 10.18.4.39:2377
如果初始化时没有记录下 docker swarm init 提示的添加 worker 的完整命令,可以通过docker swarm join-token worker 命令查看。
docker swarm join-token worker
6、验证集群
登录 Master 节点,查看各节点状态。
docker node ls
7、安装 Portainer
登录 Master 节点,安装 Portainer。
docker volume create portainer_data
docker service create --name portainer --publish 9000:9000 --replicas=1 --constraint 'node.role == manager' --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock --mount type=volume,src=portainer_data,dst=/data portainer/portainer -H unix:///var/run/docker.sock
8、登录 Portainer
访问地址:http://192.168.15.133:9000