本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

SUSE® Rancher Prime: RKE2 集群配置参考

本节涵盖了在 Rancher 中可用于新建或现有 RKE2 Kubernetes 集群的配置选项。

概述

您可以通过以下两种方式之一配置 Kubernetes 选项:

  • Rancher UI:使用 Rancher UI 选择在设置 Kubernetes 集群时常见的自定义选项。

  • 集群配置文件:高级用户可以创建 RKE2 配置文件,而不是使用 Rancher UI 选择集群的 Kubernetes 选项。使用配置文件可以让您设置许多可用于 RKE2 安装的额外 选项

在 Rancher UI 中编辑集群

Rancher UI 提供两种编辑集群的方法:

  1. 通过表单。

  2. 通过 YAML。

使用表单编辑集群

该表单涵盖了集群最常用的选项。

要编辑您的集群,

  1. 单击 ☰ > 集群管理

  2. 转到您想要配置的集群并点击 ⋮ > 编辑配置

在 YAML 中编辑集群

有关 RKE2 集群在 YAML 中可配置选项的完整参考,请参见 RKE2 文档

要在 YAML 中编辑您的集群:

  1. 单击 ☰ > 集群管理

  2. 转到您想要配置的集群并点击 ⋮ > 以 YAML 编辑

  3. rkeConfig 指令下编辑 RKE 选项。

Rancher UI 中的配置选项

机器池配置

本小节涵盖通用机器池配置。有关特定基础设施提供商配置,请参见以下内容:

池名

机器池的名称。

机器数量

池中机器的数量。

角色

将 etcd、控制平面和工作节点角色分配给节点的选项。

高级

自动替换

节点在自动删除和替换之前可以不可达的时间量。

删除前排空

通过在节点删除之前驱逐所有 Pod 来启用节点排空。

Kubernetes 节点标签

向节点添加 标签 以帮助组织和对象选择。

有关标签语法要求的详细信息,请参见 Kubernetes 文档。

污点

向节点添加 污点,以防止 Pod 被调度到节点上或在节点上执行,除非 Pod 具有匹配的容忍。

集群配置

基础

Kubernetes 版本

安装在集群节点上的 Kubernetes 版本。

有关升级或回滚 Kubernetes 的详细信息,请参阅 升级 Kubernetes

容器网络提供商

集群使用的 网络提供商

启动集群后,您无法更改网络提供商。因此,请仔细选择您想要使用的网络提供商,因为 Kubernetes 不允许在网络提供商之间切换。一旦使用网络提供商创建了集群,更改网络提供商将需要您拆除整个集群及其所有应用程序。

开箱即用,Rancher 与以下网络提供商兼容:

有关不同网络提供商及其配置的更多详细信息,请查看我们的 RKE2 文档

使用 ciliummultus,cilium 作为容器网络接口提供商时,请确保 启用 IPv6 支持 选项也已启用。

云提供商

您可以配置一个 Kubernetes 云提供者。如果您想在 Kubernetes 中使用动态提供的 卷和存储,通常必须选择特定的云提供者才能使用。例如,如果您想使用 Amazon EBS,则需要选择 aws 云提供者。

如果您想使用的云提供者未列为选项,则需要使用 配置文件选项 来配置云提供者。请参考 此文档 了解如何配置云提供者。

Pod 安全准入配置模板

集群的默认 pod 安全准入配置模板

工作者合规性控制文件

选择一个 合规基准 以验证系统配置。

项目网络隔离

如果您的网络提供商允许项目网络隔离,您可以选择是否启用或禁用项目间通信。

如果您使用任何支持强制执行 Kubernetes 网络策略的 RKE2 网络插件,例如 Canal,则可以使用项目网络隔离。

CoreDNS

默认情况下, CoreDNS 被安装为默认 DNS 提供程序。如果未安装 CoreDNS,则必须自行安装其他 DNS 提供程序。有关其他 CoreDNS 配置,请参考 RKE2 文档

入口
  • Ingress-NGINX

  • Traefik

*Ingress-NGINX EOL:*社区 ingress-nginx 控制器于 2026 年 3 月达到终止服务(EOL),并在 RKE2 v1.36 中被弃用。SUSE Rancher Prime 提供的 RKE2 版本将在 RKE2 v1.32、v1.33、v1.34、v1.35 和 v1.36 的整个生命周期内继续获得 ingress-nginx 支持和 CVE 修复(8+)。Traefik 是 SUSE Rancher RKE2 环境的推荐迁移路径,建议尽快迁移。有关更多详细信息,请参考 从 Ingress NGINX 迁移到 Rancher 提供的 RKE2 集群中的 Traefik

这是在集群中启用 Ingress-NGINX 的遗留入口选项。有关其他配置选项,请参考 RKE2 文档

如果您希望以高可用性配置公开您的应用程序,并且您托管的节点使用的云提供商没有原生负载平衡功能,请启用此选项以在集群中使用 Traefik Ingress。有关其他配置选项,请参考 RKE2 文档

指标服务器

启用或禁用 指标服务器 的选项。

每个能够使用 RKE2 启动集群的云提供商都可以收集指标并监控您的集群节点。启用此选项以从云提供商的门户查看您的节点指标。

附加配置

作为 附加产品 管理的其他 Kubernetes 清单,在启动时应用于集群。有关详细信息,请参阅 RKE2 文档

代理环境变量

Rancher 代理 设置环境变量的选项。环境变量可以使用键值对设置。有关更多详细信息,请参阅 RKE2 文档

etcd

自动快照

启用或禁用定期 etcd 快照的选项。如果启用,用户可以配置快照的频率。有关详细信息,请参见 RKE2 文档。请注意,在 RKE2 中,快照存储在每个 etcd 节点上。这与 RKE1 不同,后者每个集群只存储一个快照。

指标

选择是否将 etcd 指标公开或仅在集群内暴露的选项。

网络

集群 CIDR

用于 Pod IP 的 IPv4 和/或 IPv6 网络 CIDR(默认值:10.42.0.0/16)。

示例值:

  • 仅支持 IPv4:10.42.0.0/16

  • 仅支持 IPv6:2001:cafe:42::/56

  • 双栈:10.42.0.0/16,2001:cafe:42::/56

有关双栈或仅支持 IPv6 网络的其他要求和限制,请参见以下资源:

  • 您必须在首次创建集群时配置服务 CIDR。在集群启动后,您无法在现有集群上启用服务 CIDR。

  • 使用 ciliummultus,cilium 作为容器网络接口提供商时,请确保 启用 IPv6 支持 选项也已启用。

服务 CIDR

用于服务 IP 的 IPv4/IPv6 网络 CIDR(默认值:10.43.0.0/16)。

示例值:

  • 仅支持 IPv4:10.43.0.0/16

  • 仅支持 IPv6:2001:cafe:43::/112

  • 双栈:10.43.0.0/16,2001:cafe:43::/112

有关双栈或仅支持 IPv6 网络的其他要求和限制,请参见以下资源:

  • 您必须在首次创建集群时配置服务 CIDR。在集群启动后,您无法在现有集群上启用服务 CIDR。

  • 使用 ciliummultus,cilium 作为容器网络接口提供商时,请确保 启用 IPv6 支持 选项也已启用。

集群 DNS

coredns 服务的 IPv4 集群 IP。应在您的服务 CIDR 范围内(默认值:10.43.0.10)。

集群域

选择集群的域名。默认值为 cluster.local

NodePort 服务端口范围

更改可用于 NodePort服务的端口范围的选项。默认值为 30000-32767

截断主机名

将主机名截断为 15 个字符或更少的选项。您只能在集群初始创建期间设置此字段。集群创建后,您无法启用或禁用 15 个字符的限制。

此设置仅影响机器提供的集群。由于自定义集群在其自己的节点创建过程中设置主机名,该过程发生在Rancher之外,因此此字段不限制自定义集群的主机名长度。

在集群中截断主机名可以提高与基于 Windows 的系统的兼容性。尽管 Kubernetes 允许主机名长度达到 63 个字符,但使用 NetBIOS 的系统将主机名限制为 15 个字符或更少。

TLS备用名称

在服务器 TLS 证书上添加主机名或 IPv4/IPv6 地址作为主题备用名称。

堆栈偏好

选择集群的网络堆栈。此选项影响:

  • 用于健康和就绪探测的组件地址,例如Calico、etcd、kube-apiserver、kube-scheduler、kube-controller-manager和kubelet。

  • 授权集群端点的`authentication-token-webhook-config-file`中的服务器URL。

  • 快照恢复期间 etcd 的 advertise-client-urls 设置。

选项为`ipv4`、ipv6dual

  • 当设置为`ipv4`时,集群使用`127.0.0.1`

  • 当设置为`ipv6`时,集群使用`[::1]`

  • 当设置为`dual`时,集群使用`localhost`

堆栈偏好必须与集群的网络配置匹配:

  • 将其设置为 ipv4 以用于仅支持 IPv4 的集群

  • 将其设置为 ipv6 以用于仅支持 IPv6 的集群

  • 将其设置为 dual 以用于双栈集群

确保环回地址配置正确,对于成功的集群配置至关重要。 有关更多信息,请参阅 节点要求 页面。

授权集群端点

授权集群端点可用于直接访问 Kubernetes API 服务器,无需通过 Rancher 进行通信。

在 Rancher 启动的 Kubernetes 集群中,默认启用此功能,使用具有 controlplane 角色的节点的 IP 和默认的 Kubernetes 自签名证书。

有关授权集群端点的工作原理及其使用原因的更多详细信息,请参阅 架构部分。

我们建议使用负载均衡器与授权集群端点一起使用。有关详细信息,请参阅 推荐架构部分。

注册表

选择要从中拉取 Rancher 镜像的镜像储存库。有关更多详细信息和配置选项,请参见 RKE2 文档

升级策略

控制平面并发性

选择可以同时升级多少个节点。可以是固定数量或百分比。

工作节点并发性

选择可以同时升级多少个节点。可以是固定数量或百分比。

排空节点(控制平面)

在升级之前选择从节点中去除所有 Pod 的选项。

排空节点(工作节点)

在升级之前选择从节点中去除所有 Pod 的选项。

高级

设置不同节点的 kubelet 选项。有关可用选项,请参阅 Kubernetes文档

集群配置文件参考

在 YAML 中编辑集群允许您设置 RKE2 安装中的 可用选项,包括在 Rancher UI 中的配置选项 中已列出的选项,以及设置特定于 Rancher 的参数。

示例集群配置文件片段 yaml apiVersion: provisioning.cattle.io/v1 kind:集群规格:cloudCredentialSecretName: cattle-global-data:cc-s879v kubernetesVersion: v1.25.12+rke2r1 localClusterAuthEndpoint: {} rkeConfig: additionalManifest: "" chartValues: rke2-calico: {} etcd: snapshotRetention:5 snapshotScheduleCron:0 */5 * * * machineGlobalConfig: cni: calico disable-kube-proxy: false etcd-expose-metrics: false profile: null kube-apiserver-arg: - audit-policy-file=/etc/rancher/rke2/user-audit-policy.yaml - audit-log-path=/etc/rancher/rke2/user-audit.logs machinePools: - controlPlaneRole: true etcdRole: true machineConfigRef: kind:Amazonec2Config name: nc-test-pool1-pwl5h name: pool1 quantity:1 unhealthyNodeTimeout:0s workerRole: true machineSelectorConfig: - config: protect-kernel-defaults: false machineSelectorFiles: - fileSources: - configMap: name: '' secret: name: audit-policy items: - key: audit-policy path: /etc/rancher/rke2/user-audit-policy.yaml machineLabelSelector: matchLabels: rke.cattle.io/control-plane-role: 'true' registries: {} upgradeStrategy: controlPlaneConcurrency:"1" controlPlaneDrainOptions: deleteEmptyDirData: true enabled: true gracePeriod: -1 ignoreDaemonSets: true timeout:120 workerConcurrency:"1" workerDrainOptions: deleteEmptyDirData: true enabled: true gracePeriod: -1 ignoreDaemonSets: true timeout:120

additionalManifest

指定要传递给控制平面节点的附加清单。

该值是一个字符串,将放置在目标节点的路径 /var/lib/rancher/rke2/server/manifests/rancher/addons.yaml 上。

示例:

additionalManifest: |-
  apiVersion: v1
  kind: Namespace
  metadata:
    name: name-xxxx

如果您想自定义系统图表,您应该使用下面描述的`chartValues`字段。

例如,使用 HelmChartConfig 通过 additionalManifest 自定义系统图表的替代方案可能会导致意外行为,因为同一图表可能有多个 HelmChartConfigs。

chartValues

指定 RKE2 安装的系统图表的值。

有关 RKE2 如何管理打包组件的更多信息,请参阅 RKE2 文档

示例:

chartValues:
    chart-name:
        key: value

machineGlobalConfig

指定 RKE2 配置。在此处进行的任何配置更改将适用于每个节点。在 RKE2 独立版本 中可用的配置选项可以在此处应用。

示例:

machineGlobalConfig:
    etcd-arg:
        - key1=value1
        - key2=value2

在通过 Rancher 进行配置时,有一些配置选项无法更改:

  • data-dir(用于保存状态的文件夹),默认为 /var/lib/rancher/rke2

为了方便在节点上提前放置文件,Rancher 期望在配置中包含以下值,而 RKE2 期望将这些值输入为文件路径:

  • audit-policy-file

  • cloud-provider-config

  • private-registry

Rancher 将文件传送到目标节点的路径 /var/lib/rancher/rke2/etc/config-files/<option>,并在 RKE2 服务器中设置适当的选项。

示例:

apiVersion: provisioning.cattle.io/v1
kind: Cluster
spec:
  rkeConfig:
    machineGlobalConfig:
      audit-policy-file:
        apiVersion: audit.k8s.io/v1
        kind: Policy
        rules:
        - level: RequestResponse
          resources:
          - group: ""
            resources:
            - pods

machineSelectorConfig

machineSelectorConfigmachineGlobalConfig 相同,除了可以在配置中指定 标签 选择器。该配置仅适用于匹配提供的标签选择器的节点。

允许多个 config 条目,每个条目指定自己的 machineLabelSelector。用户可以指定 matchExpressionsmatchLabels、两者或都不指定。省略此字段的 machineLabelSelector 部分的效果与将配置放入 machineGlobalConfig 部分相同。

示例:

machineSelectorConfig
  - config:
      config-key: config-value
    machineLabelSelector:
      matchExpressions:
        - key: example-key
          operator: string # Valid operators are In, NotIn, Exists and DoesNotExist.
          values:
            - example-value1
            - example-value2
      matchLabels:
        key1: value1
        key2: value2

machineSelectorFiles

此功能在 Rancher v2.7.2 及更高版本中可用。

将文件传送到节点,以便在启动 RKE2 服务器或代理进程之前,确保文件就位。 文件的内容是从 Secret 或 ConfigMap 中检索的。目标节点通过 machineLabelSelector 进行过滤。

示例:

machineSelectorFiles:
  - fileSources:
      - secret:
          items:
            - key: example-key
              path: path-to-put-the-file-on-nodes
              permissions: 644 (optional)
              hash: base64-encoded-hash-of-the-content (optional)
          name: example-secret-name
    machineLabelSelector:
      matchExpressions:
        - key: example-key
          operator: string # Valid operators are In, NotIn, Exists and DoesNotExist.
          values:
            - example-value1
            - example-value2
      matchLabels:
        key1: value1
        key2: value2
  - fileSources:
      - configMap:
          items:
            - key: example-key
              path: path-to-put-the-file-on-nodes
              permissions: 644 (optional)
              hash: base64-encoded-hash-of-the-content (optional)
          name: example-configmap-name
    machineLabelSelector:
      matchExpressions:
        - key: example-key
          operator: string # Valid operators are In, NotIn, Exists and DoesNotExist.
          values:
            - example-value1
            - example-value2
      matchLabels:
        key1: value1
        key2: value2

秘密或配置映射必须满足以下要求:

  1. 它必须位于 fleet-default 名称空间中,其中存在 Cluster 对象。

  2. 它必须具有注释 rke.cattle.io/object-authorized-for-clusters: cluster-name1,cluster-name2,允许目标集群使用它。

Rancher Dashboard 提供了一个易于使用的表单,用于创建 Secret 或 ConfigMap。

示例:

apiVersion: v1
data:
  audit-policy: >-
    IyBMb2cgYWxsIHJlcXVlc3RzIGF0IHRoZSBNZXRhZGF0YSBsZXZlbC4KYXBpVmVyc2lvbjogYXVkaXQuazhzLmlvL3YxCmtpbmQ6IFBvbGljeQpydWxlczoKLSBsZXZlbDogTWV0YWRhdGE=
kind: Secret
metadata:
  annotations:
    rke.cattle.io/object-authorized-for-clusters: cluster1
  name: name1
  namespace: fleet-default