k3s server
在本节中,你将学习如何配置 K3s Server。
请注意,Server 也运行 Agent,因此 Server 也支持 k3s agent
文档中列出的所有配置选项。
在本文中,选项作为 CLI 标志传递,但是也可以作为配置文件选项传递。有关使用 YAML 配置文件的更多信息,请参阅配置文件文档。
关键配置值
以下选项必须在集群中的所有 Server 上设置为相同的值。如果不这样做,新 Server 将无法加入集群(使用嵌入式 etcd 时),或集群将无法正确运行(使用外部数据存储时)。
--agent-token
--cluster-cidr
--cluster-dns
--cluster-domain
--disable-cloud-controller
--disable-helm-controller
--disable-network-policy
--disable=servicelb
注意:其他打包组件可能会在单独服务器上禁用--egress-selector-mode
--flannel-backend
--flannel-external-ip
--flannel-ipv6-masq
--secrets-encryption
--service-cidr
常用选项
数据库
标志 | 环境变量 | 描述 |
---|---|---|
--datastore-endpoint value | K3S_DATASTORE_ENDPOINT | 指定 etcd、Mysql、Postgres 或 Sqlite(默认)数据源名称 |
--datastore-cafile value | K3S_DATASTORE_CAFILE | 用于保护数据存储后端通信的 TLS CA 文件 |
--datastore-certfile value | K3S_DATASTORE_CERTFILE | 用于保护数据存储后端通信的 TLS 证书文件 |
--datastore-keyfile value | K3S_DATASTORE_KEYFILE | 用于保护数据存储后端通信的 TLS 密钥文件 |
--etcd-expose-metrics | N/A | 向客户端接口公开 etcd 指标(默认值:false) |
--etcd-disable-snapshots | N/A | 禁用自动 etcd 快照 |
--etcd-snapshot-name value | N/A | 设置 etcd 快照的基本名称。默认值:etcd-snapshot-<unix-timestamp>(默认值:“etcd-snapshot”) |
--etcd-snapshot-schedule-cron value | N/A | cron 规范中的快照间隔时间。eg. 每 5 小时 '0 */5 _ * _'(默认值:"0 */12 * * *") |
--etcd-snapshot-retention value | N/A | 要保留的快照数量(默认值:5) |
--etcd-snapshot-dir value | N/A | 保存数据库快照的目录(默认值:${data-dir}/db/snapshots) |
--etcd-s3 | N/A | 启用备份到 S3 |
--etcd-s3-endpoint value | N/A | S3 端点 URL(默认值:“s3.amazonaws.com”) |
--etcd-s3-endpoint-ca value | N/A | S3 自定义 CA 证书,用于连接到 S3 端点 |
--etcd-s3-skip-ssl-verify | N/A | 禁用 S3 SSL 证书验证 |
--etcd-s3-access-key value | AWS_ACCESS_KEY_ID | S3 access key |
--etcd-s3-secret-key value | AWS_SECRET_ACCESS_KEY | S3 secret key |
--etcd-s3-bucket value | N/A | S3 存储桶名称 |
--etcd-s3-region value | N/A | S3 区域/存储桶位置(可选)(默认值:“us-east-1”) |
--etcd-s3-folder value | N/A | S3 文件夹 |
--etcd-s3-insecure | 通过 HTTPS 禁用 S3 | |
--etcd-s3-timeout value | S3 超时(默认值:5m0s) |
集群选项
标志 | 环境变量 | 描述 |
---|---|---|
--token value, -t value | K3S_TOKEN | 共享密钥,用于将 server 或 agent 加入集群 |
--token-file value | K3S_TOKEN_FILE | 包含 cluster-secret/token 的文件 |
--agent-token value | K3S_AGENT_TOKEN | 共享密钥,用于将 agent 加入集群,但不能用于 server |
--agent-token-file value | K3S_AGENT_TOKEN_FILE | 包含 agent secret 的文件 |
--server value | K3S_URL | 要连接的 server,用于加入集群 |
--cluster-init | K3S_CLUSTER_INIT | 使用嵌入式 Etcd 初始化新集群 |
--cluster-reset | K3S_CLUSTER_RESET | 忘记所有对等点,成为新集群的唯一成员 |
管理 Kubeconfig 选项
标志 | 环境变量 | 描述 |
---|---|---|
--write-kubeconfig value, -o value | K3S_KUBECONFIG_OUTPUT | 将 admin 客户端的 kubeconfig 写入此文件 |
--write-kubeconfig-mode value | K3S_KUBECONFIG_MODE | 使用此模式写入 kubeconfig。kubeconfig 文件归 root 所有,并默认使用 600 模式写入。如果将模式改为 644,主机上的其他非特权用户将能读取它。 |
高级选项
Logging
标志 | 默认 | 描述 |
---|---|---|
--debug | N/A | 打开 debug 日志 |
-v value | 0 | 表示日志级别详细程度的数字 |
--vmodule value | N/A | FILE_PATTERN=LOG_LEVEL 格式,用逗号分隔的列表,用于文件过滤日志 |
--log value, -l value | N/A | 记录到文件 |
--alsologtostderr | N/A | 记录到标准错误以及文件(如果设置) |
Listeners
标志 | 默认 | 描述 |
---|---|---|
--bind-address value | 0.0.0.0 | K3s 绑定地址 |
--https-listen-port value | 6443 | HTTPS 监听端口 |
--advertise-address value | node-external-ip/node-ip | IPv4 地址,apiserver 使用该地址向集群成员通告 |
--advertise-port value | listen-port/0 | apiserver 用于向集群成员通告的端口 |
--tls-san value | N/A | 在 TLS 证书上添加其他主机名或 IPv4/IPv6 地址作为 Subject Alternative Name |
数据
标志 | 默认 | 描述 |
---|---|---|
--data-dir value, -d value | /var/lib/rancher/k3s ,如果不是 root,则为 ${HOME}/.rancher/k3s | 保存状态的文件夹 |
Secret 加密
标志 | 默认 | 描述 |
---|---|---|
--secrets-encryption | false | 启用 secret 静态加密 |