% 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 ``` /usr/bin/kubelet --logtostderr=true --v=0 --etcd_servers=http://127.0.0.1:4001 --address=127.0.0.1 --port=10250 --hostname_override=127.0.0.1 --allow_privileged=false ``` # HISTORY October 2014, Originally compiled by Scott Collier (scollier at redhat dot com) based on the kubernetes source material and internal work.