作者简介 张智博,SUSE Rancher 大中华区研制总监,一向活泼在研制一线,经历了 OpenStack 到 Kubernetes 的技能革新,在底层操作体系 Linux、虚拟化 KVM 和 Docker 容器技能领域都有丰富的研制和实践经验。 本文来源:Rancher大众号

Rancher 是一套开源的企业级容器办理渠道,支撑大量的 Kubernetes 发行版以及 Linux 操作体系,将 openEuler Linux 归入支撑体系是咱们近期展开的一项作业。

这是一次 Rancher 和 openEuler 的上云之旅,一起也是咱们内部工程体系的一部分,一旦归入一种新的 OS,就需要让它能在云端启用,这是云原生时代的大势所趋。本文展现了运用 AWS 渠道这一上云过程,并搭建了一套 Rancher+openEuler 的环境用于展现这种才能。

文中提到的相关产品版别信息如下:

openEuler 22.03 LTS
Rancher v2.6.8
K3s v1.24.4+k3s1
RKE2 v1.24.4+rke2r1

构建 openEuler AMI

openEuler 在 Cloud Image 这方面还不行完善,现在主要供给 ISO 镜像,在 Cloud Image 层面还只有一个简略的 QCOW2 Image。咱们首要实现了一套工程化办法,将 openEuler QCOW2 Image 转换为 AWS AMI,这样咱们能够在云端灵敏布置启用。

这个过程需要做一些额定作业,咱们从头调整了社区 QCOW2 Image 的 rootdisk 分区,引进了能够适配云环境的相关软件包,并经过 scripts+packer 东西实现了全体构建。构建 AMI 的一起,也顺带解决了以下问题:

  • 无法动态注入 ssh key;
  • 无法主动扩容根磁盘;
  • 禁用 Apparmor,保证容器正常发动(实践不应该直接禁用,后续会寻找愈加合理的解决办法);
  • 默认内置云原生场景必要的根底软件包(避免测验布置时手动装置);
  • openEuler ARM64 体系缺少 ENA 驱动,导致 EC2 ARM 实例网络无法激活。

后续,咱们会推进在 openEuler 社区建设 Cloud Image。关于云原生场景,很显然这是一项非常重要的根底作业。

布置 Rancher 以及下游集群

openEuler 尽管内置了 Docker 引擎,但终究咱们依然决议不运用 Docker。从Kubernetes 生态视点来看,Docker 已不再是必需品。Rancher 无论是办理平面仍是下游集群,也不会强烈依靠 Docker;而且 Containerd 已经内置到 K3s 和 RKE2 中,也不需要 openEuler 的 Containerd 软件包。

在这个层面解耦是非常重要的,由于操作体系的软件包存在很强的依靠联系,减少这种和 OS 软件包的冲突,更有利于运维办理。未来,也会考虑将欧拉开源社区中的轻量化容器引擎 iSulad 等引进到咱们的计划中,为客户供给更为灵敏多样的挑选。

咱们规划了一个布置架构,它能够快速展现 Rancher+openEuler 的才能:

  • 运用 AMD64 AMI,发动一台 EC2 实例,布置 K3s;
  • 在此 K3s上,布置 Rancher Server;
  • 运用 ARM64 AMI,发动一台 EC2 实例,布置 K3s ARM64 版别,将其以导入方法纳管到 Rancher;
  • 运用 Rancher 中的 EC2 Node Driver,弹性创立 RKE2 集群,AMI 运用 AMD64 镜像。

Local K3s 和 Rancher Server 的装置较为简略,这里咱们能够直接简化为两行脚本:

curl -sfL https://get.k3s.io | K3S_TOKEN=SUSERancherGC sh -s - server --cluster-init
curl https://raw.githubusercontent.com/cnrancher/autok3s/master/assets/rancher-setup/rancher-l7.sh | sh -

另一个 K3s ARM64 集群的创立和导入也十分简略,无需特别的参数处理。一旦 K3s ARM64 和 Rancher Server 都准备稳当之后,运用 Generic Import 导入即可。实践,咱们能够看到这样的效果:

一次 Rancher 和 openEuler 的上云之旅

根据 EC2 Node Driver 装备弹性 RKE2 集群相对复杂一些。首要需要装备好 AWS 的访问密钥,Rancher 支撑大量的公有云生态,在 AWS 上运用过程和其他云基本共同。

一次 Rancher 和 openEuler 的上云之旅

创立 RKE2 集群时,挑选 EC2 Node Driver,装备 RKE2 节点模板,以及集群的根底参数装备。在 AWS 上,挑选从前构建的 AMI,并运用 openEuler 作为 SSH User,一起挑选 Spot 竞价实例,关于普通的测验环境能够极大程度减少费用。

一次 Rancher 和 openEuler 的上云之旅

经过 UI 以 SSH 灵敏访问 RKE2 节点,这些节点运用 openEuler Linux。这取决于咱们从前装备 openEuler AMI 以及其 SSH User。

一次 Rancher 和 openEuler 的上云之旅

运用Node Drvier方法最具特色的才能,就是能够快速进行集群扩容。由于Rancher连接了EC2 API,而且会根据集群装备状况主动将布置任务下发给新的openEuler节点。

一次 Rancher 和 openEuler 的上云之旅

关于集群内的资源办理,能够切换到集群浏览视图,对每个 workload 资源精细化办理。

一次 Rancher 和 openEuler 的上云之旅

这样,咱们就完成了 Rancher 和 openEuler 的开始上云之旅。一个单节点的办理平面,两个下游集群,分别是 K3s 集群和 RKE2 集群,而且 K3s 运用了 ARM64 体系。一起,必定程度展现了 Rancher 的多云多集群的办理才能。

一次 Rancher 和 openEuler 的上云之旅

未来商业化思考

经过 Rancher 对公有云的整合才能以及 Kubernetes 发行版的办理才能,能够很顺利地将 openEuler 带入公有云环境。不光扩大了 Rancher 的兼容矩阵,也连接了 openEuler 生态。

SUSE 作为传统 Linux 厂商,也根据 openEuler 构建了自己的商业发行版 SUSE Euler。一起,Rancher 在商业化层面也有 Rancher 企业版,经过 Rancher 企业版和SUSE Euler 的组合,能够为客户带来更安稳的商业技能支撑。