近日,全球领先的容器管理软件供应商Rancher Labs宣布,其旗舰产品Rancher——开源的企业级Kubernetes管理平台——最新版本Rancher 2.2 Preview 2全面发布,这一版本包含了许多在K8S集群操作的强大特性。

您可以通过访问发布页面(https://rancher.com/products/rancher/2.2/)和发布说明(https://github.com/rancher/rancher/releases/tag/v2.2.0-alpha6)来了解所发布的新功能。

本文将介绍其中一个特性:多集群应用(multi-cluster applications),下面将为您介绍,该特性将如何显著减少您的工作量,并提高多集群操作的可靠性。

概 览

假如您有用过k8s,并且有两个及以上的集群运维经验,那么您遇到下面的情况:

  • 当跨多个可用区部署(AZs)时,应用需要具有更高的容错性;

  • 在具有数百个集群的边缘计算场景中,同一个应用需要在多个集群上运行。


在高可靠性的情况下,运维操作人员通常通过将节点从多个可用区纳入到一个集群内来降低单个可用区不可用风险。但是这个方案的问题在于,虽然抵抗了可用区故障,但是防不住集群本身故障,集群故障的可能性高于可用区故障,而且一旦集群出故障后,可能会影响集群中在运行的程序。

另外一种方法是,每个可用区中运行单独的集群,病症每个集群上运行应用程序的副本。相当于每个可用区都有一套k8s集群,但是每个集群手动维护应用程序成本高,又易错。

边缘计算场景跟多可用区集群相同的问题:应用程序手动维护,既耗时,又容易出错,即使运维团队给力,创建了复杂的脚本来部署和升级,但是又多了一个故障点,而且这些脚本也需要升级和维护,并且要求负责的运维人员不仅要编写流程(升级发版流程),还要在脚本失败时能够转成人肉运维。

从Rancher 2.2 Preview 2 (https://github.com/rancher/rancher/releases/tag/v2.2.0-alpha6)开始,Rancher支持在任意数量的k8s集群中同时部署和升级同一应用程序的副本。

同时也扩展了基于Helm软件包管理器的应用商店(Application Catalogs),在此之前,应用商店仅适用于单个集群,我们在全局级别增加了一个附加功能,权限允许的情况下,可以将应用程序部署到Rancher管理的任意集群上。

有关Rancher 2.2 Preview2的功能的完整演示,请保持关注,我们将在3月推出全新一季的在线培训,届时将提供新功能的演示,并在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版本(https://rancher.com/docs/rancher/v2.x/en/installation/server-tags/#helm-chart-repositories),如果有任何反馈意见,请在Github上提交Issues 或者加入论坛(https://forums.rancher.com/)或Slack(https://slack.rancher.io/) 。点击文末【阅读原文】即可进入Github界面,提issue。