本片是根据阅读Docker 官网的swarm部分后做的笔记,如有错误请指正
什么是Docker Swarm
Docker Swarm 也是容器编排的一个工具。有兴趣的朋友可以阅读另外一篇文章 docker compose。docker compose 在单机环境下的一个容器编排工具,可以很容易帮我们部署多个容器。但是在集群环境下,compose就有点无能为力了。swarm 就是帮助我们在多机环境下一个容器编排技术。
什么特点
- 去中心化。分为两种类型节点managers和 workers
- 扩缩容
- 集群状态监控。如果有失败的容器,会在相应的节点创建出相应数量的副本。
- 多机环境的网络。使用overlay网络类型
- 服务发现
- 负载均衡
- 节点之间默认使用TLS验证
- 增量更新和回滚
怎么创建swarm 集群
- 创建一个主swarm(manager节点)
docker swarm init --advertise-addr <MANAGER-IP>
The --advertise-addr flag configures the manager node to publish its address as 192.168.99.100. The other nodes in the swarm must be able to access the manager at the IP address.
The output includes the commands to join new nodes to the swarm. Nodes will join as managers or workers depending on the value for the --token flag.
创建之后会返回一个命令,这个命令是告诉其他worker节点如何加入manager节点
docker swarm join \
--token SWMTKN-1-5bupotsp7k6nb5rkw8gnbv2hadyu4zij5trqrg7k31znxgdy4a-6gwyvpdnokdn6kcsvw9yfykfj \
192.168.124.17:2377
如果不知道这个加入manager指令,可以在manager节点运行docker swarm join-token worker
即可获得运行指令。
- 添加子节点(worker)
在worker节点的机器上运行运行主节点可提供的指令即可,如第一步获取到的指令。
- 查看集群信息
docker info 查看swarm状态
docker node ls 查看节点信息
4. 将worker节点升级为manager 节点
- 将manager节点降级为worker 节点
Swarm 集群中的service操作
官网有详细的操作步骤
https://docs.docker.com/engine/swarm/swarm-tutorial/create-swarm/