4.1 KiB
% KUBERNETES(1) kubernetes User Manuals % Scott Collier % October 2014
NAME
kubelet - Processes a container manifest so the containers are launched according to how they are described.
SYNOPSIS
kubelet [OPTIONS]
DESCRIPTION
The kubernetes kubelet runs on each node. The Kubelet works in terms of a container manifest. A container manifest is a YAML or JSON file that describes a pod. The Kubelet takes a set of manifests that are provided in various mechanisms and ensures that the containers described in those manifests are started and continue running.
There are 4 ways that a container manifest can be provided to the Kubelet:
File Path passed as a flag on the command line. This file is rechecked every 20 seconds (configurable with a flag).
HTTP endpoint HTTP endpoint passed as a parameter on the command line. This endpoint is checked every 20 seconds (also configurable with a flag).
etcd server The Kubelet will reach out and do a watch on an etcd server. The etcd path that is watched is /registry/hosts/$(hostname -f). As this is a watch, changes are noticed and acted upon very quickly.
HTTP server The kubelet can also listen for HTTP and respond to a simple API (underspec'd currently) to submit a new manifest.
OPTIONS
-address="127.0.0.1" The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces).
-allow_privileged=false If true, allow containers to request privileged mode. [default=false].
-alsologtostderr=false log to standard error as well as files.
-config="" Path to the config file or directory of files.
-docker_endpoint="" If non-empty, use this for the docker endpoint to communicate with.
-enable_server=true Enable the info server.
-etcd_servers=[] List of etcd servers to watch (http://ip:port), comma separated.
-file_check_frequency=20s Duration between checking config files for new data.
-hostname_override="" If non-empty, will use this string as identification instead of the actual hostname.
-http_check_frequency=20s Duration between checking http for new data.
-log_backtrace_at=:0 when logging hits line file:N, emit a stack trace.
-log_dir="" If non-empty, write log files in this directory.
-log_flush_frequency=5s Maximum number of seconds between log flushes.
-logtostderr=false log to standard error instead of files.
-manifest_url="" URL for accessing the container manifest.
-network_container_image="kubernetes/pause:latest" The image that network containers in each pod will use.
-port=10250 The port for the info server to serve on.
-registry_burst=10 Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_qps. Only used if --registry_qps > 0.
-registry_qps=0 If > 0, limit registry pull QPS to this value. If 0, unlimited. [default=0.0].
-root_dir="/var/lib/kubelet" Directory path for managing kubelet files (volume mounts,etc).
-stderrthreshold=0 logs at or above this threshold go to stderr.
-sync_frequency=10s Max period between synchronizing running containers and config.
-v=0 log level for V logs.
-version=false Print version information and quit.
-vmodule= comma-separated list of pattern=N settings for file-filtered logging.
EXAMPLES
The kubelet can be called manually or from systemd. An example unit file looks as such:
[Unit]
Description=Kubernetes Kubelet
After=docker.socket cadvisor.service
Requires=docker.socket
[Service]
EnvironmentFile=/etc/kubernetes/config
EnvironmentFile=/etc/kubernetes/kubelet
ExecStart=/usr/bin/kubelet \
--logtostderr=${KUBE_LOGTOSTDERR} \
--v=${KUBE_LOG_LEVEL} \
--etcd_servers=${KUBE_ETCD_SERVERS} \
--address=${MINION_ADDRESS} \
--port=${MINION_PORT} \
--hostname_override=${MINION_HOSTNAME} \
--allow_privileged=${KUBE_ALLOW_PRIV}
Restart=on-failure
[Install]
WantedBy=multi-user.target
Where the variables are stored in the /etc/kubernetes/ environment files.
HISTORY
October 2014, Originally compiled by Scott Collier (scollier at redhat dot com) based on the kubernetes source material and internal work.