跳到主要内容

k3s agent

在本节中,你将学习如何配置 K3s Agent。

请注意,Server 也运行 Agent,因此本文列出的所有标志也可用于 Server。

在本文中,选项作为 CLI 标志传递,但是也可以作为配置文件选项传递。有关使用 YAML 配置文件的更多信息,请参阅配置文件文档。

Logging

标志默认描述
-v value0表示日志级别详细程度的数字
--vmodule valueN/AFILE_PATTERN=LOG_LEVEL 格式,用逗号分隔的列表,用于文件过滤日志
--log value, -l valueN/A记录到文件
--alsologtostderrN/A记录到标准错误以及文件(如果设置)

集群选项

标志环境变量描述
--token value, -t valueK3S_TOKEN用于身份验证的令牌
--token-file valueK3S_TOKEN_FILE用于身份验证的令牌文件
--server value, -s valueK3S_URL要连接的 server

数据

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

节点

标志环境变量描述
--node-name valueK3S_NODE_NAME节点名称
--with-node-idN/A将 ID 尾附到节点名称
--node-label valueN/A使用一组标签注册和启动 kubelet
--node-taint valueN/A使用一组污点注册 kubelet
--protect-kernel-defaultsN/A内核调优行为。如果设置了,当内核可调项与 kubelet 默认值不同时会出错。
--selinuxK3S_SELINUX在 containerd 中启用 SELinux
--lb-server-port valueK3S_LB_SERVER_PORTSupervisor 客户端负载均衡器的本地端口。如果 supervisor 和 apiserver 没有位于同一位置,则比该端口小 1 的端口也将用于 apiserver 客户端负载均衡器(默认值:6444)

运行时

标志默认描述
--container-runtime-endpoint valueN/A禁用嵌入式 containerd 并在给定路径使用 CRI 套接字。当与 --docker 一起使用时,这会设置 cri-docker 套接字路径
--pause-image value"docker.io/rancher/pause:3.1"为 containerd 或 Docker 沙箱定制的 pause 镜像
--private-registry value"/etc/rancher/k3s/registries.yaml"私有镜像仓库配置文件

网络

标志环境变量描述
--node-ip value, -i valueN/A节点的 IP 地址
--node-external-ip valueN/A节点的外部 IP 地址
--resolv-conf valueK3S_RESOLV_CONFKubelet resolv.conf 文件
--flannel-iface valueN/A覆盖默认的 Flannel interface
--flannel-conf valueN/A覆盖默认的 Flannel 配置文件
--flannel-cni-conf valueN/A覆盖默认的 Flannel CNI 配置文件

自定义标志

标志描述
--kubelet-arg valuekubelet 进程的自定义标志
--kube-proxy-arg valuekube-proxy 进程的自定义标志

实验功能

标志描述
--rootless无根运行
--docker使用 cri-dockerd 而不是 containerd
--prefer-bundled-bin偏向打包的用户空间二进制文件,而不是主机二进制文件

已弃用

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

Agent 的节点标签和污点

K3s Agent 可以通过 --node-label--node-taint 选项来配置,它们会为 kubelet 添加标签和污点。这两个选项只能在注册时添加标签和/或污点,因此它们只能被添加一次,之后不能再通过运行 K3s 命令来改变。

下面是显示如何添加标签和污点的示例:

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

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

K3s Agent 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