mirror of https://github.com/k3s-io/k3s
129 lines
4.1 KiB
Markdown
129 lines
4.1 KiB
Markdown
![]() |
% 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.
|