kube-proxy - Man Page

Eric Paris Jan 2015


kube-proxy [Options]


The Kubernetes network proxy runs on each node. This reflects services as defined in the Kubernetes API on each node and can do simple TCP, UDP, and SCTP stream forwarding or round robin TCP, UDP, and SCTP forwarding across a set of backends. Service cluster IPs and ports are currently found through Docker-links-compatible environment variables specifying ports opened by the service proxy. There is an optional addon that provides cluster DNS for these cluster IPs. The user must create a service with the apiserver API to configure the proxy.


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

--bind-address= The IP address for the proxy server to serve on (set to '' for all IPv4 interfaces and '::' for all IPv6 interfaces)

--bind-address-hard-fail=false If true kube-proxy will treat failure to bind to a port as fatal and exit

--cleanup=false If true cleanup iptables and ipvs rules and exit.

--cluster-cidr="" The CIDR range of pods in the cluster. When configured, traffic sent to a Service cluster IP from outside this range will be masqueraded and traffic sent from pods to an external LoadBalancer IP will be directed to the respective cluster IP instead

--config="" The path to the configuration file.

--config-sync-period=15m0s How often configuration from the apiserver is refreshed.  Must be greater than 0.

--conntrack-max-per-core=32768 Maximum number of NAT connections to track per CPU core (0 to leave the limit as-is and ignore conntrack-min).

--conntrack-min=131072 Minimum number of conntrack entries to allocate, regardless of conntrack-max-per-core (set conntrack-max-per-core=0 to leave the limit as-is).

--conntrack-tcp-timeout-close-wait=1h0m0s NAT timeout for TCP connections in the CLOSE_WAIT state

--conntrack-tcp-timeout-established=24h0m0s Idle timeout for established TCP connections (0 to leave as-is)

--detect-local-mode= Mode to use to detect local traffic

--feature-gates= A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: APIListChunking=true|false (BETA - default=true) APIPriorityAndFairness=true|false (BETA - default=true) APIResponseCompression=true|false (BETA - default=true) APIServerIdentity=true|false (ALPHA - default=false) AllAlpha=true|false (ALPHA - default=false) AllBeta=true|false (BETA - default=false) AnyVolumeDataSource=true|false (ALPHA - default=false) AppArmor=true|false (BETA - default=true) BalanceAttachedNodeVolumes=true|false (ALPHA - default=false) BoundServiceAccountTokenVolume=true|false (BETA - default=true) CPUManager=true|false (BETA - default=true) CSIInlineVolume=true|false (BETA - default=true) CSIMigration=true|false (BETA - default=true) CSIMigrationAWS=true|false (BETA - default=false) CSIMigrationAzureDisk=true|false (BETA - default=false) CSIMigrationAzureFile=true|false (BETA - default=false) CSIMigrationGCE=true|false (BETA - default=false) CSIMigrationOpenStack=true|false (BETA - default=true) CSIMigrationvSphere=true|false (BETA - default=false) CSIMigrationvSphereComplete=true|false (BETA - default=false) CSIServiceAccountToken=true|false (BETA - default=true) CSIStorageCapacity=true|false (BETA - default=true) CSIVolumeFSGroupPolicy=true|false (BETA - default=true) CSIVolumeHealth=true|false (ALPHA - default=false) ConfigurableFSGroupPolicy=true|false (BETA - default=true) ControllerManagerLeaderMigration=true|false (ALPHA - default=false) CronJobControllerV2=true|false (BETA - default=true) CustomCPUCFSQuotaPeriod=true|false (ALPHA - default=false) DaemonSetUpdateSurge=true|false (ALPHA - default=false) DefaultPodTopologySpread=true|false (BETA - default=true) DevicePlugins=true|false (BETA - default=true) DisableAcceleratorUsageMetrics=true|false (BETA - default=true) DownwardAPIHugePages=true|false (BETA - default=false) DynamicKubeletConfig=true|false (BETA - default=true) EfficientWatchResumption=true|false (BETA - default=true) EndpointSliceProxying=true|false (BETA - default=true) EndpointSliceTerminatingCondition=true|false (ALPHA - default=false) EphemeralContainers=true|false (ALPHA - default=false) ExpandCSIVolumes=true|false (BETA - default=true) ExpandInUsePersistentVolumes=true|false (BETA - default=true) ExpandPersistentVolumes=true|false (BETA - default=true) ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false) GenericEphemeralVolume=true|false (BETA - default=true) GracefulNodeShutdown=true|false (BETA - default=true) HPAContainerMetrics=true|false (ALPHA - default=false) HPAScaleToZero=true|false (ALPHA - default=false) HugePageStorageMediumSize=true|false (BETA - default=true) IPv6DualStack=true|false (BETA - default=true) InTreePluginAWSUnregister=true|false (ALPHA - default=false) InTreePluginAzureDiskUnregister=true|false (ALPHA - default=false) InTreePluginAzureFileUnregister=true|false (ALPHA - default=false) InTreePluginGCEUnregister=true|false (ALPHA - default=false) InTreePluginOpenStackUnregister=true|false (ALPHA - default=false) InTreePluginvSphereUnregister=true|false (ALPHA - default=false) IndexedJob=true|false (ALPHA - default=false) IngressClassNamespacedParams=true|false (ALPHA - default=false) KubeletCredentialProviders=true|false (ALPHA - default=false) KubeletPodResources=true|false (BETA - default=true) KubeletPodResourcesGetAllocatable=true|false (ALPHA - default=false) LocalStorageCapacityIsolation=true|false (BETA - default=true) LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - default=false) LogarithmicScaleDown=true|false (ALPHA - default=false) MemoryManager=true|false (ALPHA - default=false) MixedProtocolLBService=true|false (ALPHA - default=false) NamespaceDefaultLabelName=true|false (BETA - default=true) NetworkPolicyEndPort=true|false (ALPHA - default=false) NonPreemptingPriority=true|false (BETA - default=true) PodAffinityNamespaceSelector=true|false (ALPHA - default=false) PodDeletionCost=true|false (ALPHA - default=false) PodOverhead=true|false (BETA - default=true) PreferNominatedNode=true|false (ALPHA - default=false) ProbeTerminationGracePeriod=true|false (ALPHA - default=false) ProcMountType=true|false (ALPHA - default=false) QOSReserved=true|false (ALPHA - default=false) RemainingItemCount=true|false (BETA - default=true) RemoveSelfLink=true|false (BETA - default=true) RotateKubeletServerCertificate=true|false (BETA - default=true) ServerSideApply=true|false (BETA - default=true) ServiceInternalTrafficPolicy=true|false (ALPHA - default=false) ServiceLBNodePortControl=true|false (ALPHA - default=false) ServiceLoadBalancerClass=true|false (ALPHA - default=false) ServiceTopology=true|false (ALPHA - default=false) SetHostnameAsFQDN=true|false (BETA - default=true) SizeMemoryBackedVolumes=true|false (ALPHA - default=false) StorageVersionAPI=true|false (ALPHA - default=false) StorageVersionHash=true|false (BETA - default=true) SuspendJob=true|false (ALPHA - default=false) TTLAfterFinished=true|false (BETA - default=true) TopologyAwareHints=true|false (ALPHA - default=false) TopologyManager=true|false (BETA - default=true) ValidateProxyRedirects=true|false (BETA - default=true) VolumeCapacityPriority=true|false (ALPHA - default=false) WarningHeaders=true|false (BETA - default=true) WinDSR=true|false (ALPHA - default=false) WinOverlay=true|false (BETA - default=true) WindowsEndpointSliceProxying=true|false (BETA - default=true)

--healthz-bind-address= The IP address with port for the health check server to serve on (set to '' for all IPv4 interfaces and '[::]:10256' for all IPv6 interfaces). Set empty to disable.

--healthz-port=10256 The port to bind the health check server. Use 0 to disable.

--hostname-override="" If non-empty, will use this string as identification instead of the actual hostname.

--iptables-masquerade-bit=14 If using the pure iptables proxy, the bit of the fwmark space to mark packets requiring SNAT with.  Must be within the range [0, 31].

--iptables-min-sync-period=1s The minimum interval of how often the iptables rules can be refreshed as endpoints and services change (e.g. '5s', '1m', '2h22m').

--iptables-sync-period=30s The maximum interval of how often iptables rules are refreshed (e.g. '5s', '1m', '2h22m').  Must be greater than 0.

--ipvs-exclude-cidrs=[] A comma-separated list of CIDR's which the ipvs proxier should not touch when cleaning up IPVS rules.

--ipvs-min-sync-period=0s The minimum interval of how often the ipvs rules can be refreshed as endpoints and services change (e.g. '5s', '1m', '2h22m').

--ipvs-scheduler="" The ipvs scheduler type when proxy mode is ipvs

--ipvs-strict-arp=false Enable strict ARP by setting arp_ignore to 1 and arp_announce to 2

--ipvs-sync-period=30s The maximum interval of how often ipvs rules are refreshed (e.g. '5s', '1m', '2h22m').  Must be greater than 0.

--ipvs-tcp-timeout=0s The timeout for idle IPVS TCP connections, 0 to leave as-is. (e.g. '5s', '1m', '2h22m').

--ipvs-tcpfin-timeout=0s The timeout for IPVS TCP connections after receiving a FIN packet, 0 to leave as-is. (e.g. '5s', '1m', '2h22m').

--ipvs-udp-timeout=0s The timeout for IPVS UDP packets, 0 to leave as-is. (e.g. '5s', '1m', '2h22m').

--kube-api-burst=10 Burst to use while talking with kubernetes apiserver

--kube-api-content-type="application/vnd.kubernetes.protobuf" Content type of requests sent to apiserver.

--kube-api-qps=5 QPS to use while talking with kubernetes apiserver

--kubeconfig="" Path to kubeconfig file with authorization information (the master location can be overridden by the master flag).

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

--masquerade-all=false If using the pure iptables proxy, SNAT all traffic sent via Service cluster IPs (this not commonly needed)

--master="" The address of the Kubernetes API server (overrides any value in kubeconfig)

--metrics-bind-address= The IP address with port for the metrics server to serve on (set to '' for all IPv4 interfaces and '[::]:10249' for all IPv6 interfaces). Set empty to disable.

--metrics-port=10249 The port to bind the metrics server. Use 0 to disable.

--nodeport-addresses=[] A string slice of values which specify the addresses to use for NodePorts. Values may be valid IP blocks (e.g., The default empty string slice ([]) means to use all local addresses.

--oom-score-adj=-999 The oom-score-adj value for kube-proxy process. Values must be within the range [-1000, 1000]

--profiling=false If true enables profiling via web interface on /debug/pprof handler.

--proxy-mode= Which proxy mode to use: 'userspace' (older) or 'iptables' (faster) or 'ipvs' or 'kernelspace' (windows). If blank, use the best-available proxy (currently iptables). If the iptables proxy is selected, regardless of how, but the system's kernel or iptables versions are insufficient, this always falls back to the userspace proxy.

--proxy-port-range= Range of host ports (beginPort-endPort, single port or beginPort+offset, inclusive) that may be consumed in order to proxy service traffic. If (unspecified, 0, or 0-0) then ports will be randomly chosen.

--show-hidden-metrics-for-version="" The previous version for which you want to show hidden metrics. Only the previous minor version is meaningful, other values will not be allowed. The format is ., e.g.: '1.16'. The purpose of this format is make sure you have the opportunity to notice if the next release hides additional metrics, rather than being surprised when they are permanently removed in the release after that.

--udp-timeout=250ms How long an idle UDP connection will be kept open (e.g. '250ms', '2s').  Must be greater than 0. Only applicable for proxy-mode=userspace

--version=false Print version information and quit

--write-config-to="" If set, write the default configuration values to this file and exit.


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