Eric Paris Jan 2015
NAME
kube-proxy -
SYNOPSIS
kube-proxy [OPTIONS]
DESCRIPTION
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.
OPTIONS
--allow_dynamic_housekeeping=true
Whether to allow the housekeeping interval to be dynamic
--application_metrics_count_limit=100
Max number of application metrics to store (per container)
--bind-address=0.0.0.0
Overrides kube-proxy's idea of what its node's primary IP is. Note that the name is a historical artifact, and kube-proxy does not actually bind any sockets to this IP. This parameter is ignored if a config file is specified by --config.
--bind-address-hard-fail=false
If true kube-proxy will treat failure to bind to a port as fatal and exit
--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.
--cleanup=false
If true cleanup iptables and ipvs rules and exit.
--cluster-cidr=""
The CIDR range of the pods in the cluster. (For dual-stack clusters, this can be a comma-separated dual-stack pair of CIDR ranges.). When --detect-local-mode is set to ClusterCIDR, kube-proxy will consider traffic to be local if its source IP is in this range. (Otherwise it is not used.) This parameter is ignored if a config file is specified by --config.
--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-be-liberal=false
Enable liberal mode for tracking TCP packets by setting nf_conntrack_tcp_be_liberal to 1
--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)
--conntrack-udp-timeout=0s
Idle timeout for UNREPLIED UDP connections (0 to leave as-is)
--conntrack-udp-timeout-stream=0s
Idle timeout for ASSURED UDP connections (0 to leave as-is)
--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
--containerd_env_metadata_whitelist=""
DEPRECATED: this flag will be removed, please use env_metadata_whitelist. A comma-separated list of environment variable keys matched with specified prefix that needs to be collected for containerd containers
--crio_client_timeout=0s
CRI-O client timeout. Default is no timeout.
--detect-local-mode=
Mode to use to detect local traffic. This parameter is ignored if a config file is specified by --config.
--disable_root_cgroup_stats=false
Disable collecting root Cgroup stats
--docker_only=false
Only report docker containers in addition to root stats
--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
--feature-gates=
A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: APIResponseCompression=true|false (BETA - default=true) APIServerIdentity=true|false (BETA - default=true) APIServerWebhookAuthenticationToken=true|false (ALPHA - default=false) APIServingWithRoutine=true|false (ALPHA - default=false) AllAlpha=true|false (ALPHA - default=false) AllBeta=true|false (BETA - default=false) AllowParsingUserUIDFromCertAuth=true|false (BETA - default=true) AllowUnsafeMalformedObjectDeletion=true|false (BETA - default=true) AtomicFIFO=true|false (BETA - default=true) AtomicWriteVolumeUserFields=true|false (ALPHA - default=false) AuthorizePodWebsocketUpgradeCreatePermission=true|false (BETA - default=true) CBORServingAndStorage=true|false (ALPHA - default=false) CPUManagerPolicyAlphaOptions=true|false (ALPHA - default=false) CPUManagerPolicyBetaOptions=true|false (BETA - default=true) CRDObservedGenerationTracking=true|false (BETA - default=true) CRIListStreaming=true|false (ALPHA - default=false) CSIVolumeHealth=true|false (ALPHA - default=false) ClearingNominatedNodeNameAfterBinding=true|false (BETA - default=true) ClientsAllowCARotation=true|false (BETA - default=true) ClientsAllowCBOR=true|false (ALPHA - default=false) ClientsAllowTLSCacheGC=true|false (BETA - default=true) ClientsPreferCBOR=true|false (ALPHA - default=false) CloudControllerManagerWatchBasedRoutesReconciliation=true|false (ALPHA - default=false) CloudControllerManagerWebhook=true|false (ALPHA - default=false) ComponentFlagz=true|false (BETA - default=true) ComponentStatusz=true|false (BETA - default=true) CompositePodGroup=true|false (ALPHA - default=false) ConcurrentWatchObjectDecode=true|false (BETA - default=true) ConsistentListFromCacheSkipTimeoutFallback=true|false (ALPHA - default=false) ConstrainedImpersonation=true|false (BETA - default=true) ContainerCheckpoint=true|false (BETA - default=true) ContainerRestartRules=true|false (BETA - default=true) ContainerStopSignals=true|false (ALPHA - default=false) ContextualLogging=true|false (BETA - default=true) ControllerManagerReleaseLeaderElectionLockOnExit=true|false (ALPHA - default=false) CoordinatedLeaderElection=true|false (BETA - default=false) CrossNamespaceVolumeDataSource=true|false (ALPHA - default=false) DRAConsumableCapacity=true|false (BETA - default=true) DRADerivedAttributes=true|false (ALPHA - default=false) DRADeviceBindingConditions=true|false (BETA - default=true) DRADeviceCompatibilityGroups=true|false (ALPHA - default=false) DRAFractionalCapacityRange=true|false (BETA - default=false), or DRAFractionalCapacityRange=true|false (BETA - default=true) if --min-compatibility-version>=1.37 DRAListTypeAttributes=true|false (ALPHA - default=false) DRANodeAllocatableResources=true|false (ALPHA - default=false) DRAOptionalNodeOperations=true|false (ALPHA - default=false) DRAPartitionableDevices=true|false (BETA - default=true) DRAPartitionableDevicesType=true|false (ALPHA - default=false) DRAResourceClaimGranularStatusAuthorization=true|false (BETA - default=true) DRAResourcePoolStatus=true|false (ALPHA - default=false) DRASchedulerFilterTimeout=true|false (BETA - default=true) DRAWorkloadResourceClaims=true|false (BETA - default=false) DeclarativeValidationBeta=true|false (BETA - default=true) DefaultPodSysctls=true|false (ALPHA - default=false) DeploymentReplicaSetTerminatingReplicas=true|false (BETA - default=true) DetectCacheInconsistency=true|false (BETA - default=true) EmptyDirVolumeMode=true|false (ALPHA - default=false) EnvFiles=true|false (BETA - default=true) EtcdRangeStream=true|false (BETA - default=true) EventedPLEG=true|false (ALPHA - default=false) EvictionRequestAPI=true|false (ALPHA - default=false) ExcludeAdmissionWebhookVirtualResources=true|false (BETA - default=true) ExtendWebSocketsToKubelet=true|false (BETA - default=true) GRPCContainerProbeTLS=true|false (ALPHA - default=false) GenericWorkload=true|false (BETA - default=false) GracefulNodeShutdown=true|false (BETA - default=true) GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - default=true) H2CContainerProbe=true|false (ALPHA - default=false) HPAGeneration=true|false (BETA - default=true) HPAOptimizedSelectorStore=true|false (BETA - default=true) HPAScaleToZero=true|false (BETA - default=true) HugepageAwareEviction=true|false (BETA - default=true) ImageVolumeWithDigest=true|false (ALPHA - default=false) InOrderInformersBatchProcess=true|false (BETA - default=true) InPlacePodLevelResourcesVerticalScaling=true|false (BETA - default=true) InPlacePodVerticalScalingExclusiveCPUs=true|false (ALPHA - default=false) InPlacePodVerticalScalingExclusiveMemory=true|false (ALPHA - default=false) InPlacePodVerticalScalingMemoryBackedVolumes=true|false (ALPHA - default=false) InPlacePodVerticalScalingSchedulerPreemption=true|false (ALPHA - default=false) InterPodAffinityHostnameFastPath=true|false (ALPHA - default=false) KubeProxyNFTablesLocalhostNodePorts=true|false (ALPHA - default=false) KubeletAllocatedPodsEndpoint=true|false (ALPHA - default=false) KubeletCrashLoopBackOffMax=true|false (BETA - default=true) KubeletEnsureSecretPulledImages=true|false (BETA - default=true) KubeletInUserNamespace=true|false (BETA - default=true) KubeletSeparateDiskGC=true|false (BETA - default=true) KubeletServiceAccountTokenForCredentialProviders=true|false (BETA - default=true) ListFromCacheSnapshot=true|false (BETA - default=true) LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (BETA - default=false) LoggingAlphaOptions=true|false (ALPHA - default=false) LoggingBetaOptions=true|false (BETA - default=true) ManifestBasedAdmissionControlConfig=true|false (BETA - default=true) MatchLabelKeysInPodTopologySpread=true|false (BETA - default=true) MatchLabelKeysInPodTopologySpreadSelectorMerge=true|false (BETA - default=true) MaxUnavailableStatefulSet=true|false (BETA - default=true) MemoryQoS=true|false (BETA - default=true) MutablePVNodeAffinity=true|false (ALPHA - default=false) MutablePodResourcesForSuspendedJobs=true|false (BETA - default=true) MutableSchedulingDirectivesForSuspendedJobs=true|false (BETA - default=true) NFTablesNetlink=true|false (BETA - default=true) NativeHistograms=true|false (BETA - default=true) NodeControllerLeaseCircuitBreaker=true|false (BETA - default=true) NodeLifecycleConditions=true|false (ALPHA - default=false) NominatedNodeNameForExpectation=true|false (BETA - default=true) OpenAPIEnums=true|false (BETA - default=true) OpportunisticBatching=true|false (BETA - default=true) PersistentVolumeClaimUnusedSinceTime=true|false (BETA - default=true) PodAndContainerStatsFromCRI=true|false (BETA - default=false) PodDeletionCost=true|false (BETA - default=true) PodGroupPreemptionPolicy=true|false (ALPHA - default=false) PodLevelResourceManagers=true|false (BETA - default=false) PodLevelResources=true|false (BETA - default=true) PodLevelResourcesFixDefaulting=true|false (BETA - default=true) PodLevelResourcesFixKubeletQOSClass=true|false (BETA - default=true) PodLogsQuerySplitStreams=true|false (ALPHA - default=false) PodTopologyLabelsAdmission=true|false (BETA - default=true) PodsAPI=true|false (BETA - default=true) PortForwardWebsockets=true|false (BETA - default=true) QOSReserved=true|false (ALPHA - default=false) ReduceDefaultCrashLoopBackOffDecay=true|false (ALPHA - default=false) ReloadKubeletClientCAFile=true|false (BETA - default=true) ReloadKubeletServerCertificateFile=true|false (BETA - default=true) RemoteRequestHeaderUID=true|false (BETA - default=true) ResourceHealthStatus=true|false (BETA - default=true) ResourceHealthStatusMessage=true|false (BETA - default=true) RestartAllContainersOnContainerExits=true|false (BETA - default=true) RotateKubeletServerCertificate=true|false (BETA - default=true) RuntimeClassInImageCriApi=true|false (ALPHA - default=false) SchedulerAsyncAPICalls=true|false (BETA - default=false) SchedulerAsyncPreemption=true|false (BETA - default=true) SchedulerPopFromBackoffQ=true|false (BETA - default=true) SchedulerPreQueueingHints=true|false (ALPHA - default=false) ServiceAccountNodeAudienceRestriction=true|false (BETA - default=true) ShardedListAndWatch=true|false (ALPHA - default=false) SizeBasedListCostEstimate=true|false (BETA - default=true) StaleControllerConsistencyDaemonSet=true|false (BETA - default=true) StaleControllerConsistencyHPA=true|false (BETA - default=true) StaleControllerConsistencyJob=true|false (BETA - default=true) StaleControllerConsistencyReplicaSet=true|false (BETA - default=true) StaleControllerConsistencyStatefulSet=true|false (BETA - default=true) StatefulSetRecreateStrategy=true|false (ALPHA - default=false) StatefulSetSemanticRevisionComparison=true|false (BETA - default=true) StorageCapacityScoring=true|false (BETA - default=true) StorageVersionAPI=true|false (ALPHA - default=false) StorageVersionHash=true|false (BETA - default=true) StrictIPCIDRValidation=true|false (BETA - default=true) StructuredAuthenticationConfigurationEgressSelector=true|false (BETA - default=true) StructuredAuthenticationConfigurationJWKSMetrics=true|false (BETA - default=true) TaintTolerationComparisonOperators=true|false (ALPHA - default=false) TokenRequestServiceAccountUIDValidation=true|false (BETA - default=true) TopologyAwareWorkloadScheduling=true|false (ALPHA - default=false) TopologyManagerPolicyAlphaOptions=true|false (ALPHA - default=false) TopologyManagerPolicyBetaOptions=true|false (BETA - default=true) TranslateStreamCloseWebsocketRequests=true|false (BETA - default=true) UnauthenticatedHTTP2DOSMitigation=true|false (BETA - default=true) UnknownVersionInteroperabilityProxy=true|false (BETA - default=true) UnlockWhileProcessingFIFO=true|false (BETA - default=true) UserNamespacesHostNetworkSupport=true|false (ALPHA - default=false) VolumeBindMountOptions=true|false (ALPHA - default=false) VolumeLimitScaling=true|false (BETA - default=true) WatchList=true|false (BETA - default=true) WatchListClient=true|false (BETA - default=true) WatchListCompression=true|false (BETA - default=true) WebhookRoundTripLoadBalancing=true|false (BETA - default=true) WindowsCPUAndMemoryAffinity=true|false (ALPHA - default=false) WindowsGracefulNodeShutdown=true|false (BETA - default=true) WorkloadWithJob=true|false (ALPHA - default=false) This parameter is ignored if a config file is specified by --config.
--global_housekeeping_interval=1m0s
Interval between global housekeepings
--healthz-bind-address=0.0.0.0:10256
The IP address and port for the health check server to serve on, defaulting to "0.0.0.0:10256". This parameter is ignored if a config file is specified by --config.
--healthz-port=10256
The port to bind the health check server. Use 0 to disable.
--hostname-override=""
If non-empty, will be used as the name of the Node that kube-proxy is running on. If unset, the node name is assumed to be the same as the node's hostname.
--housekeeping_interval=10s
Interval between container housekeepings
--init-only=false
If true, perform any initialization steps that must be done with full root privileges, and then exit. After doing this, you can run kube-proxy again with only the CAP_NET_ADMIN capability.
--initial_splay_factor=1
Factor for the initial splay b/w the container housekeepings, default is 1.0. If negative value is passed, the value will be reset to default
--iptables-localhost-nodeports=true
If false, kube-proxy will disable the legacy behavior of allowing NodePort services to be accessed via localhost. (Applies only to iptables mode and IPv4; localhost NodePorts are never allowed with other proxy modes or with IPv6.)
--iptables-masquerade-bit=14
If using the iptables or ipvs proxy mode, 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 period between iptables rule resyncs (e.g. '5s', '1m', '2h22m'). A value of 0 means every Service or EndpointSlice change will result in an immediate iptables resync.
--iptables-sync-period=30s
An interval (e.g. '5s', '1m', '2h22m') indicating how frequently various re-synchronizing and cleanup operations are performed. Must be greater than 0.
--ipvs-exclude-cidrs=[]
A comma-separated list of CIDRs which the ipvs proxier should not touch when cleaning up IPVS rules.
--ipvs-min-sync-period=1s
The minimum period between IPVS rule resyncs (e.g. '5s', '1m', '2h22m'). A value of 0 means every Service or EndpointSlice change will result in an immediate IPVS resync.
--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
An interval (e.g. '5s', '1m', '2h22m') indicating how frequently various re-synchronizing and cleanup operations are performed. 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').
--jitter_factor=1
Factor for the jitters after the initial splay b/w the container housekeepings, default is 1.0. If negative value is passed, the value will be reset to default
--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
--log-text-info-buffer-size=0
[Alpha] In text format with split output streams, the info messages can be buffered for a while to increase performance. The default value of zero bytes disables buffering. The size can be specified as number of bytes (512), multiples of 1000 (1K), multiples of 1024 (2Ki), or powers of those (3M, 4G, 5Mi, 6Gi). Enable the LoggingAlphaOptions feature gate to use this.
--log-text-split-stream=false
[Alpha] In text format, write error messages to stderr and info messages to stdout. The default is to write a single stream to stdout. Enable the LoggingAlphaOptions feature gate to use this.
--log_cadvisor_usage=false
Whether to log the usage of the cAdvisor container
--logging-format="text"
Sets the log format. Permitted formats: "text".
--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.
--masquerade-all=false
SNAT all traffic sent via Service cluster IPs. This may be required with some CNI plugins. Only supported on Linux.
--master=""
The address of the Kubernetes API server (overrides any value in kubeconfig)
--max_housekeeping_interval=1m0s
Largest interval to allow between container housekeepings
--metrics-bind-address=127.0.0.1:10249
The IP address and port for the metrics server to serve on, defaulting to "127.0.0.1:10249". (Set to "0.0.0.0:10249" / "[::]:10249" to bind on all interfaces.) This parameter is ignored if a config file is specified by --config.
--metrics-port=10249
The port to bind the metrics server. Use 0 to disable.
--nodeport-addresses=[]
A list of CIDR ranges and/or keywords that expand to CIDR ranges. NodePort services are only accessible on node IPs covered by the list. Supported keywords: 'primary' (the Node object's primary IPv4 and/or IPv6 addresses), 'localhost' (127.0.0.0/8 and ::1/128), and 'all' (0.0.0.0/0 and ::/0). Any combination of valid keywords and CIDRS may be included in the list. Serving NodePorts on loopback IPs is only supported in iptables mode (IPv4 only, see --iptables-localhost-nodeports), and, only for TCP, in nftables mode when the KubeProxyNFTablesLocalhostNodePorts feature gate is enabled and the list explicitly includes loopback (e.g. 'localhost'). If unset, this defaults to 'all' in iptables and ipvs mode, and to 'primary' in nftables mode. This parameter is ignored if a config file is specified by --config.
--oom-score-adj=-999
The oom-score-adj value for kube-proxy process. Values must be within the range [-1000, 1000]. This parameter is ignored if a config file is specified by --config.
--pod-bridge-interface=""
A bridge interface name. When --detect-local-mode is set to BridgeInterface, kube-proxy will consider traffic to be local if it originates from this bridge.
--pod-interface-name-prefix=""
An interface name prefix. When --detect-local-mode is set to InterfaceNamePrefix, kube-proxy will consider traffic to be local if it originates from any interface whose name begins with this prefix.
--profiling=false
If true enables profiling via web interface on /debug/pprof handler. This parameter is ignored if a config file is specified by --config.
--proxy-mode=
Which proxy mode to use: on Linux this can be 'iptables' (default), 'ipvs', or 'nftables'. On Windows the only supported value is 'kernelspace'. This parameter is ignored if a config file is specified by --config.
--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)
--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. This parameter is ignored if a config file is specified by --config.
--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
--update_machine_info_interval=5m0s
Interval between machine info updates.
-v, --v=0
number for the log level verbosity
--version=false
--version, --version=raw prints version information and quits; --version=vX.Y.Z... sets the reported version
--vmodule=
comma-separated list of pattern=N settings for file-filtered logging (only works for text log format)
--write-config-to=""
If set, write the default configuration values to this file and exit.
HISTORY
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!