有容云AppSoar容器健康检查与调度策略

近两年来,微服务架构和基于容器的虚拟化技术以迅雷不及掩耳之势席卷了整个软件开发社区,微服务与Docker的结合更被视为一种“颠覆”。在与容器结合使用后,微服务架构的优点得到了进一步的放大:微服务鼓励软件开发者将整个软件解耦为较小的功能模块,并且这些功能能够应对外界的故障;而容器进一步对这种解耦性进行了扩展,它能够将软件从底层的硬件中分离出来。

这种方式所产生的结果是:应用程序能够更快地进行创建,并且更易于维护,同时又能够得到更高的质量,从而促使越来越多的产业应用容器化。如eBay、Amazon、京东、淘宝、唯品、银行、证券和运营商等许多企业均把原有应用容器化,开创了一个新的“容器时代”。

Docker是一个开源的应用容器引擎,让开发者可以将应用以及应用依赖环境打包到一个可移植的容器中,然后发布到Linux机器上。这种类似沙箱的机制,可以使容器相互之间几乎没有性能开销,可以很容易地在主机和云平台中迁移。针对容器的管理平台种类较多,质量参差不齐。今天与大家一起讨论的是关于容器管理平台AppSoar的健康检查与调度策略,这也是容器在企业落地经常关注到的问题。

当一个容器在运行的过程中难免出现由于某种原因导致容器不能正常工作的情况。针对这种情况的做法是引入健康检查机制。

健康检查

AppSoar管理平台中,通过在它的主机上运行托管网络代理端,实现了健康监控系统用来协调容器和服务的分布式健康检查。这些网络代理端在内部使用HAProxy来验证应用的健康状态,无论单独容器还是服务的健康检查被开启后,每个容器都会被多至三个网络代理端所监控,代理端运行于不同的容器主机上。如果至少一个HAProxy实例汇报“通过”的健康检查,容器就会被认为是健康的;当所有HAProxy实例都汇报“不健康”的健康检查,就认为容器是不健康的。

这种处理网络区分并且相比基于客户端的健康检查更有效率。通过使用HAProxy来执行健康检查,允许用户跨越应用和负载均衡来指定相同的健康检查策略。

健康检查机制

健康检查机制有两种(默认无):

第一种:确认TCP连接开启的健康检查,根据检查间隔时间和健康阈值规则,进行非健康时操作。

第二种:是HTTP 2xx/3xx响应检查,是执行一个HTTP请求并确保接受了正确的响应。容器对外提供的HTTP请求有GET、POST、HEAD等多种选择,根据HTTP的检查规则和阈值设置,进行非健康时操作。

Compose配置描述:

通过以上的健康检查机制,可以确保我们的应用或服务可以正确放心运行,保证业务的流畅性。

由于AppSoar平台中添加宿主机的配置或者业务负载各不相同,所以,我们需要根据主机配置和业务容器或服务进行合理分配,这时需要考虑到AppSoar管理平台的调度策略。

调度策略

在AppSoar管理平台中,通过服务(Service)或者通过负载均衡器(Loadbalancer)或通过容器页面(Container page)启动容器时,我们提供为容器创建标签的选项以及提供调度容器到您想要放置容器主机的能力。

调度规则为您想要在AppSoar如何挑选使用的主机提供了灵活性。我们可以使用标签来帮助定义调度规则,让您能为一个容器创建您想要的数量的标签。有了多种规则后您可以完全控制在哪台主机上创建容器,也可以请求具有特定主机标签、容器标签、名字或者特定服务的窗口在哪一台主机上启动。通过这些调试规则能帮助创建您容器托管关系的黑名间和白名单。

对于容器或服务,提供了两个选项来决定在哪台主机上启动您的容器。

1.在指定的主机上运行所有容器

通过选择该选项运行所有容器在指定的主机,容器或服务将会在指定的主机上启动。如果您的主机停止运行,那么主机上的窗口也将停止。如果您在容器页面创建一个容器,即使存在端口冲突,容器也能被启动。如果您创建的一个规模大于1的服务,存在端口冲突,您的服务可能陷入未激活状态直到您编辑服务的规模值。

2.自动选择匹配调度规则的主机

通过选择该选项自动匹配调度规则的主机,您可以灵活的选择您的调度规则。任何遵守所有规则的主机都是容器能在上面启动的主机。您能通过“添加调度策略”按钮来添加规则。

对于每个规则,您要选择规则的条件。有四个不同的条件,分别定义规则必须遵守的规则有多严格;这些字段决定您希望的规则将应用于哪些字段。具体字段和条件如下:

条件

必须或必须不:AppSoar只使用匹配或者不匹配字段和值的主机。如果AppSoar找不到一台主机符合带有这些条件的所有规则,您的服务将一直陷入正在激活状态。服务将不停为容器查找到可用的主机。你能编辑服务规模,或者添加/编辑另一台满足这些规则的主机。

应该或不应该:AppSoar试图使用匹配这些字段和值的主机。在没有主机匹配所有规则的条件下,AppSoar将一个接一个移除容器直到所有主机满足剩下的限制。

字段、键/值

主机标签:当为容器或服务选择主机时,AppSoar将会检测主机上的标签来查看是否这些标签匹配所提供的键/值对。因为每台主机能有一个或多个标签,Rancher将把键/值对和主机上所有标签做对比。当添加一台主机到AppSoar时,您就能为主机添加标签,您也能通过主机下拉菜单中的Edit选项来编辑主机上的标签。激活主机上的标签列表可从下拉菜单的键值字段获得。

带标签的容器:当选择这个字段时,AppSoar将查找主机上已经存在的标签匹配键值对的容器主机。因为每个容器能有一个或多个标签,AppSoar将把键值对和主机上的每个容器的所有标签进行比较。容器标签不能在容器启动后编辑容器的标签,为了能创建拥有同样设定的新容器,您能在容器启动前克隆容器或服务以及增加新的标签。AppSoar将检测一台主机上是否有指定服务的容器在运行。如果有相同的,需要改变服务名字或取消未激活或者已移除状态,这规则就不再有效。容器标签选择的这个字段,输入值必须为:栈名/服务名(stack_name/service_name)的格式。正在运行的服务列表可以从下拉菜单的中值中获得。

带名字的容器:AppSoar将检测一台主机上是否有指定名字的容器正在运行。如果稍后的时间里,窗口改变了名字或者处于未激活/已移除状态,整条规则便不再有效。运行中的容器列表可以从下拉菜单的值中获得。

以上是关于AppSoar的容器调度策略设置的一些使用方法,希望能够对于企业容器落地实施和应用有所帮助。本文仅供参考,旨在与大家共同完善容器生态圈!

时间: 2024-10-07 00:20:19

有容云AppSoar容器健康检查与调度策略的相关文章

有容云:容器驱动的PaaS平台实现方案(上)

编者注: 本文基于上海容器大会现场演讲内容,立足于实战跟大家分享了新一代PaaS平台构建中遇到的问题.当下主流PaaS平台解析.企业交付经验及心得体会等.文章较长,分为上.下两个部分,本文为上篇. 嘉宾介绍: 马洪喜,有容云联合创始人兼首席架构师.此前担任Rancher Labs中国区技术负责人.Citrix公司资深架构师.Oracle公司虚拟化产品开发经理等职务,在容器云.IaaS云.桌面云建设方面拥有较为丰富的经验. 本次大会的大部分朋友都是以用户身份分享了自己家的故事和经验,我作为厂商代表

有容云AppSoar的安装实操

1)  什么是有容云AppSoar? 有容云AppSoar是基于Docker的一种容器管理平台,使Docker应用平台化.图形化界面,使用起来更加快捷.方便.简单. 2)  安装环境: 虚拟机a:192.168.5.38 作为服务器(2 cpu  1core  4G mem,) 虚拟机b:192.168.5.34 作为主机   (2cpu 1core 4G mem ) 查看方法: cat   /proc/cpuinfo (查询cpu信息) cat   /proc/meminfo |grep Me

有容云:容器驱动的PaaS平台实现方案(下)

编者注: 本文基于上海容器大会现场演讲内容,立足于实战跟大家分享了新一代PaaS平台构建中遇到的问题.当下主流PaaS平台解析.企业交付经验及心得体会等.文章较长,分为上.下两个部分,本文为下篇. 前文阅读请点击:容器驱动的PaaS平台实现方案(上) 下面我花一点时间跟大家分享下比较干货的东西.比如说容器的网络,之前我们也听了一些专家谈到Flannel,Calico 等等,但是我不知道大家有没有注意到,国内外在谈容器网络的时候更多的时候会再谈Overlay网的构建,比如IPSec.VXLAN等等

有容云:容器网络那些事儿

编者注: 本文根据7月31日有容云<Docker Live时代线下沙龙-北京站>嘉宾分享内容整理而成,分享嘉宾杜东明,有容云高级技术顾问,十年IT经验,IT行业的全栈工程师.涉足领域包括存储.网络.备份/容灾.服务器/终端虚拟化.Docker等.拥有丰富的一线客户经验,曾帮助工行.建行.光大.国寿.泰康等诸多金融客户设计其虚拟化基础架. 我相信,真正拿容器工作或者是去运维一个容器环境,真正在容器上面做生产的时候大家都会遇到的一个话题就是容器网络,所以我今天给大家分享下这个话题,有不同意见的地方

有容云:微服务容器化的挑战和解决之道

注: 本文根据6月是18日七牛云微服务课堂-微服务容器化的挑战和解决之道演讲内容整理而成,演讲者:有容云联合创始人兼首席架构师马洪喜,与大家一起探讨了如何通过容器技术将微服务和 DevOps 落地. 嘉宾介绍: 马洪喜,此前担任 Rancher Labs 中国区技术负责人.Citrix 公司资深架构师.Oracle 公司虚拟化产品开发经理等职务,在容器云.IaaS 云.桌面云建设方面拥有丰富的经验. 单体架构 VS 微服务架构 传统单体架构存在各种各样的问题,如加载编译耗时长.代码管理复杂.横向

有容云-PPT | 当微服务遇见容器

编者注: 本文为10月29日有容云高级技术顾问龙淼在Docker Live时代线下系列-广州站中演讲的PPT,本次线下沙龙为有容云倾力打造Docker Live时代系列主题线下沙龙,每月一期畅聊容器技术生态,北京,深圳,广州,上海--有容云跨城带你起航!文中跟大家讨论了以Docker为代表.日益崛起的容器技术,与微服务又将擦出怎样的火花呢?尝鲜难免需要代价,我们将面临哪些挑战,如何迎接挑战,具体详情见以下PPT分享内容.

有容云:梁胜-如何让Docker容器在企业中投产(下)

编者注: 本文是对上海容器大会有容云专场梁胜博士直播视频的文字回播,力求高度还原当天演讲内容未加个人观点,如在细节部分略有出入欢迎留言指正.(文章较长,分为上.下两个部分) 前情提要: 在上篇中梁博士讲了容器技术短时间内爆发的根本原因,容器在企业中投产的必要性.必然性以及容器投产四种场景中的前两种:新一代的私有云.混合云环境:企业应用商店和一键部署:本篇将介绍最后两种场景:多环境.多资源池的DevOps流水线,构建轻量级PaaS服务,以及微服务.容器云等方面的内容,阅读前文清点击:梁胜 | 如何

有容云:梁胜-如何让Docker容器在企业中投产(上)

编者注: 本文是对上海容器大会有容云专场梁胜博士演讲视频的文字回播,力求高度还原当天演讲内容未加个人观点,如在细节部分略有出入欢迎留言指正.(文章较长,分为上.下两个部分) 在美国的Dockercon大会中,大会主题是怎么样让Docker容器在企业中投产.大家一直在讲这个关于投产的话题,但其实这里面有一个很关键的问题,Docker是一项不错的技术,但是要变成生产力,仅仅是一些研发人员或者是互联网公司能把容器用好还远远不够.怎样让广大企业能够把容器用起来,能够进一步加快自己内部软件开发及部署的速度

云计算之路-阿里云上-容器难容:容器服务故障以及自建 docker swarm 集群故障

3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月22日,我们进行移除与重启节点的操作时引发了故障,详见 云计算之路-阿里云上-容器服务:移除节点引发博问站点短暂故障 . 3月24日,我们参考阿里云容器服务帮助文档-指定多节点调度通过给节点添加用户标签的方式成功移除了部分节点.我们是这么操作的,当时所有节点没有添加用户标签,给待移除节点之外的所有节