openEuler 之上的 K3s ARM64 集群管理
K3s 是 CNCF 认证的轻量级 Kubernetes 发行版,在全球拥有广泛的安装量,主要由 SUSE 工程师在开源社区维护。K3s 除了可以单独部署外,也可以通过 Kubernetes 管理软件 Rancher 进行管理。SUSE 中国团队与欧拉社区合作,以 RFO SIG 协作方式推动 Rancher 和 K3s 等相关产品与 openEuler OS 的兼容性。
Rancher v2.7.2 版本迎来了较多重大更新,其中对 K3s ARM64 集群的管理进一步增强,支持用户从 Rancher 配置创建 K3s ARM64 集群,并通过 Rancher 实现该集群的生命周期管理。RFO SIG 在此基础上,确保了 openEuler 的兼容性。
ARM64 环境准备
本文中使用的软件环境如下,通过 AWS 云环境展示相关产品能力:

备注:AWS 的 openEuler AMI,在 openEuler KVM 镜像基础上构建,并内置了 AWS 相关驱动。此 AMI 由 RFO SIG 维护,表格中的软件均支持 ARM64 架构。
部署 Rancher 管理平面
AWS 可以很方便创建 ARM64 环境,使用 openEuler AMI 创建 EC2 实例,c6g.xlarge 规格完全可以满足 Rancher 的部署需求。Rancher 管理平面需要部署在 Kubernetes 之中,作为一种快速开始的部署体验,我们推荐使用 K3s 作为管理平面的 Local 集群,并通过 Helm 安装 Rancher。
在 openEuler ARM64 环境中,Rancher 管理平面可以正常工作。启动完成后,通过 RancherForFun 密码激活,即可进入 UI 管理模式。

创建弹性的 K3s 集群
Rancher 中内置了 AWS EC2 的驱动,可以按照预期的 AMI 快速创建 EC2 实例。基于此能力,Rancher 可以创建弹性的 K3s 集群,并且在 openEuler ARM64 环境同样兼容。如下图,我们配置了 1 个 ALL Roles 节点和 1 个 worker 节点的 K3s 集群,使用了 openEuler 22.03 AMI,配置竞价实例以最大限度减少费用。K3s 的集群版本可选择 v1.24.11+k3s1。

当集群资源不足时,我们可以在 UI 上操作,非常方便得扩容 worker 节点。Rancher 会根据设置,使用内置的 EC2 driver 创建新的 ARM64 实例,并自动部署 K3s 程序。同时,Rancher 也支持通过 UI 访问节点的 SSH Shell。

增强 K3s 集群的服务能力
日常的维护管理中,需要定期对 K3s 集群备份,除了可以设置定期备份外,也可以立即执行备份。Rancher 会保存各个备份点的数据,用户可以基于某个备份执行恢复操作。

针对 K3s 的升级也是非常简单的,只需在 UI 上编辑集群,选择期望更新的版本即可。比如,可以从 v1.24.11+k3s1 升级到 1.25.7+k3s1。

Rancher 内置了一些集群工具用来扩展下游集群的服务能力,其中一些工具已经具备了 ARM64 的兼容性,并且在 openEuler OS 之上得到验证。比如:分布式存储组件 Longhorn、监控、日志等。

当 K3s 集群已经不需要时,可以在 Rancher 中删除该集群,相关联的 EC2 实例也会被一并删除。
持续的产品化连接
RFO SIG 通过工程化手段持续确保 Rancher 与 openEuler 的产品兼容性,K3s ARM64 场景的管理也是社区呼声较高的功能。同时,Rancher 具备非常好的插件机制,可以方便扩展各种云的驱动,在各种云环境下接入 openEuler。在非云环境下,也可以在已有 openEuler 主机上灵活配置。使用 openEuler 作为基础设施的 OS 与 Rancher 进行组合,可以快速建立产品化的容器管理平台,并能支持 AMD64 和 ARM64 环境。
评论