Docker学习笔记(二十)— Docker Swarm 集群搭建

Docker Alice 5个月前 (12-29) 262次浏览 2个评论

一、Docker Swarm 介绍

Docker Swarm 是 Docker 的集群管理工具。

swarm 集群由管理节点(manager)和工作节点(work node)构成。

swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。

work node:主要负责运行相应的服务来执行任务(task)。

二、集群搭建

准备 4 台服务器(docker-1,docker-2,docker-3,docker-4),这里使用的是阿里云服务器

1、初始化集群 – 创建 swarm 集群管理节点(manager)

Docker 学习笔记(二十)— Docker Swarm 集群搭建
Docker 学习笔记(二十)— Docker Swarm 集群搭建
使用命令初始化一个 docker swarm 管理节点(在主机 docker-1 上搭建)
docker swarm init --advertise-addr ip 地址

[root@iZwz96mqfw1fyrbuyd0452Z ~]# docker swarm init --advertise-addr 172.20.240.123

Docker 学习笔记(二十)— Docker Swarm 集群搭建

docker swarm join 加入一个节点

docker swarm join-token manager    创建其加入管理节点 token 命令 创建一个主节点的 token 令牌
docker swarm join-token worker     创建其加入工作节点 token 命令 

2、创建 swarm 集群工作节点(worker)

①、加入一个工作节点(在主机 docker-2 上操作)

Docker 学习笔记(二十)— Docker Swarm 集群搭建

在主节点 docker-1 查看 node 信息,可以看到刚加入的工作节点

Docker 学习笔记(二十)— Docker Swarm 集群搭建

②、加入第二个工作节点
首先在主节点 docker-1 创建一个工作节点的 token 令牌

Docker 学习笔记(二十)— Docker Swarm 集群搭建

然后在主机 docker-3 上使用上面创建的 token 命令

Docker 学习笔记(二十)— Docker Swarm 集群搭建

③、再在主机 docker-1 上创建一个主节点的 token 令牌

Docker 学习笔记(二十)— Docker Swarm 集群搭建

在主机 docker-4 上使用该命令创建 manager 节点

Docker 学习笔记(二十)— Docker Swarm 集群搭建

再次查看 node 信息

Docker 学习笔记(二十)— Docker Swarm 集群搭建

三、Raft 协议

raft 协议:保证大多数节点存活才可以用,至少 > 1 个节点存活,集群 > 3

目前搭建的集群是 2 主 2 从(主 [docker-1,docker-4],从 [docker-2,docker-3])
问题:假设其中一个节点挂了,其他节点是否可用?

测试:
  停掉主节点 docker-1,另一台主节点 docker-4 也不能使用。

Docker 学习笔记(二十)— Docker Swarm 集群搭建
Docker 学习笔记(二十)— Docker Swarm 集群搭建

如果将从节点离开集群,集群信息会看到此节点 down 的状态

Docker 学习笔记(二十)— Docker Swarm 集群搭建
Docker 学习笔记(二十)— Docker Swarm 集群搭建
Docker 学习笔记(二十)— Docker Swarm 集群搭建

将 2 主 2 从设置成 3 主 1 从,现将 docker-3 变成主节点
先在任一管理节点生成一个主节点 token 令牌

Docker 学习笔记(二十)— Docker Swarm 集群搭建

在需要成为主节点的主机上使用该命令

Docker 学习笔记(二十)— Docker Swarm 集群搭建

查看 node 信息,可以发现,集群设置成 3 主 1 从了

Docker 学习笔记(二十)— Docker Swarm 集群搭建

测试停止其中一台主节点,其它 2 台是否可以正常使用

Docker 学习笔记(二十)— Docker Swarm 集群搭建
Docker 学习笔记(二十)— Docker Swarm 集群搭建
Docker 学习笔记(二十)— Docker Swarm 集群搭建

再次测试停止第 2 台主节点,查看第 3 台是否可以正常使用

Docker 学习笔记(二十)— Docker Swarm 集群搭建

查看 node 信息,发现 2 台主节点停止后,第 3 台主节点不能正常使用

Docker 学习笔记(二十)— Docker Swarm 集群搭建

结论:
  为了达到集群可用,若有 3 个主节点,必须要有 > 1 台存活的管理节点,才可以正常使用。这就是 Raft 协议的一致性!

四、Swarm 集群弹性创建服务

1、部署服务到集群中

Docker 学习笔记(二十)— Docker Swarm 集群搭建

通过 swarm 能够轻松实现灰度发布、金丝雀发布!

Docker 学习笔记(二十)— Docker Swarm 集群搭建

docker run 容器启动,不具有扩缩容功能
docker service 服务启动,具有扩缩容器功能,支持滚动更新!

查看服务

Docker 学习笔记(二十)— Docker Swarm 集群搭建

2、动态扩缩容

滚动更新

Docker 学习笔记(二十)— Docker Swarm 集群搭建

动态扩缩容

Docker 学习笔记(二十)— Docker Swarm 集群搭建

3、移除服务

Docker 学习笔记(二十)— Docker Swarm 集群搭建

 

分享:Docker 学习视频地址:【狂神说 Java】Docker 进阶篇超详细版教程通俗易懂


女程序员博客 , 版权所有丨本站采用BY-NC-SA协议进行授权 , 转载请注明Docker 学习笔记(二十)— Docker Swarm 集群搭建

【声明】:本博客仅为分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。

【关于安全】:任何 IDC 都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。

喜欢 (4)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. word press 如何优化会不? 或者怎么分表? 单个数据表有点大,想计划分表一下
    筑楼2022-01-20 20:43 回复