FEATURE STATE: Kubernetes v1.8
alpha
This feature is currently in a alpha state, meaning:
As of Kubernetes 1.8, a subset of the Kubelet’s configuration parameters may be set via an on-disk config file, as a substitute for command-line flags. In the future, most of the existing command-line flags will be deprecated in favor of providing parameters via a config file, which simplifies node deployment.
The subset of the Kubelet’s configuration that can be configured via a file
is defined by the KubeletConfiguration
struct
here (v1alpha1).
The configuration file must be a JSON or YAML representation of the parameters
in this struct. Note that this structure, and thus the config file API,
is still considered alpha and is not subject to stability gurarantees.
Create a file named kubelet
in its own directory and make sure the directory
and file are both readable by the Kubelet. You should write your intended
Kubelet configuration in this kubelet
file.
For a trick to generate a configuration file from a live node, see Reconfigure a Node’s Kubelet in a Live Cluster.
Start the Kubelet with the KubeletConfigFile
feature gate enabled and the
Kubelet’s --init-config-dir
flag set to the location of the directory
containing the kubelet
file. The Kubelet will then load the parameters defined
by KubeletConfiguration
from the kubelet
file, rather than from their
associated command-line flags.
If you are using the Dynamic Kubelet Configuration
feature, the configuration provided via --init-config-dir
will be considered
the “last known good” configuration by the automatic rollback mechanism.
Note that the layout of the files in the --init-config-dir
mirrors the layout
of data in the ConfigMaps used for Dynamic Kubelet Config; the file names are
the same as the keys of the ConfigMap, and the file contents are JSON or YAML
representations of the same structures. Today, the only pair is
kubelet:KubeletConfiguration
, though more may emerge in the future.
See Reconfigure a Node’s Kubelet in a Live Cluster
for more information.