本片关于使用docker swarm 集群心得,也是一些经验吧!过程描述可能简单!

根据一些公司使用经历接收一下问题并针对问题作出应对策略

1、docker swarm集群 主节点数必须是单数,也就是说主节点数控制一般是1、3、5、7.......

为什么是单数,大家可能都知道很多集群都是这样设置主节点的 像zab paxos raft等分布式一致性协议都是以多数节点存活作为可用部分,

docker swarm 集群内部选主机制是raft(https://raft.github.io/)协议实现的,虽然这个协议可以在任意节点数据量的时候有主节点存在并正常运行,但是会出现如下情况

加入有5个节点,连续三个主节点down掉了这个时候就剩下两个从节点这个时候谁也不能达到半数以上的选票导致集群暂停等待有新的节点加入。

2、docker swarm 所有主机尽量配置相同

为什么说要配置尽量相同,虽然docker会根据俄cpu和内存做一些简单的容器编排平衡,如果存在配置资源有的高有的低的情况,配置资源高的宿主机运行的容器就会较多,如果这个机器重启或者宕机这个时候容器会漂移到兄弟节点。兄弟节点配置比较低就会压垮配置低的节点。

3、docker swarm 所有主机尽量都在一个网段,如果不在一个网段多个网段宿主机尽量均等,保证一定比例的冗余资源

为什么说尽量在一个网段那,因为网段之间加入有问题了很可能会将集群分成两半,同样很容易导致上面第一点的问题,

所以说如果集群时跨网段的尽量将raft协议节点分布在合适的网段(“合适”根据业务情况定)

4、docker swarm 集群所有使用资源必须要一定的冗余数量,冗余数量的多少以可宕机宿主机数量百分比来定

回到上面第2点内容的回答,我们集群资源一定要有冗余,因为docker swarm容器会漂移到正常的节点,所以为了不让节点因为资源压垮要有一定的冗余,docker swarm目前好像没有根据资源降级的特性。

5、宿主机操作系统一定要用对

根据个大社区的建议 使用ubuntu,原因有一下几点:

第一、内核更新快,更适应docker的快速迭代,很多linux功能支持也很新。

第二、根据经验ubuntu使用出现莫名其妙问题最少社区强大

如果使用其他linux操作系统尽量使用最新稳定版内核

6、尽量再生产环境使用物理机作为宿主机

使用docker swarm集群心得的更多相关文章

  1. 通过docker-machine和etcd部署docker swarm集群

    本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使 ...

  2. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

  3. 从零开始搭建Docker Swarm集群

    从零开始搭建Docker Swarm集群 检查节点Docker配置 1. 打开Docker配置文件(示例是centos 7)vim /etc/sysconfig/docker2. 添加-H tcp:/ ...

  4. docker + swarm 集群

    docker + swarm 集群 导读 Swarm是Docker公司在2014年12月初新发布的容器管理工具.和Swarm一起发布的Docker管理工具还有Machine以及Compose.Swar ...

  5. Docker Swarm集群

    Docker Swarm集群 IP 10.6.17.11  管理节点 IP 10.6.17.12   节点A IP 10.6.17.13   节点B IP 10.6.17.14   节点C 安装 Sw ...

  6. 故障公告:docker swarm集群“群龙无首”引发部分站点无法访问

    今天傍晚 17:38-18:18 左右,由于 docker swarm 集群出现 "The swarm does not have a leader" 问题,造成博问.闪存.园子. ...

  7. 云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题

    我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上.开始我们选用的阿里云容器服务,但是在使用过程中我们遭 ...

  8. 云计算之路-阿里云上:docker swarm 集群故障与异常

    在上次遭遇 docker swarm 集群故障后,我们将 docker 由 17.10.0-ce 升级为最新稳定版 docker 17.12.0-ce . 前天晚上22:00之后集群中的2个节点突然出 ...

  9. 云计算之路-阿里云上:节点 CPU 波动引发 docker swarm 集群故障

    非常抱歉,今天 10:05-10:20 左右,我们用阿里云服务器搭建的 docker swarm 集群又出现故障,又是因为突然的节点 CPU 波动. 受这次故障影响的站点有 闪存,博问,班级,园子,短 ...

随机推荐

  1. Python内置函数(13)——complex

    英文文档: class complex([real[, imag]]) Return a complex number with the value real + imag*1j or convert ...

  2. BBS论坛(十一)

    11.1.前台用户模型创建 (1)apps/front/models.py 首先安装:pip install shortuuid class FrontUser(db.Model): __tablen ...

  3. EF三种编程方式图文详解

    Entity Framework4.1之前EF支持“Database First”和“Model First”编程方式,从EF4.1开始EF开始支持支持“Code First”编程方式,今天简单看一下 ...

  4. groupcache源码解析-概览

    接下来讲什么 今天开始讲groupcache! Memcached大家应该都不陌生,官网的介绍是: Free & open source, high-performance, distribu ...

  5. C++STL模板库序列容器之deque

    目录 一丶队列容器deque简介 二丶使用代码演示 一丶队列容器deque简介 deque底层跟vector一样,都是数组维护.不同的是可以操作头部. 二丶使用代码演示 #define _CRT_SE ...

  6. Zookeeper注册中心和Dubbo-Admin管理平台的搭建

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  7. docker 创建mysql镜像,并成功进行远程连接

    1.安装 1.1 拉取镜像 docker pull mysql 拉取成功可以验证一下 docker images 1.2 创建并启动一个mysql容器 docker run --name ly-mys ...

  8. 初识 MongoDB,MongoDB 的安装运行

    1.  MongoDB 非关系型数据库  MongoDB是一个基于分布式文件存储的数据库,由C++语言编写.目的是为WEB应用提供扩展的高性能的数据存储解决方案.MongoDB是一个介于关系型数据库和 ...

  9. Asp.net Core 项目中如何使用 MongoDB 数据库

    内容来源 https://blog.csdn.net/qq_26900081/article/details/83272132 一.添加依赖 1.MongoDB.Driver 2.MongoDB.Bs ...

  10. Vim设置Tab宽度/替换Tab为空格

    用户配置: 在/home/you/.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)set expandt ...