配置选项
配置文件
配置 RKE2 的主要方式是通过其配置文件。命令行参数和环境变量也可用,但 RKE2 作为 systemd 服务安装,因此这些不太容易利用。
默认情况下,RKE2 将使用位于 /etc/rancher/rke2/config.yaml 的 YAML 文件中的值启动。
|
RKE2 配置文件需要手动创建。您可以通过以特权用户身份运行 |
以下是基本`server`配置文件的示例:
write-kubeconfig-mode: "0644"
tls-san:
- "foo.local"
node-label:
- "foo=bar"
- "something=amazing"
debug: true
配置文件参数直接映射到 CLI 参数,可重复的 CLI 参数表示为 YAML 列表。布尔标志在YAML文件中表示为`true`或`false`。
下面展示了仅使用 CLI 参数的相同配置,以演示这一点:
rke2 server \
--write-kubeconfig-mode "0644" \
--tls-san "foo.local" \
--node-label "foo=bar" \
--node-label "something=amazing" \
--debug
也可以同时使用配置文件和命令行参数。 在这些情况下,将从两个来源加载值,但命令行参数将优先。对于可重复的参数,例如`--node-label`,命令行参数将覆盖列表中的所有值。
最后,配置文件的位置可以通过 CLI 参数 --config FILE, -c FILE 或环境变量 $RKE2_CONFIG_FILE 更改。
多个配置文件
支持多个配置文件。默认情况下,配置文件按字母顺序从 /etc/rancher/rke2/config.yaml 和 /etc/rancher/rke2/config.yaml.d/*.yaml 中读取。
默认情况下,将使用给定键找到的最后一个值。可以在键后附加一个``,将值附加到现有字符串或切片,而不是替换它。后续文件中此键的所有出现也将需要一个``以防止覆盖累积的值。
多个配置文件的示例如下:
# config.yaml
token: boop
node-label:
- foo=bar
- bar=baz
# config.yaml.d/test1.yaml
write-kubeconfig-mode: 600
node-taint:
- alice=bob:NoExecute
# config.yaml.d/test2.yaml
write-kubeconfig-mode: 777
node-label:
- other=what
- foo=three
node-taint+:
- charlie=delta:NoSchedule
这将导致最终配置为:
write-kubeconfig-mode: 777
token: boop
node-label:
- other=what
- foo=three
node-taint:
- alice=bob:NoExecute
- charlie=delta:NoSchedule
Kubelet 配置
|
版本门控
kubelet 配置文件的 drop-in 目录或配置文件(下文选项 1 和 2)仅在 v1.32 及以上版本中可用。对于较低的次要版本,您应该直接使用 kubelet 参数(以下选项 3)。 |
根据上游行为,kubelet 配置可以通过特定的 优先级顺序 以不同方式进行更改。
RKE2 使用默认的 kubelet 配置,该配置存储在 /var/lib/rancher/rke2/agent/etc/kubelet.conf.d/00-rke2-defaults.conf 下。如果您想更改默认配置参数,可以通过三种方式进行:
-
(推荐)将配置文件放入
/var/lib/rancher/rke2/agent/etc/kubelet.conf.d/中。 -
通过使用标志
--kubelet-arg=config=$PATHTOFILE,其中$PATHTOFILE是包含 kubelet 配置参数的文件的路径(例如/etc/rancher/rke2/kubelet.conf),或使用标志--kubelet-arg=config-dir=$PATHTODIR,其中$PATHTODIR是包含 kubelet 配置参数文件的目录路径(例如/etc/rancher/rke2/kubelet.conf.d)。 -
通过使用标志
--kubelet-arg=$FLAG,其中$FLAG是一个 kubelet 配置参数(例如image-gc-high-threshold=100)。
遗留的 kubelet 日志标志
RKE2 支持额外的标志来配置 kubelet 日志,这些标志之前由 kubelet 本身支持。这些标志被 RKE2 拦截,并控制 RKE2 如何包装 kubelet 写入 stdout 和 stderr 的日志:
| 标志 | 类型 | 说明 |
|---|---|---|
|
布尔 |
控制日志消息是否仅写入 stderr(默认 |
|
布尔 |
控制日志消息是否除了写入指定的日志文件外,还写入 stderr(默认 |
|
字符串 |
此标志被 RKE2 拦截,但未使用(默认 |
|
字符串 |
指定组件的日志消息应写入的绝对路径和文件名(默认 |
|
整数 |
指定日志文件在旋转之前可以达到的最大大小(以兆字节为单位)(默认 |
配置 Linux 安装脚本
如 快速入门 中所述,您可以使用位于 https://get.rke2.io 的安装脚本将 RKE2 安装为服务。
此命令的最简单形式是以 root 用户身份或通过 sudo 运行,如下所示:
# curl -sfL https://get.rke2.io | sudo sh -
curl -sfL https://get.rke2.io | sh -
使用此方法安装 RKE2 时,可以使用以下环境变量来配置安装:
| 环境变量 | 说明 |
|---|---|
|
要从 GitHub 下载的 RKE2 版本。如果未指定,将尝试从 |
|
要创建的 systemd 服务类型,可以是 "server" 或 "agent",默认是 "server"。 |
|
用于获取 RKE2 下载 URL 的通道 URL。默认值为 |
|
用于获取 RKE2 下载 URL 的通道。默认值为 |
|
要使用的安装方法。默认情况下,在基于 RPM 的系统上 |
此安装脚本简单明了,将执行以下操作:
-
根据上述参数获取要安装的版本。如果未提供参数,将使用最新的官方版本。
-
确定并执行安装方法。有两种方法:rpm 和 tar。如果设置了
INSTALL_RKE2_METHOD变量,将尊重该设置。否则,将在使用此软件包管理系统的操作系统上使用rpm。在所有其他系统上,将使用 tar。在 Tar 包方法的情况下,脚本将简单地解压与所需版本相关的 Tar 包。在 rpm 的情况下,将设置一个 yum 储存库,并使用 yum 安装 rpm。
配置 Windows 安装脚本
|
Windows 支持需要选择 Calico 或 Flannel 作为 RKE2 集群的 CNI。 |
如 快速入门 中所述,您可以使用位于 https://github.com/rancher/rke2/blob/master/install.ps1 的安装脚本在 Windows Agent 节点上安装 RKE2。
此命令的最简单形式如下:
Invoke-WebRequest -Uri https://raw.githubusercontent.com/rancher/rke2/master/install.ps1 -Outfile install.ps1
使用此方法安装 Windows RKE2 代理时,可以传递以下参数以配置安装脚本:
SYNTAX
install.ps1 [[-Channel] <String>] [[-Method] <String>] [[-Type] <String>] [[-Version] <String>] [[-TarPrefix] <String>] [-Commit] [[-AgentImagesDir] <String>] [[-ArtifactPath] <String>] [[-ChannelUrl] <String>] [<CommonParameters>]
OPTIONS
-Channel Channel to use for fetching RKE2 download URL (Default: "stable")
-Method The installation method to use. Currently tar or choco installation supported. (Default: "tar")
-Type Type of RKE2 service. Only the "agent" type is supported on Windows. (Default: "agent")
-Version Version of RKE2 to download from Github
-TarPrefix Installation prefix when using the tar installation method. (Default: `C:/usr/local` unless `C:/usr/local` is read-only or has a dedicated mount point, in which case `C:/opt/rke2` is used instead)
-Commit (experimental/agent) Commit of RKE2 to download from temporary cloud storage. If set, this forces `--Method=tar`. Intended for development purposes only.
-AgentImagesDir Installation path for airgap images when installing from CI commit. (Default: `C:/var/lib/rancher/rke2/agent/images`)
-ArtifactPath If set, the install script will use the local path for sourcing the `rke2.windows-$SUFFIX` and `sha256sum-$ARCH.txt` files rather than the downloading the files from GitHub. Disabled by default.
直接运行二进制文件
如前所述,安装脚本主要关注将 RKE2 配置为服务。如果您选择不使用脚本,您可以通过从我们的 发布页面 下载二进制文件,将其放置到您的路径中并执行来运行 RKE2。重要的命令包括:
| 命令 | 说明 |
|---|---|
|
运行 RKE2 管理服务器,这将启动 Kubernetes 控制平面组件,如 API 服务器、控制器管理器和调度器。仅支持 Linux。 |
|
运行 RKE2 节点代理。这将使 RKE2 作为工作节点运行,启动 Kubernetes 节点服务 |
|
显示命令列表或某个命令的帮助信息。 |
更多信息
有关配置 RKE2 服务器的详细信息,请参阅 服务器配置参考。
有关配置 RKE2 代理的详细信息,请参阅 代理配置参考。
有关配置 RKE2 Windows 代理的详细信息,请参阅 Windows 代理配置参考。