1. 两个 service 是如何通信的 通过内置的 DNS 服务发现的功能  相互通信的 2. 创建一个 overlay 的 网络 docker network create -d overlay demo 3. 创建一个 whoami 的service  访问 当访问 该容器 的 8000 端口的 返回 容器的 host docker service create --name whoami -p 8000:8000 --network demo -d jwilder/whoami 查看创建…
1.作用 当在 任何 一个 swarm 节点去访问 端口服务的时候 会通过 本节点 的 IPVS ( ip virtual service ) 到 真正的 swarm 节点上 当访问 docker host 3 的 端口 8080 时, 会把 请求转发到 另外两台host 上去 , 然后把 响应返回给用户 2. 功能 外部访问的均衡负载 服务端口被暴露到哥哥swarm节点 内部通过 IPVS 进行均衡负载 3. 实验 创建 一个 名为 demo 的 overlay 网络 另外 创建 client…
上一篇文章<Docker Swarm 集群管理利器核心概念扫盲>中我们把 Swarm 重要的概念性知识给大家讲解了一波,理论完事就该实战了,这篇文章带大家从零开始,搭建 Docker Swarm 集群环境,并通过 Swarm 实现服务的弹性部署,滚动更新服务及回滚服务等功能. 集群搭建 环境准备 五台安装了 Docker 的 CentOS 机器,版本为:CentOS 7.8.2003 Docker Engine 1.12+(最低要求 1.12,本文使用 19.03.12) 防火墙开启以下端口或…
3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月22日,我们进行移除与重启节点的操作时引发了故障,详见 云计算之路-阿里云上-容器服务:移除节点引发博问站点短暂故障 . 3月24日,我们参考阿里云容器服务帮助文档-指定多节点调度通过给节点添加用户标签的方式成功移除了部分节点.我们是这么操作的,当时所有节点没有添加用户标签,给待移除节点之外的所有节…
目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0.33 c4 -> 10.0.0.34 ​ 四台机器的host以c1为例: [root@c1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 #::1 local…
1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0.33 c4 -> 10.0.0.34 ​ 四台机器的host以c1为例: [root@c1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 #::1 localhost loca…
本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使用一个集群,你运行的容器可能会在容器中的任何一个节点上运行: 首先盗一张 docker swarm的架构图: 图片来源 https://yeasy.gitbooks.io/docker_practice/content/swarm/intro.html 在使用 Swarm 管理docker 集群时,…
在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的问题. 以下是我们即将采用的 docker swarm 集群部署优化措施. 1)2 个 overlay 网络合并为 1 个,以减少维护多个 overlay 网络的开销 之前用了 2 个 overlay 网络 cnblogs 与 proxy ,路由容器 docker-flow-proxy 只加入 pr…
docker swarm 集群及可视化界面的安装及配置 2016-12-14 16:08:46 标签:swarm consul registrator 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://juestnow.blog.51cto.com/1515305/1882708 本文是swarm docker集群的实施文档 环境: centos 7 192.168.1.23 swarm-manager rethinkdb co…
前言 之前在总结docker machine的时候,当时对docker理解还不够深入,甚至还不知道 docker machine 与 docker swarm 的区别. 在查阅资料以及官方文档之后,今天基本彻底搞明白了.其实 docker machine 只是一个docker多节点的管理工具,它的作用是帮助我们在其他节点上安装docker.运行docker容器等:而 docker swarm 则是一个docker集群管理工具,有了它整个集群就能协同工作,从容器的角度来说有点像是openstack…
我们的生产环境部署了 2 个 docker swarm 集群,集群 swarm-a 用于专门跑博客站点,集群 swarm-b 用于跑其他站点,manager 节点用了阿里云包月服务器,worker 节点用了阿里云抢占式实例. 今天 11:03 收到阿里云的短信通知“您的抢占式实例:实例ID(实例名称)因库存变化,即将进入释放状态”,一共被释放了3台,其中1台是集群 swarm-a 的节点服务器,1台是集群 swarm-b 的节点服务器.释放后,2个集群稳如泰山,应用的正常运行并没有受到影响,当时…
Docker swarm集群增加节点 docker swarm初始化 docker swarm init docker swarm 增加节点 在已经初始化的机器上执行:# docker swarm join-token manager To add a manager to this swarm, run the following command: docker swarm join \ --token SWMTKN-1-3by2djvsu8cyzo8pzzqrrsmoiszlcmj1ymsy…
  准备三台主机 A:192.168.1.5 B:192.168.1.7 C:192.168.1.10   Docker Swarm集群中的节点主机开放以下三个端口 2377端口, 用于集群管理通信 7946端口, 用于集群节点之间的通信 4789端口, 用于overlay网络流量     关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service   在A上执行   创建集群并加入集群 $ docker…
目录 Docker 构建集群/服务/Compose/分布式服务栈 集群 初始化集群服务 安装docker-machine 管理节点和工作节点 docker集群构建完成 集群中部署应用 集群服务访问特性 集群交换端口 服务(负载均衡) 定义服务通过docker-compose.yml 启动服务 停止服务 docker-compose 集群分布式服务栈 构建集群分布式服务栈 docker stack, docker swarm 与 docker compose 关系 集群分布式服务栈之间的网络通信配…
10 搭建docker swarm集群 10.1 swarm 介绍 Swarm这个项目名称特别贴切.在Wiki的解释中,Swarm behavior是指动物的群集行 为.比如我们常见的蜂群,鱼群,秋天往南飞的雁群都可以称作Swarm behavior. Swarm项目正是这样,通过把多个Docker Engine聚集在一起,形成一个大的docker- engine,对外提供容器的集群服务.同时这个集群对外提供Swarm API(命令,docker engine的命令),用户可以像使用Docker…
Swarm 简介 Docker Swarm 是 Docker 官方推出的容器集群管理工具,基于 Go 语言实现.代码开源在:https://github.com/docker/swarm 使用它可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台. Docker Swarm 是生产环境中运行 Docker 应用程序最简单的方法.作为容器集群管理器,Swarm 最大的优势之一就是 100% 支持标准的 Docker API.各种基于标准 API 的工具比如…
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 安装 Swarm  所有节点 docker pull swarm ## 控制节点 安装 zookeeper zk://10.6.17.11:2181 ## 修改 -H 添加 tcp 端口 sed -i 's/-H fd:\/\//-H tcp:\/\/0.0.0.0:2375/g' /lib/systemd/…
我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上.开始我们选用的阿里云容器服务,但是在使用过程中我们遭遇了恐怖的路由服务(acsrouting)路由错乱问题 —— 请求被随机路由到集群中的任一容器,虽然后来阿里云修复了这个问题,但我们对容器服务失去了信心,走上了用阿里云服务器自建 docker swarm 集群的道路. 用上自建 docker swarm 集群之后,本以为可以在云上容器中过上安稳的日…
在上次遭遇 docker swarm 集群故障后,我们将 docker 由 17.10.0-ce 升级为最新稳定版 docker 17.12.0-ce . 前天晚上22:00之后集群中的2个节点突然出现CPU波动,在CPU波动之后,在凌晨夜深人静.访问量极低的时候,整个集群出现了故障,访问集群上的所有站点都出现了502,过了一段时间后自动恢复正常. ECS实例:swarm1-node5,CPU百分比于00:52发生告警,值为96.14%,持续时间0分钟 ... 昨天早上发现访问部分节点中的容器应…
非常抱歉,今天 10:05-10:20 左右,我们用阿里云服务器搭建的 docker swarm 集群又出现故障,又是因为突然的节点 CPU 波动. 受这次故障影响的站点有 闪存,博问,班级,园子,短信息,招聘,小组,网摘,openapi ,由此给您带来很大的麻烦,请您谅解. 故障前先是有一个 worker 节点出现 CPU 100% 报警: 云服务器ECS实例:swarm1-node5,CPU使用率于10:00发生告警,值为100%,持续时间1分钟 收到报警后,我们将这个节点下线并重启: do…
一.创建单节点的Docker Swarm集群 docker swarm init 二.在Swarm集群中创建一个网络 docker network create --driver=overlay traefik --attachable 三.在Swarm集群中部署traefik负载均衡器服务 docker service create \ --name traefik \ --constraint=node.role==manager \ --publish 80:80 --publish 80…
一.规划 1.swarm01作为manager节点,swarm02和swarm03作为worker节点. # cat /etc/hosts 127.0.0.1   localhost 192.168.139.175  swarm01  192.168.139.176  swarm02  192.168.139.177  swarm03 2.配置SSH免密登陆 # ssh-keygen -t rsa -P '' # ssh-copy-id -i .ssh/id_rsa.pub root@192.1…
从零开始搭建Docker Swarm集群 检查节点Docker配置 1. 打开Docker配置文件(示例是centos 7)vim /etc/sysconfig/docker2. 添加-H tcp://0.0.0.0:2375到OPTIONSOPTIONS='-g /cutome-path/docker -H tcp://0.0.0.0:2375'3. CentOS6.6 需要另外添加-H unix:///var/run/docker.sockOPTIONS='-g /mnt/docker -H…
docker + swarm 集群 导读 Swarm是Docker公司在2014年12月初新发布的容器管理工具.和Swarm一起发布的Docker管理工具还有Machine以及Compose.Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体.Swarm使用标准的Docker API接口作为其前端访问入口. token方式 以虚拟机方式搭建集群练练手 安装swarm docker run --rm swarm create 6a2d60…
今天傍晚 17:38-18:18 左右,由于 docker swarm 集群出现 "The swarm does not have a leader" 问题,造成博问.闪存.园子.小组.openapi 无法正常访问,由此给您带来麻烦,请您谅解. 目前我们已经迁移至 asp.net core 的站点都部署在 docker swarm 集群上,节点用的是阿里云服务器,操作系统是 ubtunu 16.04 ,docker engine 版本是 17.06.0-ce, build 02c1d8…
非常非常抱歉,由于我们的疏忽 —— docker swarm 集群中的 2 台服务器没有及时续费,造成在夜里0点被自动关机,从而引发整个 docker swarm 集群故障,造成今天凌晨 0:30 ~ 7:50 左右跑在集群上的站点无法访问,由此给您带来很大很大的麻烦,恳请您的谅解.受这次故障影响的站点有 闪存,博问,班级,园子,短信息,招聘,小组,网摘,openapi . 昨天下午 14: 30 左右我们收到了阿里云的服务器到期通知,由于打算更换这2台到期的服务器,所以没有立即进行续费,准备安…
为了迎接春节假期后的访问高峰,我们今天对 docker swarm 集群进行了变更操作,购买了1台阿里云4核8G的服务器作为 worker 节点,由原来的  3 manager nodes + 2 worker nodes 变为  3 manager nodes + 3 worker nodes . 晚上,我们对已经持续运行一段的5个节点逐一进行重启操作,重启方式如下: 1)docker node update --availability drain 让节点下线2)阿里云控制台重启服务器3)d…
今天 11:29 - 11:39 左右,docker swarm 集群 3 个 manager 节点同时出现异常,造成整个集群宕机,由此给您带来很大的麻烦,请您谅解. 受此次故障影响的站点有:博问,闪存,班级,园子,短信息,招聘,小组,网摘,新闻,openapi 最近我们刚刚确认我们所有遇到的 docker swarm 不稳定问题都与部分节点的异常状况有关,即使是一直让我们非常头疼的 docker-flow-proxy 路由问题,也是因为路由容器所在的节点出现异常状况,只要通过阿里云控制台重启这…
非常非常抱歉!16:30 ~ 17:00 左右我们用于跑 ASP.NET Core 站点的 docker swarm 集群再次出现宕机,由此给您带来了很大很大的麻烦,恳请您的谅解! 受此次故障影响的站点有:博问,闪存,班级,园子,短信息,招聘,小组,网摘,新闻,openapi 故障的经过是这样的. 一开始只是访问时偶尔出现 503 ,然后 503 逐渐增多.登录到集群的各个节点,发现有节点 ssh 登录响应慢,登录进去后执行 docker 命令也慢,于是将这个节点下线并重启,但是这样操作后又有新…
非常抱歉,今天 10:30-10:45 左右由于 docker swarm 集群节点出现问题,造成除博客之外的站点出现访问异常,由此给您带来很大的麻烦,请您谅解. 故障开始时出现有时访问正常有时访问出现 502 或 500 ,当时我们就判断是某个节点出现问题,但无法直接定位出哪个节点,只能依次将一个个节点下线-上线.但是,不走运的是出现问题的节点恰恰是我们最后下线的一个节点.所以,在下线正常节点的过程中,更多的容器被迁移到了问题节点,结果造成更大范围的故障,直到我们下线问题节点,才恢复正常. 自…