生产环境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

原文地址:http://blog.51cto.com/zengestudy/2136209

时间: 2024-10-10 20:57:52

生产环境swarm集群规划和管理的相关文章

Swarm 集群并用 Portainer 管理

https://blog.csdn.net/zhrq95/article/details/79430284 使用docker-proxy代理服务(所有节点): docker pull docker.io/shipyard/docker-proxy docker run -ti -d -p 2375:2375 \ --restart=always \ --hostname=$HOSTNAME \ --name shipyard-proxy \ -v /var/run/docker.sock:/va

Nagios监控生产环境redis集群服务实战

前言:     以前做了cacti上展示redis性能报表图,可以看到redis的性能变化趋势图,但是还缺了实时报警通知的功能,现在补上这一环节.在redis服务瓶颈或者异常时候即使报警通知,方便dba第一时间处理维护. 1,下载redis监控插件 Redis已经在服务器安装好了,所以直接可以进行监控,redis集群安装请参考:http://blog.itpub.net/26230597/viewspace-1145831/,下载地址为:http://download.csdn.net/deta

生产环境Zookeeper集群搭建

三个主机就不提了,直接点 #####安装jdk###### [[email protected] ~]# rpm -ivh jdk-7u76-linux-x64.rpm [[email protected] ~]# vi /etc/profile ... export ZOO_HOME=/usr/local/zookeeper export PATH=$PATH:$ZOO_HOME/bin export JAVA_HOME=/usr/java/jdk1.7.0_76 export PATH=$J

Docker1.12.1之swarm集群搭建与使用

1:前言 在docker1.12版本之前,众所周知dokcer本身只能单机上运行,而集群则要依赖mesos.kubernetes.swarm等集群管理方案.其中swarm是docker公司自己的容器集群管理工具,在当时的热度还是低于前两者.docker1.12.0版本发布中,Docker公司出于战略眼光,将swarm集成到docker-engine中,使docker内置了集群解决方案.于是swarm这个"亲儿子"的江湖地位迅速提升,在docker集群方案中与mesos,k8s形成三足鼎

同一个Docker swarm集群中部署多版本的测试环境

先介绍下用到的技术 Docker swarm: Docker官方的集群管理工具,相比kubernetes更加简单,容易入门.https://docs.docker.com/engine/swarm/ Traefik: 一个现代化的反向代理工具,原生支持Docker swarm模式,可以实现swarm的动态代理.https://docs.traefik.io/user-guide/swarm-mode/ 下图展示主要的思路: 在Docker swarm中创建某个测试版本service时,通过设置s

非节点主机通过内网远程管理docker swarm集群

这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下. 在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管理集群.但是在另外一台不是集群节点的主机上,虽然设置了DOCKER_HOST环境变量 export DOCKER_HOST="tcp://manger节点内网IP:2377" 但连接不上 # docker ps Cannot connect to the Docker daemon at

利用shipyard部署swarm集群及管理容器

shipyard是一个web管理容器的工具 服务器列表: 10.0.22.232    swarm-manage 10.0.22.244    swarm-node-1 10.0.22.245    swarm-node-2 部署swarm集群: swarm-manage #curl -s https://shipyard-project.com/deploy | bash -s Digest: sha256:8a60ad2ee9bd1e4e3d2e50b4c61ed510a158c8ca632

管理Docker Swarm 集群

管理Docker Swarm 集群1 .节点状态变更管理[[email protected] ~]# docker node update --availability drain managerManager[[email protected] ~]# docker node lsID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION3ugwexq8el6e9ouj1iyguxtnq * manager Ready Drain

Docker Swarm集群实践——部署篇

最新消息 Docker在上周的DockerCon技术大会上发布了1.12版核心产品Docker Engine,最大的新特性是Docker Swarm已经被整合到了Docker Engine里面而不再是一个单独的工具了,这样就可以更容易的把多个Docker主机组合成一整个规模更大可靠性更高的逻辑单元.Docker的掌舵者 Adrian Mouat相信这种新的集群模式可以大大增强Docker在相关领域的竞争力. 把Docker Swarm整合进Docker Engine是一个重大改进,但它也只是一个