-
准备三台虚拟机,对应网络条件如下:
IP地址 主机名 作用 172.18.74.26 manager 管理节点 172.18.74.29 g160402 worker 172.18.74.25 u180402 worker 按照上述条件修改主机名,并向/etc/hosts添加其他两个节点的解析配置
-
将所有的节点的 docker daemon 的监听方式更改为0.0.0.0:2375
-
配置一
#修改[service] ExecStart 行如下 example@manager:~$ sudo vi /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -H 0.0.0.0:2375 -H unix:///var/run/docker.sock example@manager:~$ sudo systemctl daemon-reload example@manager:~$ sudo systemctl restart docker
-
配置二
example@u180402:~$ cat /etc/docker/daemon.json { "registry-mirrors": [ "https://reg-mirror.qiniu.com", "https://hub-mirror.c.163.com", "https://registry.aliyuncs.com" ], "hosts" : ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } example@manager:~$ sudo vi /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd example@manager:~$ sudo systemctl daemon-reload example@manager:~$ sudo systemctl restart docker
-
-
初始化集群
-
创建管理节点
example@manager:~$ docker swarm init --advertise-addr 172.18.74.26 Swarm initialized: current node (w78pv2cxmucv2vca3v5r069wt) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-1fffxrlpybn1oz0qsff9ywxuz7ef1o7v6c4qqf6kwvckt6bphi-6t9lfyat23n99do5y9mpdtdkg 192.168.1.154:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
-
初始化管理节点后,会创建两个新的网络docker_gwbridge、ingress
example@manager:~$ docker network ls NETWORK ID NAME DRIVER SCOPE 6b3877ce1c6f bridge bridge local 6f5af407c445 docker_gwbridge bridge local 25066e8c0d9e host host local p5dq2m8snezx ingress overlay swarm b512147e5000 none null local
- bridge 是docker默认创建的网络,存在于所有docker容器中。docker引擎自动创建子网络和路由,docker run 命令将自动添加新的容器到这个网络。
- docker_gwbridge 是节点加入swarm是自动创建的网络,作为不同主机的swarm 节点通讯网络。
- overlay跨主机网络仅对swarm中需要服务的节点可用。当你创建一个使用overlay网络的服务,管理节点自动扩展overlay网络到那个运行服务任务的节点中。
-
node 节点加入集群
#g160402 example@g160402:~$ docker swarm join --token SWMTKN-1-1fffxrlpybn1oz0qsff9ywxuz7ef1o7v6c4qqf6kwvckt6bphi-6t9lfyat23n99do5y9mpdtdkg 172.18.74.26:2377 This node joined a swarm as a worker. #u180402 example@u180402:~$ docker swarm join --token SWMTKN-1-1fffxrlpybn1oz0qsff9ywxuz7ef1o7v6c4qqf6kwvckt6bphi-6t9lfyat23n99do5y9mpdtdkg 172.18.74.26:2377 This node joined a swarm as a worker.
-
管理节点查看节点状态
Active
:调度器能够安排任务到该节点Pause
:调度器不能够安排任务到该节点,但是已经存在的任务会继续运行Drain
:调度器不能够安排任务到该节点,而且会停止已存在的任务,并将这些任务分配到其他 Active 状态的节点
example@manager:~$ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION vrfif1jr3v0gl29o8okhdlc4l g160402 Ready Active 18.06.1-ce w78pv2cxmucv2vca3v5r069wt * manager Ready Active Leader 18.09.5 7jjv186tvj8hscubg6me026vq u180402 Ready Active 18.06.1-ce
-
退出集群
example@u180402:~$ docker swarm leave Node left the swarm. example@g160402:~$ docker swarm leave Node left the swarm. ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION vrfif1jr3v0gl29o8okhdlc4l g160402 Down Active 18.06.1-ce w78pv2cxmucv2vca3v5r069wt * manager Ready Active Leader 18.09.5 7jjv186tvj8hscubg6me026vq u180402 Down Active 18.06.1-ce #manager 强制退出集群 example@manager:~$ docker swarm leave --force Node left the swarm.
-
-
在集群中启用服务
-
创建拥有两个副本的http服务
example@manager:~$ docker service create --replicas 2 --name hello-swarm httpd:latest 01voy53c0ygxb5w7ncocxwfvp overall progress: 2 out of 2 tasks 1/2: running [==================================================>] 2/2: running [============================================
-
swarm基础配置
最新推荐文章于 2024-04-12 07:22:50 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)