生产环境swarm集群规划和管理


swarm集群角色

swarm集群中有两种角色,manager node和 worker ndoe。

manager的功能:

  • 维护集群状态

  • 任务调度

  • 为swarm集群提供HTTP API

可以创建只有一个manager节点的swarm集群,但是swarm集群中如果一个manager节点都没有,则不能拥有worker节点。默认情况下,所有manage都是worker



worker node的功能:

Worker节点也是Docker Engine的实例,其唯一目的是执行容器。工作节点不参与Raft分布状态、做出调度决策或提供群模式HTTP API。


manager和worker角色转换

将manager转换成worker

docker node demote node_name


将worker转换成manager

docker node promote node_name


高可用性High Availability(HA)

所有生产环境必须是高可用的,下面就讨论一些技术和最佳实践以保证弹性的高可用的swarm集群环境

1、swarm manager HA

     生产环境中至少要有三台swarm manager,这样,当其中一个manager挂掉时,其他manager会顶替成为manager。

  • 一个三个manager节点的集群,允许最多挂掉一个manager

  • 一个五个manager节点的集群,允许最多挂掉2个manager

  • 一个N个manager节点的集群,允许最多挂掉 (N-1)/2 个managers.

  • Docker官方建议一个swarm集群中最多不超过7个manager


2、单独的生产环境

有些公司会在同一个swarm集群部署不同的环境,包括生产环境和 开发环境,但是这样做是不被推荐的。 一般,独立的生产环境需要单独部署swarm 集群


3、跨云部署

swarm 集群可以跨云部署比如 AWS 和azure


4、要防止调度程序将任务放在多节点群集中的管理器节点上,请将管理器节点的可用性设置为Drain



猜你喜欢

转载自blog.51cto.com/zengestudy/2136210