自建docker swarm体验简单之美】的更多相关文章

之前用的阿里云容器服务,但由于acsrouting的路由错乱问题,被逼上自建docker swarm的梁山.今天尝试自己搭建docker swarm,竟然轻松搞定,简单的超乎想象. 以下是实际搭建操作步骤: 1. 创建集群 # docker swarm init --advertise-addr 10.251.242.231 Swarm initialized: current node (m9dfl7r9wo1e9jxsp3oe5du3x) is now a manager. To add a…
我们从今年6月开始在生产环境进行 docker 容器化部署,将已经迁移至 ASP.NET Core 的站点部署到 docker swarm 集群上.开始我们选用的阿里云容器服务,但是在使用过程中我们遭遇了恐怖的路由服务(acsrouting)路由错乱问题 —— 请求被随机路由到集群中的任一容器,虽然后来阿里云修复了这个问题,但我们对容器服务失去了信心,走上了用阿里云服务器自建 docker swarm 集群的道路. 用上自建 docker swarm 集群之后,本以为可以在云上容器中过上安稳的日…
3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月22日,我们进行移除与重启节点的操作时引发了故障,详见 云计算之路-阿里云上-容器服务:移除节点引发博问站点短暂故障 . 3月24日,我们参考阿里云容器服务帮助文档-指定多节点调度通过给节点添加用户标签的方式成功移除了部分节点.我们是这么操作的,当时所有节点没有添加用户标签,给待移除节点之外的所有节…
在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的问题. 以下是我们即将采用的 docker swarm 集群部署优化措施. 1)2 个 overlay 网络合并为 1 个,以减少维护多个 overlay 网络的开销 之前用了 2 个 overlay 网络 cnblogs 与 proxy ,路由容器 docker-flow-proxy 只加入 pr…
10 搭建docker swarm集群 10.1 swarm 介绍 Swarm这个项目名称特别贴切.在Wiki的解释中,Swarm behavior是指动物的群集行 为.比如我们常见的蜂群,鱼群,秋天往南飞的雁群都可以称作Swarm behavior. Swarm项目正是这样,通过把多个Docker Engine聚集在一起,形成一个大的docker- engine,对外提供容器的集群服务.同时这个集群对外提供Swarm API(命令,docker engine的命令),用户可以像使用Docker…
1.docker-compose: 用来在单机上启动一组应用服务.这个服务中可能包含有很多应用,比如你的app服务,redis,mysql,等等. (1)我们需要先创建好docker-compose的yml文件.安装好docker,安装好docker-compose (2)在文件的目录直接运行docker-compose up  就可以直接把服务组启动起来了. 参考:https://docs.docker.com/compose/gettingstarted/ 2.docker-machine…
2017年12月29日 10:18 ~ 11:00 左右,由于整个 docker swarm 集群宕机,造成我们迁移至 .net core 跑在 docker swram 上的所有站点无法正常访问,由此给您带来很大很大的麻烦,请您谅解.受这次故障影响的站点有 闪存,博问,班级,园子,短信息,招聘,小组,openapi ... 2017年,随着将一个一个项目从 .net framework 迁移至 .net core ,我们兴奋地在部署上迈出了重要的一步——终于可以进行 docker 部署了.对于…
非常抱歉,今天 10:05-10:20 左右,我们用阿里云服务器搭建的 docker swarm 集群又出现故障,又是因为突然的节点 CPU 波动. 受这次故障影响的站点有 闪存,博问,班级,园子,短信息,招聘,小组,网摘,openapi ,由此给您带来很大的麻烦,请您谅解. 故障前先是有一个 worker 节点出现 CPU 100% 报警: 云服务器ECS实例:swarm1-node5,CPU使用率于10:00发生告警,值为100%,持续时间1分钟 收到报警后,我们将这个节点下线并重启: do…
今天中午我们在 docker swarm 集群上发布应用时遇到了一个奇怪的 docker swarm 内置负载均衡的问题,该应用的 2 个新容器成功启动后,在容器内访问正常,但通过服务名访问时一会正常一会缓慢或超时,似乎 docker swarm 内置负载均衡与其中某个容器的网络通信有问题,而没有进行发布操作的应用都正常,重启这2个容器也不能解决问题,后来只能将这个应用部署到备用集群上才临时解决. 我们遇到的 docker swarm 问题也得到了阿里云容器服务团队的关注,今天和他们进行了交流.…
非常抱歉,今天 10:30-10:45 左右由于 docker swarm 集群节点出现问题,造成除博客之外的站点出现访问异常,由此给您带来很大的麻烦,请您谅解. 故障开始时出现有时访问正常有时访问出现 502 或 500 ,当时我们就判断是某个节点出现问题,但无法直接定位出哪个节点,只能依次将一个个节点下线-上线.但是,不走运的是出现问题的节点恰恰是我们最后下线的一个节点.所以,在下线正常节点的过程中,更多的容器被迁移到了问题节点,结果造成更大范围的故障,直到我们下线问题节点,才恢复正常. 自…
这是我们使用自建 docker swarm 集群后在部署时遇到的一个问题,使用 docker service update 命令更新服务时, docker service update -d=false --force service_name 在更新的过程中服务有短暂的时间不能访问. 该服务中运行的是 asp.net core web api ,所使用的 Dockerfile 如下: FROM microsoft/aspnetcore:1.1.2 ARG PROJECT WORKDIR /ap…
背景 凭借敏捷开发部署理念的推行,相信对于很多人来说docker这项容器技术已经并不陌生,Docker 1.12引擎发布了快两个月,新引擎中包含了许多特性.诸如: Swarm模式,容器集群的健康检查,节点的身份加密,docker Service API调用,容器启动的过滤匹配方式(constraint), docker的内建路由,以及支持在多平台系统上运行docker(MAC.Windows.AWS.AZURE),以及一些插件升级等等. 特性之多,就连Docker 自己的产品经理也表示这次的新版…
目录 [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…
参考:https://docs.docker.com/get-started/part4/ 了解 swarm 集群 swarm 是一组运行 Docker 并且已加入集群中的机器.执行此操作后,您可以继续运行已使用的 Docker 命令,但现在它们在集群上由 swarm 管理节点执行. swarm 中的机器可以为物理或虚拟机.加入 swarm 后,可以将它们称为节点. swarm 管理节点可以使用多项策略来运行容器,例如“最空的节点”– 这将使用容器填充使用最少的机器.或“全局”,这将确保每台机器…
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…
#准备三台CentOS7 #IP划分 192.168.1.201       virtualBox1 192168.1.202        virtualBox2 192168.1.204        virtualBox3 #三台机器上分别安装docker docker安装 #三台机器上分别配置加速器 vim /etc/docker/daemon.json                  #该文件原本没有需要新建 {    "registry-mirrors": [ "…
今天,在站内看到一篇关于Docker Swarm 的文章,非常好,在这里转过来,方便日后查阅 :) 原贴链接: http://www.cnblogs.com/rio2607/p/4445968.html Swarm介绍 Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机.Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(dockercl…
实践中会发现,生产环境中使用单个 Docker 节点是远远不够的,搭建 Docker 集群势在必行.然而,面对 Kubernetes, Mesos 以及 Swarm 等众多容器集群系统,我们该如何选择呢?它们之中,Swarm 是 Docker 原生的,同时也是最简单,最易学,最节省资源的,比较适合中小型公司使用. Docker Swarm 介绍 Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 D…
https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653195618&idx=2&sn=b7e992da6bd1b24fae8a285fbbe1bd38&chksm=8c99ffb8bbee76ae2b6fc5f265fb586edc8ce8e8d67eb0389b5b247c4cde2a063c0d7d9e432b&scene=0&key=b2ddfae992804f5474c3b20abb75e…
之前介绍了Docker管理工具-Swarm部署记录,这里简单总结下Docker Swarm的日常维护命令,以作为平时运维笔记. Swarm作为一个管理Docker集群的工具,首先需要将其部署起来,可以单独将Swarm部署于一个节点.另外,自然需要一个Docker集群,集群上每一个节点均安装有Docker.具体的Swarm架构图可以参照下图: Swarm架构中最主要的处理部分自然是Swarm节点,Swarm管理的对象自然是Docker Cluster,Docker Cluster由多个Docker…
项目xxx(后端),xxx-ui前端(前后端分离的项目) 依赖mysql,elasticsearch.分别制作了四个镜像来做这件事.希望可以制作跨主机的部署,使用了swarm,以下是学习记录. 参考 https://www.cnblogs.com/xishuai/p/docker-swarm.html docker-machine create -d virtualbox manager1 && docker-machine create -d virtualbox manager2 &a…
一.docker安装 这里我们安装docker-ce 的18.03版本 yum    -y remove docker  删除原有版本 #安装依赖包 [root@Docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2 #添加docker的CE版本的yum源配置文件 [root@Docker ~]# curl   https://download.docker.com/linux/centos/docker-ce…
容器化已经改变我们部署软件和微服务开发的方式.如果你刚听说容器, 这篇博客帮你入门. 什么是容器编排 容器能够把服务打包成基本单元,你可以把它部署到任何地方:本地机器.测试环境或者生产系统.但是在生产环境中,你却不能把所有容器都运行在一台机器上,因为会用光系统的资源.你需要多个机器(或者节点)以集群(不同机器通过网络通信)的方式运行,然后把容器部署到集群中.现在问题变成,如果我有多个机器/节点组成的集群,我该如何决定容器运行在哪台机器上呢?有了编排软件,你只需要告诉它我要部署容器,剩下的事情交给…
本文探讨了几种容器调度策略,并以内存约束为例,讨论了如何利用Docker Swarm,通过资源约束实现容器的合理调度.其中,对容器资源的约束,包括硬约束和软约束,硬约束是指内存资源的实际限制条件,而软约束则是当服务器实际内存资源有足余时,容器可自由使用,一旦内存资源有所紧缺,则约束开始生效.硬约束和软约束的结合使用,可以在减少资源浪费的同时保证服务的稳定性. 我们每天在数百台服务器上运行成百上千个容器,面临的最大一个挑战是怎样高效地调度容器.容器的调度是指在一组服务器上处理容器分配的问题,以保证…
一.机器环境 机器规划 172.16.0.89 swarm的manager节点 manager-node 172.16.0.90 swarm的node节点 node1 机器版本(均是:CentOS Linux release 7.7.1908) 设置主机名 在manager节点上 [root@manager-node ~]# hostnamectl --static set-hostname manager-node 在node1节点上 [root@node1 ~]# hostnamectl -…
## Docker初体验 安装 因为我用的是mac,所以安装很简单,下载dmg下来之后拖拽安装即可完成. 需要注意的就是由于之前的docker是基于linux开发,不支持mac,所以就出现了docker toolbox用来对mac的兼容(此处不是很严谨,只不过这样理解好理解一点) 随着docker的发展,便出现了docker for mac是原生的mac application,下载安装便是这个application 具体安装方式见 docker的mac安装 在docker中运行应用 在一个Do…
docker + swarm 集群 导读 Swarm是Docker公司在2014年12月初新发布的容器管理工具.和Swarm一起发布的Docker管理工具还有Machine以及Compose.Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体.Swarm使用标准的Docker API接口作为其前端访问入口. token方式 以虚拟机方式搭建集群练练手 安装swarm docker run --rm swarm create 6a2d60…
Docker 是一种新型的虚拟化技术,它的目标在于实现轻量级操作系统的虚拟化.相比传统的虚拟化方案,Docker 虚拟化技术有一些很明显的优势:启动容器的速度明显快于传统虚拟化技术,同时创建一台虚拟机占用的资源也要远远小于传统的虚拟技术.Swarm 是 Docker 集群化的技术,而 Swarm 集群化 Docker 离不开服务发现.Consul 能够解决 Swarm 的服务发现问题.本文将介绍 Swarm 如何使用 Consul 作为服务发现. Docker Swarm 服务发现 Docker…
docker rancher 体验 官方 githubhttps://github.com/rancher/rancher 环境说明: 10.6.0.14010.6.0.18710.6.0.188 修改主机名:10.6.0.140 = hostnamectl --static set-hostname reancher-manager10.6.0.187 = hostnamectl --static set-hostname reancher-node-110.6.0.188 = hostnam…
译者按: 实践中会发现,生产环境中使用单个Docker节点是远远不够的,搭建Docker集群势在必行.然而,面对Kubernetes, Mesos以及Swarm等众多容器集群系统,我们该如何选择呢?它们之中,Swarm是Docker原生的,同时也是最简单,最易学,最节省资源的,至少值得我们多了解一下.本文将介绍一些非常实用的建议. 原文: Tips for using Docker Swarm mode in production 译者: Fundebug 为了保证可读性,本文采用意译而非直译.…