Docker(十一)——Swarm 集群管理

简介

Docker Swarm是Docker公司推出的的集群管理工具,几乎全部用GO语言来完成的开发
Docker Swarm 和 Docker Compose 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。

工作原理
swarm 集群由管理节点(manager)和工作节点(work node)构成。
swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。

在这里插入图片描述
Swarm的调度策略

  • Random:随机选择一个Node来运行容器
  • Spread:选择运行容器最少的那台节点来运行新的容器
  • Binpack:选择运行容器最集中的那台机器来运行新的节点

实验

准备三台主机,都安装好docker,关闭防火墙,开放2377/tcp(管理端口)、7946/udp(节点间通信端口)、4789/udp(overlay 网络端口)端口。
manager:192.168.2.248
worker-1:192.168.2.249
worker-2:192.168.2.250

manager主机初始化管理节点

docker swarm init --advertise-addr 192.168.2.248
#将192.168.2.248初始化为管理节点

在这里插入图片描述
在worker-1 ,worker-2输入提示命令加入swarm集群

docker swarm join --token SWMTKN-1-4ub540qnlteq52z27tpzenupj539dgzmysn88hcmmynqux72lr-dlgvvd0ly92xpszv3tzv0u72e 192.168.2.248:2377
docker node ls
#查看集群的主机

在这里插入图片描述
manager主机创建服务

docker images
#查看自己的镜像

在这里插入图片描述
我使用昨天创建的WordPress镜像,启动服务

docker service create --replicas 10 --name wordpress -p 7000:80 wordpress
#使用wordpress为镜像,名为wordpress的服务,启动10个实例,将宿主机的7000端口映射到容器的80端口
docker service ls
#查看运行的服务

在这里插入图片描述
查看运行的容器实例

docker ps
#在各个主机分别运行该命令查看运行的容器实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
浏览器访问页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

增加容器实例

docker service update --replicas 15 wordpress
#实例增加到15个
docker service ls

在这里插入图片描述
查看每台主机运行的容器,可以看到每台主机有5个容器实例。当一台主机宕机,容器实例会转移到另外两台,实现初步的高可用,但是当主机状态恢复并没有重新分配。

删除服务

docker service rm wordpress

结束本项目

猜你喜欢

转载自blog.csdn.net/weixin_46415378/article/details/124336452