RKE 集群配置参考
概述
你可以通过以下两种方式之一来配置 Kubernetes 选项:
-
Rancher UI:使用 Rancher UI 来选择设置 Kubernetes 集群时常用的自定义选项。
-
集群配置文件:高级用户可以创建一个 RKE 配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件可以让你使用 YAML 来指定 RKE 安装中可用的任何选项(除了 system_images 配置)。
RKE 集群配置选项嵌套在 rancher_kubernetes_engine_config 参数下。有关详细信息,请参阅集群配置文件。
在 RKE 启动的集群中,你可以编辑任何后续剩余的选项。
有关 RKE 配置文件语法的示例,请参阅 RKE 文档。
Rancher UI 中的表单不包括配置 RKE 的所有高级选项。有关 YAML 中 RKE Kubernetes 集群的可配置选项的完整参考,请参阅 RKE 文档。
使用 YAML 编辑集群
高级用户可以创建一个 RKE 配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件可以让你使用 YAML 来指定 RKE 安装中可用的任何选项(除了 system_images 配置)。
RKE 集群(也称为 RKE1 集群)的编辑方式与 RKE2 和 K3s 集群不同。
要直接从 Rancher UI 编辑 RKE 配置文件:
-
点击 ☰ > 集群管理。
-
转到要配置的 RKE 集群。单击并单击 ⋮ > 编辑配置。你将会转到 RKE 配置表单。请注意,由于集群配置在 Rancher 2.6 中发生了变更,⋮ > 以 YAML 文件编辑可用于配置 RKE2 集群,但不能用于编辑 RKE1 配置。
-
在配置表单中,向下滚动并单击以 YAML 文件编辑。
-
编辑
rancher_kubernetes_engine_config参数下的 RKE 选项。
Rancher UI 中的配置选项
|
一些高级配置选项没有在 Rancher UI 表单中开放,但你可以通过在 YAML 中编辑 RKE 集群配置文件来启用这些选项。有关 YAML 中 RKE Kubernetes 集群的可配置选项的完整参考,请参阅 RKE 文档。 |
Kubernetes 版本
这指的是集群节点上安装的 Kubernetes 版本。Rancher 基于 hyperkube 打包了自己的 Kubernetes 版本。
有关更多详细信息,请参阅升级 Kubernetes。
网络提供商
|
启动集群后,你无法更改网络提供商。由于 Kubernetes 不允许在网络提供商之间切换,因此,请谨慎选择要使用的网络提供商。使用网络提供商创建集群后,如果你需要更改网络提供商,你将需要拆除整个集群以及其中的所有应用。 |
Rancher 与以下开箱即用的网络提供商兼容:
|
The Weave CNI plugin for RKE with Kubernetes v1.27 and later is now deprecated. Weave will be removed in RKE with Kubernetes v1.30. |
|
Weave 注意事项:
选择 Weave 作为网络提供商时,Rancher 将通过生成随机密码来自动启用加密。如果你想手动指定密码,请参阅使用配置文件和 Weave 网络插件选项来配置集群。 |
项目网络隔离
如果你的网络提供商允许项目网络隔离,你可以选择启用或禁用项目间的通信。
如果你使用支持执行 Kubernetes 网络策略的 RKE 网络插件(例如 Canal 或 Cisco ACI 插件),则可以使用项目网络隔离。
Kubernetes 云提供商
你可以配置 Kubernetes 云提供商。如果你想在 Kubernetes 中使用动态配置的卷和存储,你通常需要选择特定的云提供商。例如,如果你想使用 Amazon EBS,则需要选择 aws 云提供商。
|
如果你要使用的云提供商未作为选项列出,你需要使用配置文件选项来配置云提供商。请参考 RKE 云提供商文档来了解如何配置云提供商。 |
私有镜像仓库
集群级别的私有镜像仓库配置仅能用于配置集群。
在 Rancher 中设置私有镜像仓库的主要方法有两种:通过全局默认镜像仓库中的设置选项卡设置全局默认镜像仓库,以及在集群级别设置的高级选项中设置私有镜像仓库。全局默认镜像仓库可以用于离线设置,不需要凭证的镜像仓库。而集群级私有镜像仓库用于所有需要凭证的私有镜像仓库。
如果你的私有镜像仓库需要凭证,为了将凭证传递给 Rancher,你需要编辑每个需要从仓库中拉取镜像的集群的集群选项。
-
系统镜像是维护 Kubernetes 集群所需的组件。
-
附加组件用于部署多个集群组件,包括网络插件、ingress controller、DNS 提供商或 metrics server。
有关为集群配置期间应用的组件设置私有镜像仓库的更多信息,请参阅私有镜像仓库的 RKE 文档。
Rancher v2.6 引入了为 RKE 集群配置 ECR 镜像仓库的功能。
授权集群端点
授权集群端点(ACE)可用于直接访问 Kubernetes API server,而无需通过 Rancher 进行通信。
|
授权集群端点仅适用于 Rancher 启动的 Kubernetes 集群,即只适用于 Rancher 使用 RKE 来配置的集群。它不适用于托管在 Kubernetes 提供商中的集群,例如 Amazon 的 EKS。 |
在 Rancher 启动的 Kubernetes 集群中,它默认启用,使用具有 controlplane 角色的节点的 IP 和默认的 Kubernetes 自签名证书。
有关授权集群端点的工作原理以及使用的原因,请参阅架构介绍。
我们建议使用具有授权集群端点的负载均衡器。有关详细信息,请参阅推荐的架构。
节点池
有关使用 Rancher UI 在 RKE 集群中设置节点池的信息,请参阅此页面。
Metrics Server 监控
这是启用或禁用 Metrics Server 的选项。
每个能够使用 RKE 启动集群的云提供商都可以收集指标并监控你的集群节点。如果启用此选项,你可以从你的云提供商门户查看你的节点指标。
节点上的 Docker 版本
表示是否允许节点运行 Rancher 不正式支持的 Docker 版本。
如果你选择使用支持的 Docker 版本,Rancher 会禁止 pod 运行在安装了不支持的 Docker 版本的节点上。
如需了解各个 Rancher 版本通过了哪些 Docker 版本测试,请参见支持和维护条款。
节点端口范围
更改可用于 NodePort 服务的端口范围的选项。默认为 30000-32767。
定期 etcd 快照
启用或禁用定期 etcd 快照的选项。
Agent 环境变量
为 rancher agent 设置环境变量的选项。你可以使用键值对设置环境变量。如果 Rancher Agent 需要使用代理与 Rancher Server 通信,则可以使用 Agent 环境变量设置 HTTP_PROXY,HTTPS_PROXY 和 NO_PROXY 环境变量。
更新 ingress-nginx
使用 Kubernetes 1.16 之前版本创建的集群将具有 OnDelete的 ingress-nginx updateStrategy。使用 Kubernetes 1.16 或更高版本创建的集群将具有 RollingUpdate。
如果 ingress-nginx 的 updateStrategy 是 OnDelete,则需要删除这些 pod 以获得 deployment 正确的版本。
Cluster Agent 配置和 SUSE® Rancher Prime: Continuous Delivery Agent 配置
你可以为 Cluster Agent 和集群的 Fleet Agent 配置调度字段和资源限制。你可以使用这些字段来自定义容忍度、亲和性规则和资源要求。其他容忍度会被尾附到默认容忍度和 Control Plane 节点污点的列表中。如果你定义了自定义亲和性规则,它们将覆盖全局默认亲和性设置。定义资源要求会在以前没有的地方设置请求或限制。
|
有了这个选项,你可以覆盖或删除运行集群所需的规则。我们强烈建议你不要删除或覆盖这些规则和其他亲和性规则,因为这可能会导致不必要的影响:
|
如果将 Rancher 降级到 v2.7.4 或更低版本,你的更改将丢失,而且 Agent 将在没有你的自定义设置的情况下重新部署。重新部署时,Fleet Agent 将回退到使用内置默认值。如果降级期间 Fleet 版本没有更改,则不会立即重新部署。
RKE 集群配置文件参考
高级用户可以创建一个 RKE 配置文件,而不是使用 Rancher UI 来为集群选择 Kubernetes 选项。配置文件可以让你在 RKE 安装中设置任何可用选项(system_images 配置除外)。使用 Rancher UI 或 API 创建集群时,不支持 system_images 选项。
有关 YAML 中 RKE Kubernetes 集群的可配置选项的完整参考,请参阅 RKE 文档。
Rancher 中的配置文件结构
RKE(Rancher Kubernetes Engine)是 Rancher 用来配置 Kubernetes 集群的工具。过去,Rancher 的集群配置文件与 RKE 配置文件的结构是一致的。但由于 Rancher 文件结构发生了变化,因此在 Rancher 中,RKE 集群配置项与非 RKE 配置项是分开的。所以,你的集群配置需要嵌套在集群配置文件中的 rancher_kubernetes_engine_config 参数下。使用早期版本的 Rancher 创建的集群配置文件需要针对这种格式进行更新。以下是一个集群配置文件示例:
集群配置文件示例
#
# Cluster Config
#
docker_root_dir: /var/lib/docker
enable_cluster_alerting: false
enable_cluster_monitoring: false
enable_network_policy: false
local_cluster_auth_endpoint:
enabled: true
#
# Rancher Config
#
rancher_kubernetes_engine_config: # Your RKE template config goes here.
addon_job_timeout: 30
authentication:
strategy: x509
ignore_docker_version: true
#
# # 目前仅支持 Nginx ingress provider
# # 要禁用 Ingress controller,设置 `provider: none`
# # 要在指定节点上禁用 Ingress,使用 node_selector,例如:
# provider: nginx
# node_selector:
# app: ingress
#
ingress:
provider: nginx
kubernetes_version: v1.15.3-rancher3-1
monitoring:
provider: metrics-server
#
# If you are using calico on AWS
#
# network:
# plugin: calico
# calico_network_provider:
# cloud_provider: aws
#
# # To specify flannel interface
#
# network:
# plugin: flannel
# flannel_network_provider:
# iface: eth1
#
# # To specify flannel interface for canal plugin
#
# network:
# plugin: canal
# canal_network_provider:
# iface: eth1
#
network:
options:
flannel_backend_type: vxlan
plugin: canal
#
# services:
# kube-api:
# service_cluster_ip_range: 10.43.0.0/16
# kube-controller:
# cluster_cidr: 10.42.0.0/16
# service_cluster_ip_range: 10.43.0.0/16
# kubelet:
# cluster_domain: cluster.local
# cluster_dns_server: 10.43.0.10
#
services:
etcd:
backup_config:
enabled: true
interval_hours: 12
retention: 6
safe_timestamp: false
creation: 12h
extra_args:
election-timeout: 5000
heartbeat-interval: 500
gid: 0
retention: 72h
snapshot: false
uid: 0
kube_api:
always_pull_images: false
pod_security_policy: false
service_node_port_range: 30000-32767
ssh_agent_auth: false
windows_prefered_cluster: false
默认 DNS 提供商
下表显示了默认部署的 DNS 提供商。有关如何配置不同 DNS 提供商的更多信息,请参阅 DNS 提供商相关的 RKE 文档。CoreDNS 只能在 Kubernetes v1.12.0 及更高版本上使用。
| Rancher 版本 | Kubernetes 版本 | 默认 DNS 提供商 |
|---|---|---|
v2.2.5 及更高版本 |
v1.14.0 及更高版本 |
CoreDNS |
v2.2.5 及更高版本 |
v1.13.x 及更低版本 |
kube-dns |
v2.2.4 及更低版本 |
任意 |
kube-dns |
YAML 中的 Rancher 特定参数
除了 RKE 配置文件选项外,还有可以在配置文件 (YAML) 中配置的 Rancher 特定设置如下。
docker_root_dir
请参阅 Docker 根目录。
enable_cluster_monitoring
启用或禁用集群监控的选项。
enable_network_policy
启用或禁用项目网络隔离的选项。
如果你使用支持执行 Kubernetes 网络策略的 RKE 网络插件(例如 Canal 或 Cisco ACI 插件),则可以使用项目网络隔离。
local_cluster_auth_endpoint
请参阅授权集群端点。
示例:
local_cluster_auth_endpoint:
enabled: true
fqdn: "FQDN"
ca_certs: |-
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
自定义网络插件
你可以使用 RKE 的用户定义的附加组件功能来添加自定义网络插件。部署 Kubernetes 集群之后,你可以定义要部署的任何附加组件。
有两种方法可以指定附加组件:
有关如何通过编辑 cluster.yml 来配置自定义网络插件的示例,请参阅 RKE 文档。