K3s 安装选项介绍
使用脚本安装的选项
正如快速启动指南中提到的那样,你可以使用 https://get.k3s.io 提供的安装脚本在基于 systemd 和 openrc 的系统上安装 K3s 作为服务。
该命令的最简单形式如下:
curl -sfL https://get.k3s.io | sh -
提示
国内用户,可以使用以下方法加速安装:curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
使用此方法安装 K3s 时,可使用以下环境变量来配置安装:
Environment Variable | Description |
---|---|
INSTALL_K3S_SKIP_DOWNLOAD
|
如果设置为 "true "将不会下载 K3s 的哈希值或二进制。 |
INSTALL_K3S_SYMLINK
|
默认情况下,如果路径中不存在命令,将为 kubectl、crictl 和 ctr 二进制文件创建符号链接。如果设置为'skip'将不会创建符号链接,而'force'将覆盖。 |
INSTALL_K3S_SKIP_ENABLE
|
如果设置为 "true",将不启用或启动 K3s 服务。 |
INSTALL_K3S_SKIP_START
|
如果设置为 "true "将不会启动 K3s 服务。 |
INSTALL_K3S_VERSION
|
从 Github 下载 K3s 的版本。如果没有指定,将尝试从"stable"频道下载。 |
INSTALL_K3S_BIN_DIR
|
安装 K3s 二进制文件、链接和卸载脚本的目录,或者使用/usr/local/bin 作为默认目录。 |
INSTALL_K3S_BIN_DIR_READ_ONLY
|
如果设置为 true 将不会把文件写入INSTALL_K3S_BIN_DIR ,强制设置INSTALL_K3S_SKIP_DOWNLOAD=true 。 |
INSTALL_K3S_SYSTEMD_DIR
|
安装 systemd 服务和环境文件的目录,或者使用/etc/systemd/system 作为默认目录。 |
INSTALL_K3S_EXEC
|
带有标志的命令,用于在服务中启动 K3s。如果未指定命令,并且设置了K3S_URL ,它将默认为“agent”。如果未设置K3S_URL ,它将默认为“server”。 |
INSTALL_K3S_NAME
|
要创建的 systemd 服务名称,如果以服务器方式运行 k3s,则默认为'k3s';如果以 agent 方式运行 k3s,则默认为'k3s-agent'。如果指定了服务名,则服务名将以'k3s-'为前缀。 |
INSTALL_K3S_TYPE
|
要创建的 systemd 服务类型,如果没有指定,将默认使用 K3s exec 命令。 |
INSTALL_K3S_SELINUX_WARN
|
如果设置为 true,则在没有找到 k3s-selinux 策略的情况下将继续。 |
INSTALL_K3S_SKIP_SELINUX_RPM
|
如果设置为 "true "将跳过 k3s RPM 的自动安装。 |
INSTALL_K3S_CHANNEL_URL
|
用于获取 K3s 下载网址的频道 URL。默认为 https://update.k3s.io/v1-release/channels 。 |
INSTALL_K3S_CHANNEL
|
用于获取 K3s 下载 URL 的通道。默认值为 "stable"。选项包括:stable , latest , testing 。 |
K3S_CONFIG_FILE
|
指定配置文件的位置。默认目录为/etc/rancher/k3s/config.yaml 。 |
K3S_TOKEN
|
用于将 server 或 agent 加入集群的共享 secret。 |
K3S_TOKEN_FILE
|
指定 cluster-secret ,token 的文件目录。 |
这个例子介绍了如何使用上述的环境变量(在管道之后):
curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL=latest sh -
以 "K3S_"开头的环境变量将被保留,供 systemd 和 openrc 服务使用。
在没有明确设置 exec 命令的情况下设置K3S_URL
,会将命令默认为 "agent"。
运行 agent 时还必须设置K3S_TOKEN
。
从二进制安装的选项
如上所述,安装脚本主要是配置 K3s 作为服务运行。如果你选择不使用脚本,你可以通过从我们的发布页面下载二进制文件,将其放在你的路径上,然后执行它来运行 K3s。K3s 二进制支持以下命令:
命令 | 描述 |
---|---|
k3s server
|
运行 K3s server,它还将启动 Kubernetes control-plane 组件,如 API server, controller-manager, 和 scheduler。 |
k3s agent
|
运行 K3s agent 节点。这将使 K3s 作为工作节点运行,启动 Kubernetes 节点服务kubelet 和kube-proxy 。 |
k3s kubectl
|
运行嵌入式kubectl CLI。如果没有设置KUBECONFIG 环境变量,当启动 K3s 服务器节点时,将自动尝试使用在/etc/rancher/k3s/k3s.yaml 创建的配置文件。 |
k3s crictl
|
运行一个嵌入式crictl。这是一个用于与 Kubernetes 的容器运行时接口(CRI)交互的 CLI。对调试很有用。 |
k3s ctr
|
运行一个嵌入式的ctr。这是为 containerd(K3s 使用的容器守护进程)提供的 CLI。对调试很有用。 |
k3s help
|
显示一个命令的命令列表或帮助。 |
k3s server
和 k3s agent
命令有额外的配置选项,可以通过 k3s server --help
或 k3s agent --help
查看.
配置文件
Available as of v1.19.1+k3s1
除了使用环境变量和 CLI 参数来配置 K3s,K3s 还可以使用配置文件。
默认情况下,位于/etc/rancher/k3s/config.yaml
的 YAML 文件中的值将在安装时使用。
下面是一个基本的server
配置文件的例子。
write-kubeconfig-mode: "0644"
tls-san:
- "foo.local"
node-label:
- "foo=bar"
- "something=amazing"
一般来说,CLI 参数映射到各自的 YAML 键,可重复的 CLI 参数被表示为 YAML 列表。
下面展示了一个完全使用 CLI 参数的相同配置来证明这一点。
k3s server \
--write-kubeconfig-mode "0644" \
--tls-san "foo.local" \
--node-label "foo=bar" \
--node-label "something=amazing"
也可以同时使用配置文件和 CLI 参数。 在这种情况下,值将从两个来源加载,但 CLI 参数将优先。 对于可重复的参数,如--node-label
,CLI 参数将覆盖列表中的所有值。
最后,配置文件的位置可以通过 cli 参数--config FILE
,-c FILE
或者环境变量$K3S_CONFIG_FILE
来改变。
更多建议: