社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker Swarm解决集群部署方案

会飞的水珠 • 5 年前 • 190 次点击  
阅读 8

Docker Swarm解决集群部署方案

1. 介绍

Docker Client 包括Swarm Manager 和 Swarm Worker,Swarm Manager是管理Docker集群的,同时他也承担Swarm Worker的工作。

2. 创建Swarm集群,以4个docker节点为例

# --listen-addr ip:port 管理者节点
# --advertise-addr ip 广播地址,其它的节点,可以访问什么IP,可以加入Swarm集群
docker swarm init
# 添加manager或者worker节点到集群,只要执行对应的命令即可
# 把执行后的指令,粘贴到其它3台docker上执行,即可加入
docker swarm join-token manager
docker swarm join-token work
# 查看Swarm集群节点,只能在Manager节点执行该指令
docker node ls
复制代码
  • 查看Swarm集群网络
docker network ls
复制代码

这是Swarm创建的共享网络,不是用于容器和容器之间的业务通信,它用来管理Swarm集群的

  • 创建共享网络,为了容器和容器之间业务通信
docker network create -d overlay --attachable swarm_test
复制代码

  • 创建pxc集群,要使用swarm_test网络
docker volume create v1
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=a11111 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=a111111 -v v1:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=swarm_test pxc
复制代码

打开第二个宿主机,执行如下

docker volume create v2
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=a11111 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=a111111 -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=swarm_test pxc
复制代码

打开第三个宿主机,执行如下

docker volume create v3
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=a11111 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=a111111 -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=swarm_test pxc
复制代码

打开第四个宿主机,执行如下

docker volume create v4
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=a11111 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=a111111 -e CLUSTER_JOIN=node1 -v v4:/var/lib/mysql -v backup:/data --privileged --name=node1 --net=swarm_test pxc
复制代码
  • 如果想查看node1的网络IP
docker inspect node1
复制代码

3. 退出Swarm集群,登录对应的docker节点

docker stop node
docker rm node
docker swarm leave --force
复制代码

Manager退出集群必须要使用--force参数

4. 被动退出Swarm集群,指的是从管理节点,执行

docker node demote 节点ID
docker node rm
复制代码

删除任何的节点必须要先停止它的Docker服务,Manager节点必须先降级程Manager节点,然后再去删除

然后,登录node节点的宿主机

docker stop node
docker rm node
service docker stop
复制代码

最后,切回Manager节点,执行

docker node ls
docker node rm 节点ID
复制代码

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46465
 
190 次点击