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 命令来改变。

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

  1. --node-label foo=bar \
  2. --node-label hello=world \
  3. --node-taint key1=value1:NoExecute

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

K3s Agent CLI 帮助

如果某个选项出现在括号中(例如 [$K3S_URL]),该选项可以作为该名称的环境变量传入。

  1. NAME:
  2. k3s agent - Run node agent
  3. USAGE:
  4. k3s agent [OPTIONS]
  5. OPTIONS:
  6. --config FILE, -c FILE (config) Load configuration from FILE (default: "/etc/rancher/k3s/config.yaml") [$K3S_CONFIG_FILE]
  7. --debug (logging) Turn on debug logs [$K3S_DEBUG]
  8. -v value (logging) Number for the log level verbosity (default: 0)
  9. --vmodule value (logging) Comma-separated list of FILE_PATTERN=LOG_LEVEL settings for file-filtered logging
  10. --log value, -l value (logging) Log to file
  11. --alsologtostderr (logging) Log to standard error as well as file (if set)
  12. --token value, -t value (cluster) Token to use for authentication [$K3S_TOKEN]
  13. --token-file value (cluster) Token file to use for authentication [$K3S_TOKEN_FILE]
  14. --server value, -s value (cluster) Server to connect to [$K3S_URL]
  15. --data-dir value, -d value (agent/data) Folder to hold state (default: "/var/lib/rancher/k3s")
  16. --node-name value (agent/node) Node name [$K3S_NODE_NAME]
  17. --with-node-id (agent/node) Append id to node name
  18. --node-label value (agent/node) Registering and starting kubelet with set of labels
  19. --node-taint value (agent/node) Registering kubelet with set of taints
  20. --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")
  21. --image-credential-provider-config value (agent/node) The path to the credential provider plugin config file (default: "/var/lib/rancher/credentialprovider/config.yaml")
  22. --selinux (agent/node) Enable SELinux in containerd [$K3S_SELINUX]
  23. --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]
  24. --protect-kernel-defaults (agent/node) Kernel tuning behavior. If set, error if kernel tunables are different than kubelet defaults.
  25. --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
  26. --pause-image value (agent/runtime) Customized pause image for containerd or docker sandbox (default: "rancher/mirrored-pause:3.6")
  27. --snapshotter value (agent/runtime) Override default containerd snapshotter (default: "overlayfs")
  28. --private-registry value (agent/runtime) Private registry configuration file (default: "/etc/rancher/k3s/registries.yaml")
  29. --node-ip value, -i value (agent/networking) IPv4/IPv6 addresses to advertise for node
  30. --node-external-ip value (agent/networking) IPv4/IPv6 external IP addresses to advertise for node
  31. --resolv-conf value (agent/networking) Kubelet resolv.conf file [$K3S_RESOLV_CONF]
  32. --flannel-iface value (agent/networking) Override default flannel interface
  33. --flannel-conf value (agent/networking) Override default flannel config file
  34. --flannel-cni-conf value (agent/networking) Override default flannel cni config file
  35. --kubelet-arg value (agent/flags) Customized flag for kubelet process
  36. --kube-proxy-arg value (agent/flags) Customized flag for kube-proxy process
  37. --rootless (experimental) Run rootless
  38. --prefer-bundled-bin (experimental) Prefer bundled userspace binaries over host binaries
  39. --docker (agent/runtime) (experimental) Use cri-dockerd instead of containerd