您正在查看 Kubernetes 版本的文档: v1.21
Kubernetes v1.21 版本的文档已不再维护。您现在看到的版本来自于一份静态的快照。如需查阅最新文档,请点击 最新版本。
通过配置文件设置 Kubelet 参数
Kubernetes v1.10 [beta]
通过保存在硬盘的配置文件设置 kubelet 的部分配置参数,这可以作为命令行参数的替代。 此功能在 v1.10 中为 beta 版。
建议通过配置文件的方式提供参数,因为这样可以简化节点部署和配置管理。
准备开始
- 需要安装 1.10 或更高版本的 kubelet 可执行文件,才能使用此 beta 功能。
创建配置文件
KubeletConfiguration
结构体定义了可以通过文件配置的 Kubelet 配置子集,
该结构体在 这里(v1beta1)
可以找到。
配置文件必须是这个结构体中参数的 JSON 或 YAML 表现形式。 确保 kubelet 可以读取该文件。
下面是一个 Kubelet 配置文件示例:
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
evictionHard:
memory.available: "200Mi"
在这个示例中, 当可用内存低于 200Mi 时, kubelet 将会开始驱逐 Pods。 没有声明的其余配置项都将使用默认值,除非使用命令行参数来重载。 命令行中的参数将会覆盖配置文件中的对应值。
作为一个小技巧,你可以从活动节点生成配置文件,相关方法请查看 重新配置活动集群节点的 kubelet。
启动通过配置文件配置的 Kubelet 进程
启动 Kubelet 需要将 --config
参数设置为 Kubelet 配置文件的路径。Kubelet 将从此文件加载其配置。
请注意,命令行参数与配置文件有相同的值时,就会覆盖配置文件中的该值。 这有助于确保命令行 API 的向后兼容性。
请注意,kubelet 配置文件中的相对文件路径是相对于 kubelet 配置文件的位置解析的, 而命令行参数中的相对路径是相对于 kubelet 的当前工作目录解析的。
请注意,命令行参数和 Kubelet 配置文件的某些默认值不同。
如果设置了 --config
,并且没有通过命令行指定值,则 KubeletConfiguration
版本的默认值生效。在上面的例子中,version 是 kubelet.config.k8s.io/v1beta1
。
与动态 Kubelet 配置的关系
如果你正在使用动态 kubelet 配置特性,
那么自动回滚机制将认为通过 --config
提供的配置与覆盖这些值的任何参数的组合是
"最后已知正常(last known good)" 的配置。