跳至主要内容

k3s 代理

在本节中,您将学习如何配置 K3s 代理。

请注意,服务器也会运行代理,因此此页面上列出的所有标志对服务器也有效。

选项在此页面上以 CLI 标志的形式记录,但也可以作为配置文件选项传递。有关使用 YAML 配置文件的更多信息,请参阅 配置文件 文档。

日志记录

标志默认值描述
-v0日志级别详细程度的数字
--vmoduleN/A用于文件过滤日志记录的 FILE_PATTERN=LOG_LEVEL 设置的逗号分隔列表
--log 值, -lN/A记录到文件
--alsologtostderrN/A记录到标准错误以及文件(如果设置)

集群选项

标志环境变量描述
--token 值, -tK3S_TOKEN用于身份验证的令牌
--token-fileK3S_TOKEN_FILE用于身份验证的令牌文件
--server 值, -sK3S_URL要连接的服务器

数据

标志默认值描述
--data-dir 值, -d"/var/lib/rancher/k3s"用于保存状态的文件夹

节点

标志环境变量描述
--node-nameK3S_NODE_NAME节点名称
--with-node-idN/A将 id 附加到节点名称
--node-labelN/A使用一组标签注册和启动 kubelet
--node-taintN/A使用一组污点注册 kubelet
--protect-kernel-defaultsN/A内核调整行为。如果设置,则如果内核可调参数与 kubelet 默认值不同,则会发生错误。
--selinuxK3S_SELINUX在 containerd 中启用 SELinux
--lb-server-portK3S_LB_SERVER_PORT用于 supervisor 客户端负载均衡器的本地端口。如果 supervisor 和 apiserver 不在同一位置,则还会使用比此端口小 1 的另一个端口用于 apiserver 客户端负载均衡器。(默认值:6444)

运行时

标志默认值描述
--container-runtime-endpointN/A禁用嵌入式 containerd 并使用给定路径的 CRI 套接字;与 --docker 一起使用时,这会设置 cri-docker 套接字路径
--pause-image"docker.io/rancher/pause:3.1"用于 containerd 或 docker 沙箱的定制化 pause 镜像
--private-registry"/etc/rancher/k3s/registries.yaml"私有注册表配置文件

网络

标志环境变量描述
--node-ip 值, -iN/A要为节点宣传的 IP 地址
--node-external-ipN/A要为节点宣传的外部 IP 地址
--resolv-confK3S_RESOLV_CONFKubelet resolv.conf 文件
--flannel-ifaceN/A覆盖默认的 flannel 接口
--flannel-confN/A覆盖默认的 flannel 配置文件
--flannel-cni-confN/A覆盖默认的 flannel cni 配置文件

自定义标志

标志描述
--kubelet-argkubelet 进程的自定义标志
--kube-proxy-argkube-proxy 进程的自定义标志

实验性

标志描述
--rootless以无根方式运行
--docker使用 cri-dockerd 而不是 containerd
--prefer-bundled-bin优先使用捆绑的用户空间二进制文件而不是主机二进制文件
--disable-default-registry-endpoint请参阅 "默认端点回退"

已弃用

标志环境变量描述
--no-flannelN/A使用 --flannel-backend=none
--cluster-secretK3S_CLUSTER_SECRET使用 --token

代理的节点标签和污点

K3s 代理可以使用 --node-label--node-taint 选项配置,这些选项会将标签和污点添加到 kubelet。这两个选项仅在注册时添加标签和/或污点,因此它们只能添加一次,并且在运行 K3s 命令后无法再次更改。

以下是一个示例,展示了如何添加标签和污点

     --node-label foo=bar \
--node-label hello=world \
--node-taint key1=value1:NoExecute

如果您想在节点注册后更改节点标签和污点,您应该使用 kubectl。有关如何添加 污点节点标签 的详细信息,请参阅官方 Kubernetes 文档。

K3s 代理 CLI 帮助

如果下面的选项出现在方括号中,例如 [$K3S_URL],则表示该选项可以作为具有该名称的环境变量传递。

NAME:
k3s agent - Run node agent

USAGE:
k3s agent [OPTIONS]

OPTIONS:
--config FILE, -c FILE (config) Load configuration from FILE (default: "/etc/rancher/k3s/config.yaml") [$K3S_CONFIG_FILE]
--debug (logging) Turn on debug logs [$K3S_DEBUG]
-v value (logging) Number for the log level verbosity (default: 0)
--vmodule value (logging) Comma-separated list of FILE_PATTERN=LOG_LEVEL settings for file-filtered logging
--log value, -l value (logging) Log to file
--alsologtostderr (logging) Log to standard error as well as file (if set)
--token value, -t value (cluster) Token to use for authentication [$K3S_TOKEN]
--token-file value (cluster) Token file to use for authentication [$K3S_TOKEN_FILE]
--server value, -s value (cluster) Server to connect to [$K3S_URL]
--data-dir value, -d value (agent/data) Folder to hold state (default: "/var/lib/rancher/k3s")
--node-name value (agent/node) Node name [$K3S_NODE_NAME]
--with-node-id (agent/node) Append id to node name
--node-label value (agent/node) Registering and starting kubelet with set of labels
--node-taint value (agent/node) Registering kubelet with set of taints
--image-credential-provider-bin-dir value (agent/node) The path to the directory where credential provider plugin binaries are located (default: "/var/lib/rancher/credentialprovider/bin")
--image-credential-provider-config value (agent/node) The path to the credential provider plugin config file (default: "/var/lib/rancher/credentialprovider/config.yaml")
--selinux (agent/node) Enable SELinux in containerd [$K3S_SELINUX]
--lb-server-port value (agent/node) Local port for supervisor client load-balancer. If the supervisor and apiserver are not colocated an additional port 1 less than this port will also be used for the apiserver client load-balancer. (default: 6444) [$K3S_LB_SERVER_PORT]
--protect-kernel-defaults (agent/node) Kernel tuning behavior. If set, error if kernel tunables are different than kubelet defaults.
--container-runtime-endpoint value (agent/runtime) Disable embedded containerd and use the CRI socket at the given path; when used with --docker this sets the docker socket path
--pause-image value (agent/runtime) Customized pause image for containerd or docker sandbox (default: "rancher/mirrored-pause:3.6")
--snapshotter value (agent/runtime) Override default containerd snapshotter (default: "overlayfs")
--private-registry value (agent/runtime) Private registry configuration file (default: "/etc/rancher/k3s/registries.yaml")
--node-ip value, -i value (agent/networking) IPv4/IPv6 addresses to advertise for node
--node-external-ip value (agent/networking) IPv4/IPv6 external IP addresses to advertise for node
--resolv-conf value (agent/networking) Kubelet resolv.conf file [$K3S_RESOLV_CONF]
--flannel-iface value (agent/networking) Override default flannel interface
--flannel-conf value (agent/networking) Override default flannel config file
--flannel-cni-conf value (agent/networking) Override default flannel cni config file
--kubelet-arg value (agent/flags) Customized flag for kubelet process
--kube-proxy-arg value (agent/flags) Customized flag for kube-proxy process
--rootless (experimental) Run rootless
--prefer-bundled-bin (experimental) Prefer bundled userspace binaries over host binaries
--docker (agent/runtime) (experimental) Use cri-dockerd instead of containerd