作者简介 张智博,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 导入即可。实践,咱们能够看到这样的效果:
根据 EC2 Node Driver 装备弹性 RKE2 集群相对复杂一些。首要需要装备好 AWS 的访问密钥,Rancher 支撑大量的公有云生态,在 AWS 上运用过程和其他云基本共同。
创立 RKE2 集群时,挑选 EC2 Node Driver,装备 RKE2 节点模板,以及集群的根底参数装备。在 AWS 上,挑选从前构建的 AMI,并运用 openEuler 作为 SSH User,一起挑选 Spot 竞价实例,关于普通的测验环境能够极大程度减少费用。
经过 UI 以 SSH 灵敏访问 RKE2 节点,这些节点运用 openEuler Linux。这取决于咱们从前装备 openEuler AMI 以及其 SSH User。
运用Node Drvier方法最具特色的才能,就是能够快速进行集群扩容。由于Rancher连接了EC2 API,而且会根据集群装备状况主动将布置任务下发给新的openEuler节点。
关于集群内的资源办理,能够切换到集群浏览视图,对每个 workload 资源精细化办理。
这样,咱们就完成了 Rancher 和 openEuler 的开始上云之旅。一个单节点的办理平面,两个下游集群,分别是 K3s 集群和 RKE2 集群,而且 K3s 运用了 ARM64 体系。一起,必定程度展现了 Rancher 的多云多集群的办理才能。
未来商业化思考
经过 Rancher 对公有云的整合才能以及 Kubernetes 发行版的办理才能,能够很顺利地将 openEuler 带入公有云环境。不光扩大了 Rancher 的兼容矩阵,也连接了 openEuler 生态。
SUSE 作为传统 Linux 厂商,也根据 openEuler 构建了自己的商业发行版 SUSE Euler。一起,Rancher 在商业化层面也有 Rancher 企业版,经过 Rancher 企业版和SUSE Euler 的组合,能够为客户带来更安稳的商业技能支撑。