引言
近日(春节前后),Rancher labs宣布,其旗下的开源企业级Kubernetes管理平台Rancher,发布了Rancher 2.2 Preview 2(预览版2),它包含了许多在k8s 集群操作的强大特性
本文将介绍其中一个特性:多集群应用(multi-cluster applications),下面将为您介绍,该特性将如何显著减少您的工作量,并提高多集群操作的可靠性。
概览
假如您有用过k8s,并且有两个及以上的集群运维经验,那么您遇到下面的情况
- 当跨多个可用区部署(AZs)时,应用需要具有更高的容错性
- 在具有数百个集群的边缘计算场景中,同一个应用需要在多个集群上运行。
在高可靠性的情况下,运维操作人员通常通过将节点从多个可用区纳入到一个集群内来降低单个可用区不可用风险。但是这个方案的问题在于,虽然抵抗了可用区故障,但是防不住集群本身故障,集群故障的可能性高于可用区故障,而且一旦集群出故障后,可能会影响集群中在运行的程序。
另外一种方法是,每个可用区中运行单独的集群,病症每个集群上运行应用程序的副本。相当于每个可用区都有一套k8s集群,但是每个集群手动维护应用程序成本高,又易错。
边缘计算场景跟多可用区集群相同的问题:应用程序手动维护,既耗时,又容易出错,即使运维团队给力,创建了复杂的脚本来部署和升级,但是又多了一个故障点,而且这些脚本也需要升级和维护,并且要求负责的运维人员不仅要编写流程(升级发版流程),还要在脚本失败时能够转成人肉运维。
从Rancher 2.2 Preview 2 开始,Rancher支持在任意数量的k8s集群中同时部署和升级同一应用程序的副本。
同时也扩展了基于Helm软件包管理器的应用商店(Application Catalogs),在此之前,应用商店仅适用于单个集群,我们在全局级别增加了一个附加功能,权限允许的情况下,可以将应用程序部署到Rancher管理的任意集群上。
有关Rancher 2.2 Preview2的功能的完整演示,请加入 Rancher2月份的在线MeetUp ,届时将提供新功能的演示,并在Q&A环节进行答疑。
下面将演示,在Rancher中如何便捷的管理多集群应用。
功能快速入门
- 登陆Rancher后,将看到纳管的所有集群的列表,同时在菜单栏新增了一个
多集群应用(Multi-Cluster Apps)的按钮
- 单击
多集群应用按钮后,将看到两个按钮,管理Catalogs和启动。管理Catalogs将跳到应用商店(Catalogs)的管理页,您开源在其中启用主要Helm repo或者添加其他第三方Helm repo。 - 单击
启动按钮以启动新应用程序。
- 从显示的可以部署的应用中,选择Grafana(用于演示)。
- 按照要求配置详细信息,使用表单或者直接用提供YAML进行配置,注意,在此处的设置将应用到部署此应用程序的集群中。
- 在
配置选项下,在Target(目标)下拉框中选择目标集群的指定项目。
- 选择升级策略。此处为了演示,我们将选择
滚动更新并提供每批1个,间隔20秒。此设置可以确保以后升级应用时,一次只更新一个集群,并且每个集群升级操作的间隔为20秒。
- 如果要调整集群间的差异,可以在
Answer Overrides部分进行设置。
- 一切准备妥当,点击底部
启动,然后将跳到结果页,显示刚刚已安装的多集群应用(此处是演示用的Grafana)。每个应用将显示当前状态和目标集群以及项目列表。
- 当应用程序可以升级时,应用状态将显示
Upgrade Available - 要启动升级,请单击应用上的菜单按钮(三个点的菜单),然后选择升级
- 验证是否已选择
滚动更新选项 - 更改一些设置,然后点击底部的
升级按钮
打开目标集群的 工作负载 选项卡,将看到其中一个状态更改为 更新 ,此集群中的应用将被更新,然后Rancher将暂停20s(刚刚设置的间隔时间),然后继续更新下一个集群的应用。
总结
多集群应用程序将减少运维团队的工作量,并使跨集群快速可靠的部署和升级应用成为可能。
要在实验室或者开发环境中测试这些功能,请安装最新的Alpha版本,如果有任何反馈意见,请在Github上提交Issues 或者加入论坛 或Slack 。
参考资料
- rancher 博客原文--Introducing Multi-Cluster Applications in Rancher 2.2 Preview 2
- Rancher中国微信公众号--革命性新特性 | 单一应用跨多Kubernetes集群的部署与管理
招聘小广告
山东济南的小伙伴欢迎投简历啊 加入我们 , 一起搞事情。
长期招聘,Java程序员,大数据工程师,运维工程师,前端工程师。