Docker和DevOps:16.容器编排Swarm

一、多机多容器管理痛点

之前我们都是在一台云服务器中创建多个容器进行项目部署操作,但是实际过程中会出现多台云服务器多容器的情况,如何管理这多台云服务器中的多个容器?

  • 怎么去管理多台服务器中的多个容器?
  • 怎么能方便的横向拓展?即在集群中再增加一台云服务器部署应用?
  • 如果一台服务器中的某个容器down了,怎么能自动恢复?
  • 如何去更新容器而不影响业务?
  • 如何去监控追踪这些容器?
  • 怎么去调度、控制容器的创建?
  • 怎么保护隐私数据?

二、Swarm模式

1.简介
  • Swarm是一个容器编排的工具,当然还有其他的工具可以用来做容器的编排。
  • Swarm它是内置于docker中的,安装完docker后即可以使用swarm了,只是一开始我们使用的是单机模式,需要手动开启Swarm模式。
    在这里插入图片描述
2.架构

在这里插入图片描述

三、创建Swarm集群

1.环境准备

在本机准备四个虚拟机,分别模拟四个节点:
节点1:192.168.8.135
节点2:192.168.8.136
节点3:192.168.8.138
节点4:192.168.8.137
在这里插入图片描述

2.将节点1服务器声明swarm Manager节点
docker swarm init --advertise-addr=192.168.8.135

在这里插入图片描述
出现提示当前节点已经是一个Manager节点,且如果要向这个集群中添加worker节点,执行下面的语句即可。

3.将节点2、节点3、节点4当作worker节点添加到swarm集群中

在这里插入图片描述
在这里插入图片描述

4.在节点1中查看该swarm集群中的节点情况
docker node ls

显示有一个leader节点,三个worker节点
在这里插入图片描述

四、Swarm Service和Swarm集群操作

1.在Swarm Manager节点创建Service
docker service create --name=busybox_demo busybox sh -c "while true; do sleep 3600;done" 

在这里插入图片描述

2.在Manager节点中查看Service
docker service ls

在这里插入图片描述

3.在Manager节点中查看容器

发现有一个service名字.xxxx的容器
在这里插入图片描述

4.横向扩展

manager节点中查看service信息发现有一项信息:MODE = replicatied 表示这个service可以横向扩展。
// 在swarm集群中拓展出5个

docker service scale busybox_demo=5

在这里插入图片描述

5.在Manager节点中查看Service和分布情况
docker service ps busybox_demo

在这里插入图片描述
在这里插入图片描述
在其他节点服务器中执行docker ps会发现各个节点上都存在容器了。

6.在Node3节点中强制删除一个容器
  • 在Node3节点中删除容器
    在这里插入图片描述
  • 去Manager节点查看service信息,发现水平拓展的剩下了4个
    在这里插入图片描述
  • 很快,水平拓展又变回了5个
    在这里插入图片描述
  • 说明,当Swarm集群中有容器退出或失效了,Manager会在集群中选取一个节点,重新启动一个容器进行修补。
7.在Manager节点中删除Service
docker service rm [service名字]

在这里插入图片描述
删除Service后,Manager节点会自动寻找在那些节点上有这个Service的容器,然后会去自动删除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章