|
1 | 1 | ---
|
2 |
| -reviewers: |
3 |
| -- mtaufen |
4 |
| -- dawnchen |
5 | 2 | title: 通过配置文件设置 Kubelet 参数
|
6 | 3 | content_type: task
|
7 | 4 | ---
|
8 | 5 | <!--
|
9 |
| ---- |
10 | 6 | reviewers:
|
11 | 7 | - mtaufen
|
12 | 8 | - dawnchen
|
13 | 9 | title: Set Kubelet parameters via a config file
|
14 | 10 | content_type: task
|
15 |
| ---- |
16 | 11 | --->
|
17 | 12 |
|
18 | 13 | <!-- overview -->
|
19 |
| -{{< feature-state state="beta" >}} |
| 14 | + |
| 15 | +{{< feature-state for_k8s_version="v1.10" state="beta" >}} |
20 | 16 |
|
21 | 17 | <!--
|
22 | 18 | A subset of the Kubelet's configuration parameters may be
|
23 | 19 | set via an on-disk config file, as a substitute for command-line flags.
|
24 | 20 | This functionality is considered beta in v1.10.
|
25 | 21 | --->
|
26 |
| -通过保存在硬盘的配置文件设置 Kubelet 的配置参数子集,可以作为命令行参数的替代。此功能在 v1.10 中为 beta 版。 |
| 22 | +通过保存在硬盘的配置文件设置 kubelet 的部分配置参数,这可以作为命令行参数的替代。 |
| 23 | +此功能在 v1.10 中为 beta 版。 |
27 | 24 |
|
28 | 25 | <!--
|
29 | 26 | Providing parameters via a config file is the recommended approach because
|
30 | 27 | it simplifies node deployment and configuration management.
|
31 | 28 | --->
|
32 | 29 | 建议通过配置文件的方式提供参数,因为这样可以简化节点部署和配置管理。
|
33 | 30 |
|
34 |
| - |
35 |
| - |
36 | 31 | ## {{% heading "prerequisites" %}}
|
37 | 32 |
|
38 |
| - |
39 | 33 | <!--
|
40 | 34 | - A v1.10 or higher Kubelet binary must be installed for beta functionality.
|
41 |
| ----> |
42 |
| -- 需要安装 1.10 或更高版本的 Kubelet 二进制文件,才能实现 beta 功能。 |
43 |
| - |
44 |
| - |
| 35 | +--> |
| 36 | +- 需要安装 1.10 或更高版本的 kubelet 可执行文件,才能使用此 beta 功能。 |
45 | 37 |
|
46 | 38 | <!-- steps -->
|
47 | 39 |
|
48 | 40 | <!--
|
49 | 41 | ## Create the config file
|
50 |
| ----> |
51 |
| -## 创建配置文件 |
52 | 42 |
|
| 43 | +The subset of the Kubelet's configuration that can be configured via a file |
| 44 | +is defined by the `KubeletConfiguration` struct |
| 45 | +[here (v1beta1)](https://github.com/kubernetes/kubernetes/blob/{{< param "docsbranch" >}}/staging/src/k8s.io/kubelet/config/v1beta1/types.go). |
| 46 | +--> |
| 47 | +## 创建配置文件 |
53 | 48 |
|
54 |
| -`KubeletConfiguration` 结构体定义了可以通过文件配置的 Kubelet 配置子集,该结构体在 [这里(v1beta1)](https://github.com/kubernetes/kubernetes/blob/{{< param "docsbranch" >}}/staging/src/k8s.io/kubelet/config/v1beta1/types.go) 可以找到, 配置文件必须是这个结构体中参数的 JSON 或 YAML 表现形式。 |
| 49 | +`KubeletConfiguration` 结构体定义了可以通过文件配置的 Kubelet 配置子集, |
| 50 | +该结构体在 [这里(v1beta1)](https://github.com/kubernetes/kubernetes/blob/{{< param "docsbranch" >}}/staging/src/k8s.io/kubelet/config/v1beta1/types.go) |
| 51 | +可以找到。 |
55 | 52 |
|
| 53 | +<!-- |
| 54 | +The configuration file must be a JSON or YAML representation of the parameters |
| 55 | +in this struct. Make sure the Kubelet has read permissions on the file. |
56 | 56 |
|
57 |
| -在单独的文件夹中创建一个名为 `kubelet` 的文件,并保证 Kubelet 可以读取该文件夹及文件。您应该在这个 `kubelet` 文件中编写 Kubelet 配置。 |
| 57 | +Here is an example of what this file might look like: |
| 58 | +--> |
| 59 | +配置文件必须是这个结构体中参数的 JSON 或 YAML 表现形式。 |
| 60 | +确保 kubelet 可以读取该文件。 |
58 | 61 |
|
59 |
| -这是一个 Kubelet 配置文件示例: |
| 62 | +下面是一个 Kubelet 配置文件示例: |
60 | 63 |
|
61 |
| -``` |
| 64 | +```yaml |
62 | 65 | kind: KubeletConfiguration
|
63 | 66 | apiVersion: kubelet.config.k8s.io/v1beta1
|
64 | 67 | evictionHard:
|
65 | 68 | memory.available: "200Mi"
|
66 | 69 | ```
|
67 |
| -在这个示例中, 当可用内存低于200Mi 时, Kubelet 将会开始驱逐 Pods。 没有声明的其余配置项都将使用默认值, 命令行中的 flags 将会覆盖配置文件中的对应值。 |
68 |
| - |
69 | 70 |
|
70 |
| -作为一个小技巧,您可以从活动节点生成配置文件,相关方法请查看 [重新配置活动集群节点的 Kubelet](/docs/tasks/administer-cluster/reconfigure-kubelet)。 |
| 71 | +<!-- |
| 72 | +In the example, the Kubelet is configured to evict Pods when available memory drops below 200Mi. |
| 73 | +All other Kubelet configuration values are left at their built-in defaults, unless overridden |
| 74 | +by flags. Command line flags which target the same value as a config file will override that value. |
71 | 75 |
|
| 76 | +For a trick to generate a configuration file from a live node, see |
| 77 | +[Reconfigure a Node's Kubelet in a Live Cluster](/docs/tasks/administer-cluster/reconfigure-kubelet). |
| 78 | +--> |
| 79 | +在这个示例中, 当可用内存低于 200Mi 时, kubelet 将会开始驱逐 Pods。 |
| 80 | +没有声明的其余配置项都将使用默认值,除非使用命令行参数来重载。 |
| 81 | +命令行中的参数将会覆盖配置文件中的对应值。 |
72 | 82 |
|
73 |
| -## 启动通过配置文件配置的 Kubelet 进程 |
| 83 | +作为一个小技巧,你可以从活动节点生成配置文件,相关方法请查看 |
| 84 | +[重新配置活动集群节点的 kubelet](/zh/docs/tasks/administer-cluster/reconfigure-kubelet)。 |
74 | 85 |
|
75 | 86 | <!--
|
| 87 | +## Start a Kubelet process configured via the config file |
| 88 | +
|
76 | 89 | Start the Kubelet with the `--config` flag set to the path of the Kubelet's config file.
|
77 | 90 | The Kubelet will then load its config from this file.
|
78 | 91 | --->
|
| 92 | + |
| 93 | +## 启动通过配置文件配置的 Kubelet 进程 |
| 94 | + |
79 | 95 | 启动 Kubelet 需要将 `--config` 参数设置为 Kubelet 配置文件的路径。Kubelet 将从此文件加载其配置。
|
80 | 96 |
|
81 | 97 | <!--
|
82 | 98 | Note that command line flags which target the same value as a config file will override that value.
|
83 | 99 | This helps ensure backwards compatibility with the command-line API.
|
84 |
| ----> |
85 |
| -请注意,命令行参数与配置文件有相同的值时,就会覆盖配置文件中的该值。这有助于确保命令行 API 的向后兼容性。 |
| 100 | +--> |
| 101 | +请注意,命令行参数与配置文件有相同的值时,就会覆盖配置文件中的该值。 |
| 102 | +这有助于确保命令行 API 的向后兼容性。 |
86 | 103 |
|
87 | 104 | <!--
|
88 | 105 | Note that relative file paths in the Kubelet config file are resolved relative to the
|
89 | 106 | location of the Kubelet config file, whereas relative paths in command line flags are resolved
|
90 | 107 | relative to the Kubelet's current working directory.
|
91 |
| ----> |
92 |
| -请注意,Kubelet 配置文件中的相对文件路径是相对于 Kubelet 配置文件的位置解析的,而命令行参数中的相对路径是相对于 Kubelet 的当前工作目录解析的。 |
| 108 | +--> |
| 109 | +请注意,kubelet 配置文件中的相对文件路径是相对于 kubelet 配置文件的位置解析的, |
| 110 | +而命令行参数中的相对路径是相对于 kubelet 的当前工作目录解析的。 |
93 | 111 |
|
94 | 112 | <!--
|
95 | 113 | Note that some default values differ between command-line flags and the Kubelet config file.
|
96 | 114 | If `--config` is provided and the values are not specified via the command line, the
|
97 | 115 | defaults for the `KubeletConfiguration` version apply.
|
98 | 116 | In the above example, this version is `kubelet.config.k8s.io/v1beta1`.
|
99 | 117 | --->
|
100 |
| -请注意,命令行参数和 Kubelet 配置文件的某些默认值不同。如果设置了 `--config`,并且没有通过命令行指定值,则 `KubeletConfiguration` 版本的默认值生效。在上面的例子中,version 是 `kubelet.config.k8s.io/v1beta1`。 |
101 |
| - |
102 |
| - |
| 118 | +请注意,命令行参数和 Kubelet 配置文件的某些默认值不同。 |
| 119 | +如果设置了 `--config`,并且没有通过命令行指定值,则 `KubeletConfiguration` |
| 120 | +版本的默认值生效。在上面的例子中,version 是 `kubelet.config.k8s.io/v1beta1`。 |
103 | 121 |
|
104 | 122 | <!-- discussion -->
|
105 | 123 |
|
106 | 124 | <!--
|
107 | 125 | ## Relationship to Dynamic Kubelet Config
|
108 |
| ----> |
109 |
| -## 与动态 Kubelet 配置的关系 |
110 | 126 |
|
111 |
| -<!-- |
112 | 127 | If you are using the [Dynamic Kubelet Configuration](/docs/tasks/administer-cluster/reconfigure-kubelet)
|
113 | 128 | feature, the combination of configuration provided via `--config` and any flags which override these values
|
114 | 129 | is considered the default "last known good" configuration by the automatic rollback mechanism.
|
115 | 130 | --->
|
116 |
| -如果您正在使用 [动态 Kubelet 配置](/docs/tasks/administer-cluster/reconfigure-kubelet) 特性,那么自动回滚机制将认为是 "最后已知正常(last known good)" 的配置,通过 `--config` 提供的配置与覆盖这些值的任何参数的结合。 |
| 131 | +## 与动态 Kubelet 配置的关系 |
117 | 132 |
|
| 133 | +如果你正在使用[动态 kubelet 配置](/zh/docs/tasks/administer-cluster/reconfigure-kubelet)特性, |
| 134 | +那么自动回滚机制将认为通过 `--config` 提供的配置与覆盖这些值的任何参数的组合是 |
| 135 | + "最后已知正常(last known good)" 的配置。 |
118 | 136 |
|
119 | 137 |
|
0 commit comments