update Set Kubelet parameters via a config file (#12150)

This commit is contained in:
wangyamei
2019-01-10 03:36:05 +08:00
committed by Kubernetes Prow Robot
parent 4868339f36
commit bb6006fce2
@@ -1,66 +1,137 @@
---
approvers:
reviewers:
- mtaufen
- dawnchen
cn-approvers:
- xiaosuiba
cn-reviwers:
- pigletfly
- zjj2wry
- chentao1596
title: 通过配置文件设置 Kubelet 参数
content_template: templates/task
---
<!--
---
reviewers:
- mtaufen
- dawnchen
title: Set Kubelet parameters via a config file
content_template: templates/task
---
--->
{{% capture overview %}}
{{< feature-state state="alpha" >}}
{{< feature-state state="beta" >}}
<!--
A subset of the Kubelet's configuration parameters may be
set via an on-disk config file, as a substitute for command-line flags.
This functionality is considered beta in v1.10.
--->
通过保存在硬盘的配置文件设置 Kubelet 的配置参数子集,可以作为命令行参数的替代。此功能在 v1.10 中为 beta 版。
<!--
Providing parameters via a config file is the recommended approach because
it simplifies node deployment and configuration management.
--->
建议通过配置文件的方式提供参数,因为这样可以简化节点部署和配置管理。
在 Kubernetes 1.8 版本上,除了可以通过命令行参数外,还可以通过保存在硬盘的配置文件设置 Kubelet 的配置子集。
将来,大部分现存的命令行参数都将被废弃,取而代之以配置文件的方式提供参数,以简化节点部署过程。
{{% /capture %}}
{{% capture prerequisites %}}
- 需要安装 1.8 版本或更高版本的 Kubelet 二进制文件。
<!--
- A v1.10 or higher Kubelet binary must be installed for beta functionality.
--->
- 需要安装 1.10 或更高版本的 Kubelet 二进制文件,才能实现 beta 功能。
{{% /capture %}}
{{% capture steps %}}
<!--
## Create the config file
--->
## 创建配置文件
<!--
The subset of the Kubelet's configuration that can be configured via a file
is defined by the `KubeletConfiguration` struct
[here (v1beta1)](https://github.com/kubernetes/kubernetes/blob/{{< param "docsbranch" >}}/pkg/kubelet/apis/config/types.go).
--->
`KubeletConfiguration` 结构体定义了可以通过文件配置的 Kubelet 配置子集,该结构体在 [这里(v1beta1](https://github.com/kubernetes/kubernetes/blob/{{< param "docsbranch" >}}/pkg/kubelet/apis/config/types.go) 可以找到。
`KubeletConfiguration` 结构体定义了可以通过文件配置的 Kubelet 配置子集,该结构体在 [这里(v1alpha1](https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/apis/kubeletconfig/v1alpha1/types.go) 可以找到。配置文件必须是这个结构体中参数的 JSON 或 YAML 表现形式。请注意,这个结构体及配置文件 API 仍然为 alpha 版本,对其稳定性不作保证。
<!--
The configuration file must be a JSON or YAML representation of the parameters
in this struct. Make sure the Kubelet has read permissions on the file.
--->
配置文件必须是这个结构体中参数的 JSON 或 YAML 表现形式。确保 Kubelet 可以读取该文件。
<!--
Here is an example of what this file might look like:
--->
下面的示例是这个文件的结构
```
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
evictionHard:
memory.available: "200Mi"
```
<!--
In the example, the Kubelet is configured to evict Pods when available memory drops below 200Mi.
All other Kubelet configuration values are left at their built-in defaults, unless overridden
by flags. Command line flags which target the same value as a config file will override that value.
--->
在该示例中,Kubelet 的配置是当可用内存低于 200Mi 时驱逐 Pods。除非被参数覆盖,否则其他 Kubelet 配置值都保留其内置默认值。命令行参数与配置文件有相同的值时,将会覆盖配置文件中的该值。
在单独的文件夹中创建一个名为 `kubelet` 的文件,并保证 Kubelet 可以读取该文件夹及文件。您应该在这个 `kubelet` 文件中编写 Kubelet 配置。
作为一个小技巧,您可以从活动节点生成配置文件,相关方法请查看 [重新配置活动集群节点的 Kubelet](/docs/tasks/administer-cluster/reconfigure-kubelet)。
<!--
For a trick to generate a configuration file from a live node, see
[Reconfigure a Node's Kubelet in a Live Cluster](/docs/tasks/administer-cluster/reconfigure-kubelet).
--->
有关从活动节点生成配置文件的技巧,请参阅 [重新配置活动集群节点的 Kubelet](/docs/tasks/administer-cluster/reconfigure-kubelet)。
<!--
## Start a Kubelet process configured via the config file
--->
## 启动通过配置文件配置的 Kubelet 进程
<!--
Start the Kubelet with the `--config` flag set to the path of the Kubelet's config file.
The Kubelet will then load its config from this file.
--->
启动 Kubelet 需要将 `--config` 参数设置为 Kubelet 配置文件的路径。Kubelet 将从此文件加载其配置。
启动 Kubelet 需要将其 `--init-config-dir` 标志设置为包含 `kubelet` 文件的文件夹路径。Kubelet 将从 `kubelet` 文件中读取由 `KubeletConfiguration` 定义的参数,而不是从参数相关的命令行标志中读取。
<!--
Note that command line flags which target the same value as a config file will override that value.
This helps ensure backwards compatibility with the command-line API.
--->
请注意,命令行参数与配置文件有相同的值时,就会覆盖配置文件中的该值。这有助于确保命令行 API 的向后兼容性。
<!--
Note that relative file paths in the Kubelet config file are resolved relative to the
location of the Kubelet config file, whereas relative paths in command line flags are resolved
relative to the Kubelet's current working directory.
--->
请注意,Kubelet 配置文件中的相对文件路径是相对于 Kubelet 配置文件的位置解析的,而命令行参数中的相对路径是相对于 Kubelet 的当前工作目录解析的。
<!--
Note that some default values differ between command-line flags and the Kubelet config file.
If `--config` is provided and the values are not specified via the command line, the
defaults for the `KubeletConfiguration` version apply.
In the above example, this version is `kubelet.config.k8s.io/v1beta1`.
--->
请注意,命令行参数和 Kubelet 配置文件的某些默认值不同。如果设置了 `--config`,并且没有通过命令行指定值,则 `KubeletConfiguration` 版本的默认值生效。在上面的例子中,version 是 `kubelet.config.k8s.io/v1beta1`
{{% /capture %}}
{{% capture discussion %}}
<!--
## Relationship to Dynamic Kubelet Config
--->
## 与动态 Kubelet 配置的关系
如果您正在使用 [动态 Kubelet 配置(Dynamic Kubelet Configuration](/docs/tasks/administer-cluster/reconfigure-kubelet) 特性,那么自动回滚机制将认为通过 `--init-config-dir` 提供的配置是“最后已知正常(last known good)”的配置。
请注意,`--init-config-dir` 文件的布局结构镜像了 ConfigMap 中用于动态 Kubelet 配置的数据结构;文件命名和 ConfigMap 的 key 相同,文件的内容是 ConfigMap 中相同数据结构的 JSON 或 YAML 表现形式。虽然以后可能会出现更多,但目前只有 kubelet:KubeletConfiguration 配置对。更多信息请查阅 [重新配置活动集群节点的 Kubelet](/docs/tasks/administer-cluster/reconfigure-kubelet)。
<!--
If you are using the [Dynamic Kubelet Configuration](/docs/tasks/administer-cluster/reconfigure-kubelet)
feature, the combination of configuration provided via `--config` and any flags which override these values
is considered the default "last known good" configuration by the automatic rollback mechanism.
--->
如果您正在使用 [动态 Kubelet 配置](/docs/tasks/administer-cluster/reconfigure-kubelet) 特性,那么自动回滚机制将认为是 "最后已知正常(last known good" 的配置,通过 `--config` 提供的配置与覆盖这些值的任何参数的结合。
{{% /capture %}}