Files

5.5 KiB
Raw Permalink Blame History

reviewers, title, content_template
reviewers title content_template
mtaufen
dawnchen
通过配置文件设置 Kubelet 参数 templates/task

{{% capture overview %}} {{< feature-state state="beta" >}}

通过保存在硬盘的配置文件设置 Kubelet 的配置参数子集,可以作为命令行参数的替代。此功能在 v1.10 中为 beta 版。

建议通过配置文件的方式提供参数,因为这样可以简化节点部署和配置管理。

{{% /capture %}}

{{% capture prerequisites %}}

  • 需要安装 1.10 或更高版本的 Kubelet 二进制文件,才能实现 beta 功能。

{{% /capture %}}

{{% capture steps %}}

创建配置文件

KubeletConfiguration 结构体定义了可以通过文件配置的 Kubelet 配置子集,该结构体在 [这里(v1beta1)](https://github.com/kubernetes/kubernetes/blob/{{< param "docsbranch" >}}/pkg/kubelet/apis/config/types.go) 可以找到。

配置文件必须是这个结构体中参数的 JSON 或 YAML 表现形式。确保 Kubelet 可以读取该文件。

下面的示例是这个文件的结构

kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
evictionHard:
    memory.available:  "200Mi"

在该示例中,Kubelet 的配置是当可用内存低于 200Mi 时驱逐 Pods。除非被参数覆盖,否则其他 Kubelet 配置值都保留其内置默认值。命令行参数与配置文件有相同的值时,将会覆盖配置文件中的该值。

有关从活动节点生成配置文件的技巧,请参阅 重新配置活动集群节点的 Kubelet

启动通过配置文件配置的 Kubelet 进程

启动 Kubelet 需要将 --config 参数设置为 Kubelet 配置文件的路径。Kubelet 将从此文件加载其配置。

请注意,命令行参数与配置文件有相同的值时,就会覆盖配置文件中的该值。这有助于确保命令行 API 的向后兼容性。

请注意,Kubelet 配置文件中的相对文件路径是相对于 Kubelet 配置文件的位置解析的,而命令行参数中的相对路径是相对于 Kubelet 的当前工作目录解析的。

请注意,命令行参数和 Kubelet 配置文件的某些默认值不同。如果设置了 --config,并且没有通过命令行指定值,则 KubeletConfiguration 版本的默认值生效。在上面的例子中,version 是 kubelet.config.k8s.io/v1beta1

{{% /capture %}}

{{% capture discussion %}}

与动态 Kubelet 配置的关系

如果您正在使用 动态 Kubelet 配置 特性,那么自动回滚机制将认为是 "最后已知正常(last known good" 的配置,通过 --config 提供的配置与覆盖这些值的任何参数的结合。 {{% /capture %}}