声明:本文优快云作者原创投稿文章,未经许可禁止任何形式的转载,原文链接
环境
- 宿主机:macOS 10.15.7
- 虚拟机平台:Parallels Desktop 15.1.2
- 虚拟机ISO:CentOS-7-x86_64-Minimal-2009.iso
- Docker Engine Version:20.10.9
设置方法
先安装好一台虚拟机并在上面安装Docker,再通过克隆获得另外3台虚拟机,如下图所示。

四台虚拟机的参数如下:
| 主机 | IP | 角色 |
|---|---|---|
| CentOS Linux 1 | 192.168.199.228 | Manager |
| CentOS Linux 2 | 192.168.199.171 | Worker |
| CentOS Linux 3 | 192.168.199.201 | Worker |
| CentOS Linux 4 | 192.168.199.230 | Worker |
Manager节点需要开启防火墙2377端口,不然Worker可能连接不到Manager。
sudo firewall-cmd --add-port=2377/tcp --permanent
sudo firewall-cmd --reload
操作
在Manager节点进行初始化
docker swarm init

Worker节点加入Manager节点
docker swarm join --token SWMTKN-1-1km0mjm3kf08yil99y7etsqo1oid9g8y6034osr35mvtfrf1m4-b5q4tfskbjpd28v55nsijh3kg 192.168.199.228:2377
在Manager节点查看已有节点
docker node ls

接下来创建3个nginx服务,创建服务等操作都只需要在Manager节点进行,但是在部署前,先需要保证集群中所有节点都预先有了要使用的镜像。
docker service create --replicas 3 -p 80:80 --name nginx nginx:1.13.7-alpine

这时,访问3个Worker节点的IP都可以得到Welcome to nginx的默认主页。
docker service scale可以对一个服务运行的容器数量进行伸缩。
# 指定伸缩数量
sudo docker service scale nginx=5

docker service update可以对服务进行滚动升级
docker service update --image nginx:1.13.12-alpine nginx

如果出现问题,可以使用docker service rollback对服务进行版本回退。
docker service rollback nginx

尝试完成后,使用docker service rm删除服务,Worker节点的服务也就停止了。
Worker节点使用docker swarm leave就可以离开和集群的连接,Manager节点使用docker swarm leave --force解散集群即可。
本文详细介绍了如何在四台CentOS虚拟机上搭建Docker Swarm集群,并进行服务的创建、伸缩、更新和回滚。首先,配置各节点的IP和角色,开启Manager节点的2377端口,然后通过`docker swarm init`初始化集群,接着Worker节点使用`docker swarm join`加入集群。在Manager节点,利用`docker service create`创建nginx服务,通过`docker service scale`调整服务副本数,使用`docker service update`进行服务升级,`docker service rollback`则用于回退服务版本。最后,`docker service rm`删除服务,`docker swarm leave`让节点退出集群。
921

被折叠的 条评论
为什么被折叠?



