DOKK / manpages / debian 11 / kubernetes-client / kubectl-exec.1.en
KUBERNETES(1)(kubernetes) KUBERNETES(1)(kubernetes)
Eric Paris Jan 2015

kubectl exec - Execute a command in a container

kubectl exec [OPTIONS]

Execute a command in a container.

-c, --container="" Container name. If omitted, the first container in the pod will be chosen

-f, --filename=[] to use to exec into the resource

--pod-running-timeout=1m0s The length of time (like 5s, 2m, or 3h, higher than zero) to wait until at least one pod is running

-i, --stdin=false Pass stdin to the container

-t, --tty=false Stdin is a TTY

--add-dir-header=false If true, adds the file directory to the header of the log messages

--alsologtostderr=false log to standard error as well as files

--application-metrics-count-limit=100 Max number of application metrics to store (per container)

--as="" Username to impersonate for the operation

--as-group=[] Group to impersonate for the operation, this flag can be repeated to specify multiple groups.

--azure-container-registry-config="" Path to the file containing Azure container registry configuration information.

--boot-id-file="/proc/sys/kernel/random/boot_id" Comma-separated list of files to check for boot-id. Use the first one that exists.

--cache-dir="/home/user/.kube/cache" Default cache directory

--certificate-authority="" Path to a cert file for the certificate authority

--client-certificate="" Path to a client certificate file for TLS

--client-key="" Path to a client key file for TLS

--cloud-provider-gce-l7lb-src-cidrs=130.211.0.0/22,35.191.0.0/16 CIDRs opened in GCE firewall for L7 LB traffic proxy health checks

--cloud-provider-gce-lb-src-cidrs=130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16 CIDRs opened in GCE firewall for L4 LB traffic proxy health checks

--cluster="" The name of the kubeconfig cluster to use

--container-hints="/etc/cadvisor/container_hints.json" location of the container hints file

--containerd="/run/containerd/containerd.sock" containerd endpoint

--containerd-namespace="k8s.io" containerd namespace

--context="" The name of the kubeconfig context to use

--default-not-ready-toleration-seconds=300 Indicates the tolerationSeconds of the toleration for notReady:NoExecute that is added by default to every pod that does not already have such a toleration.

--default-unreachable-toleration-seconds=300 Indicates the tolerationSeconds of the toleration for unreachable:NoExecute that is added by default to every pod that does not already have such a toleration.

--disable-root-cgroup-stats=false Disable collecting root Cgroup stats

--docker="unix:///var/run/docker.sock" docker endpoint

--docker-env-metadata-whitelist="" a comma-separated list of environment variable keys matched with specified prefix that needs to be collected for docker containers

--docker-only=false Only report docker containers in addition to root stats

--docker-root="/var/lib/docker" DEPRECATED: docker root is read from docker info (this is a fallback, default: /var/lib/docker)

--docker-tls=false use TLS to connect to docker

--docker-tls-ca="ca.pem" path to trusted CA

--docker-tls-cert="cert.pem" path to client certificate

--docker-tls-key="key.pem" path to private key

--enable-load-reader=false Whether to enable cpu load reader

--event-storage-age-limit="default=0" Max length of time for which to store events (per type). Value is a comma separated list of key values, where the keys are event types (e.g.: creation, oom) or "default" and the value is a duration. Default is applied to all non-specified event types

--event-storage-event-limit="default=0" Max number of events to store (per type). Value is a comma separated list of key values, where the keys are event types (e.g.: creation, oom) or "default" and the value is an integer. Default is applied to all non-specified event types

--global-housekeeping-interval=1m0s Interval between global housekeepings

--housekeeping-interval=10s Interval between container housekeepings

--insecure-skip-tls-verify=false If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure

--kubeconfig="" Path to the kubeconfig file to use for CLI requests.

--log-backtrace-at=:0 when logging hits line file:N, emit a stack trace

--log-cadvisor-usage=false Whether to log the usage of the cAdvisor container

--log-dir="" If non-empty, write log files in this directory

--log-file="" If non-empty, use this log file

--log-file-max-size=1800 Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited.

--log-flush-frequency=5s Maximum number of seconds between log flushes

--logtostderr=true log to standard error instead of files

--machine-id-file="/etc/machine-id,/var/lib/dbus/machine-id" Comma-separated list of files to check for machine-id. Use the first one that exists.

--match-server-version=false Require server version to match client version

-n, --namespace="" If present, the namespace scope for this CLI request

--one-output=false If true, only write logs to their native severity level (vs also writing to each lower severity level

--password="" Password for basic authentication to the API server

--profile="none" Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)

--profile-output="profile.pprof" Name of the file to write the profile to

--referenced-reset-interval=0 Reset interval for referenced bytes (container_referenced_bytes metric), number of measurement cycles after which referenced bytes are cleared, if set to 0 referenced bytes are never cleared (default: 0)

--request-timeout="0" The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.

-s, --server="" The address and port of the Kubernetes API server

--skip-headers=false If true, avoid header prefixes in the log messages

--skip-log-headers=false If true, avoid headers when opening log files

--stderrthreshold=2 logs at or above this threshold go to stderr

--storage-driver-buffer-duration=1m0s Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction

--storage-driver-db="cadvisor" database name

--storage-driver-host="localhost:8086" database host:port

--storage-driver-password="root" database password

--storage-driver-secure=false use secure connection with database

--storage-driver-table="stats" table name

--storage-driver-user="root" database username

--tls-server-name="" Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used

--token="" Bearer token for authentication to the API server

--update-machine-info-interval=5m0s Interval between machine info updates.

--user="" The name of the kubeconfig user to use

--username="" Username for basic authentication to the API server

-v, --v=0 number for the log level verbosity

--version=false Print version information and quit

--vmodule= comma-separated list of pattern=N settings for file-filtered logging

--warnings-as-errors=false Treat warnings received from the server as errors and exit with a non-zero exit code


# Get output from running 'date' command from pod mypod, using the first container by default
kubectl exec mypod -- date

# Get output from running 'date' command in ruby-container from pod mypod
kubectl exec mypod -c ruby-container -- date

# Switch to raw terminal mode, sends stdin to 'bash' in ruby-container from pod mypod
# and sends stdout/stderr from 'bash' back to the client
kubectl exec mypod -c ruby-container -i -t -- bash -il

# List contents of /usr from the first container of pod mypod and sort by modification time.
# If the command you want to execute in the pod has any flags in common (e.g. -i),
# you must use two dashes (--) to separate your command's flags/arguments.
# Also note, do not surround your command and its flags/arguments with quotes
# unless that is how you would execute it normally (i.e., do ls -t /usr, not "ls -t /usr").
kubectl exec mypod -i -t -- ls -t /usr

# Get output from running 'date' command from the first pod of the deployment mydeployment, using the first container by default
kubectl exec deploy/mydeployment -- date

# Get output from running 'date' command from the first pod of the service myservice, using the first container by default
kubectl exec svc/myservice -- date

kubectl(1),

January 2015, Originally compiled by Eric Paris (eparis at redhat dot com) based on the kubernetes source material, but hopefully they have been automatically generated since!

User Manuals