16 RKE2 #
请参见 RKE2 官方文档。
RKE2 是完全符合规范且注重安全性与合规性的 Kubernetes 发行版,因为它:
提供默认设置和配置选项,使群集能够在最低限度的运维干预下通过 CIS Kubernetes 基准 v1.6 或 v1.23
支持 FIPS 140-2 合规性标准
在 RKE2 构建管道中使用 trivy 定期扫描组件中存在的 CVE
RKE2 将控制平面组件作为 kubelet 管理的静态 Pod 进行启动。嵌入式容器运行时为 containerd。
注意:RKE2 也称为 RKE 政府版,这个名称旨在体现它目前面向的另一类使用场景和行业领域。
16.1 RKE2 与 K3s 的比较 #
K3s 是完全合规的轻量级 Kubernetes 发行版,主要用于 Edge、IoT 和 ARM,已针对易用性和资源受限的环境进行优化。
RKE2 结合了 1.x 版 RKE(后文称为 RKE1)和 K3s 的最大优点。
RKE2 承袭了 K3s 的易用性、易操作性和部署模式。
从 RKE1 继承了与上游 Kubernetes 的紧密一致性。在某些方面,K3s 为了优化边缘部署而与上游 Kubernetes 产生了差异,但 RKE1 和 RKE2 能够保持与上游的紧密一致。
16.2 SUSE Edge 如何使用 RKE2? #
RKE2 是 SUSE Edge 堆栈的基本组成部分。它位于 SUSE Linux Micro(第 9 章 “SUSE Linux Micro”)的顶层,提供部署 Edge 工作负载所需的标准 Kubernetes 接口。
16.3 最佳实践 #
16.3.1 安装 #
将 RKE2 安装为 SUSE Edge 堆栈一部分的建议方法是使用 Edge Image Builder (EIB)。有关如何配置 EIB 来部署 RKE2 的详细信息,请参见 EIB 文档(第 11 章 “Edge Image Builder”)。
EIB 足够灵活,支持 RKE2 所需的任何参数(例如指定 RKE2 版本、服务器或代理配置),适用于所有 Edge 使用场景。
对于涉及 Metal3 的其他使用场景,也可以使用和安装 RKE2。在这种特殊情况下,Cluster API 提供程序 RKE2 会自动在使用 Edge Stack 通过 Metal3 置备的群集上部署 RKE2。
在这种情况下,必须在涉及的不同 CRD 上应用 RKE2 配置。以下示例说明如何使用
RKE2ControlPlane
CRD 提供不同的 CNI:
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: RKE2ControlPlane
metadata:
name: single-node-cluster
namespace: default
spec:
serverConfig:
cni: calico
cniMultusEnable: true
...
有关 Metal3 使用场景的详细信息,请参见第 10 章 “Metal3”。
16.3.2 高可用性 #
对于高可用性 (HA) 部署,EIB 会自动部署并配置 MetalLB(第 19 章 “MetalLB”)和 Endpoint Copier Operator(第 20 章 “Endpoint Copier Operator”),以向外部公开 RKE2 API 端点。
16.3.3 网络 #
SUSE Edge 堆栈支持 Cilium、Calico,并使用 Cilium 作为其默认 CNI。如果 Pod 需要多个网络接口,也可使用 Multus 元插件。RKE2 独立版本支持更广泛的 CNI 选项。
16.3.4 存储 #
RKE2 不提供任何类型的持久性存储类或操作器。对于跨多个节点的群集,建议使用 SUSE Storage(第 17 章 “SUSE Storage”)。