kubectl port-forward - Forward one or more local ports to a pod
kubectl port-forward [OPTIONS]
Forward one or more local ports to a pod. This command requires the node to have 'socat' installed.
Use resource type/name such as deployment/mydeployment to select a pod. Resource type defaults to 'pod' if omitted.
If there are multiple pods matching the criteria, a pod will be selected automatically. The forwarding session ends when the selected pod terminates, and rerun of the command is needed to resume forwarding.
--address=[localhost] Addresses to listen on (comma separated). Only accepts IP addresses or localhost as a value. When localhost is supplied, kubectl will try to bind on both 127.0.0.1 and ::1 and will fail if neither of these addresses are available to bind.
--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
OPTIONS INHERITED FROM PARENT COMMANDS¶
--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=18.104.22.168/22,22.214.171.124/16 CIDRs opened in GCE firewall for L7 LB traffic proxy health checks
--cloud-provider-gce-lb-src-cidrs=126.96.36.199/22,188.8.131.52/22,184.108.40.206/22,220.127.116.11/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
# Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in the pod
kubectl port-forward pod/mypod 5000 6000
# Listen on ports 5000 and 6000 locally, forwarding data to/from ports 5000 and 6000 in a pod selected by the deployment
kubectl port-forward deployment/mydeployment 5000 6000
# Listen on port 8443 locally, forwarding to the targetPort of the service's port named "https" in a pod selected by the service
kubectl port-forward service/myservice 8443:https
# Listen on port 8888 locally, forwarding to 5000 in the pod
kubectl port-forward pod/mypod 8888:5000
# Listen on port 8888 on all addresses, forwarding to 5000 in the pod
kubectl port-forward --address 0.0.0.0 pod/mypod 8888:5000
# Listen on port 8888 on localhost and selected IP, forwarding to 5000 in the pod
kubectl port-forward --address localhost,10.19.21.23 pod/mypod 8888:5000
# Listen on a random port locally, forwarding to 5000 in the pod
kubectl port-forward pod/mypod :5000
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!