KUBERNETES(1)(kubernetes)
KUBERNETES (1) (kubernetes) โ the kube-proxy glow-up โจ
okay bestie, grab your iced coffee because we're getting into kube-proxy, the network baddie of the Kubernetes universe ๐
author energy: Eric Paris, Jan 2015 (yes she's been iconic since 2015, no cap) ๐
๐ธ NAME ๐ธ
kube-proxy โ literally the whole point of this page ๐ฆ
โจ SYNOPSIS โจ
kube-proxy [OPTIONS]
that's it. that's the vibe. just run her with some options and let her cook ๐ฅ
๐ DESCRIPTION ๐
So. The Kubernetes network proxy runs on every single node โ like, every node, she's not skipping anyone ๐. What she does is take the services as defined in the Kubernetes API and reflect them on each node, and then she can do the simple stuff: TCP, UDP, and SCTP stream forwarding, or the round-robin version of TCP, UDP, and SCTP forwarding across a whole set of backends ๐.
Service cluster IPs and ports are currently found through Docker-links-compatible environment variables that specify the ports opened by the service proxy. There's also an optional addon that hands out cluster DNS for these cluster IPs ๐.
And here's the thing โ the user has to create a service with the apiserver API to configure the proxy. No service, no config, that's the deal fr fr ๐.
๐ OPTIONS ๐
okay this is the long part, but every single flag matters so we're doing all of them, no skips โจ
--allow_dynamic_housekeeping=trueโ Whether to allow the housekeeping interval to be dynamic. She can vibe on her own schedule ๐ฆ--application_metrics_count_limit=100โ Max number of application metrics to store (per container). Hoard responsibly ๐--bind-address=0.0.0.0โ Overrides kube-proxy's idea of what its node's primary IP is. Important lore: 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. Dramatic queen energy, but make it configurable ๐--boot_id_file="/proc/sys/kernel/random/boot_id"โ Comma-separated list of files to check for boot-id. She uses the first one that exists โ first come, first served, periodt ๐--cleanup=falseโ If true, cleanup iptables and ipvs rules and exit. One last sweep and she's out the door ๐งนโจ--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-modeis set toClusterCIDR, 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. Zero is not the move bestie ๐ โโ๏ธ--conntrack-max-per-core=32768โ Maximum number of NAT connections to track per CPU core (0to leave the limit as-is and ignoreconntrack-min) ๐งฎ--conntrack-min=131072โ Minimum number of conntrack entries to allocate, regardless ofconntrack-max-per-core(setconntrack-max-per-core=0to leave the limit as-is) ๐--conntrack-tcp-be-liberal=falseโ Enable liberal mode for tracking TCP packets by settingnf_conntrack_tcp_be_liberalto 1. She's being liberal, let her live ๐ฆ--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 (0to leave as-is) ๐--conntrack-udp-timeout=0sโ Idle timeout for UNREPLIED UDP connections (0to leave as-is) ๐ซถ--conntrack-udp-timeout-stream=0sโ Idle timeout for ASSURED UDP connections (0to 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 useenv_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 โ she waits forever, lowkey devoted ๐ญ๐--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.defaultis 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.defaultis applied to all non-specified event types ๐ข--feature-gates=โ bestie, gather round, this is THE mega-option ๐ it takes a whole set ofkey=valuepairs that describe feature gates for alpha/experimental features. Here are all the options, every single one, no skips, no cap:APIResponseCompression=true|falseโ BETA, defaulttrueโจ on by defaultAPIServerIdentity=true|falseโ BETA, defaulttrue๐APIServerWebhookAuthenticationToken=true|falseโ ALPHA, defaultfalse๐ซถ you gotta opt inAPIServingWithRoutine=true|falseโ ALPHA, defaultfalse๐ฆAllAlpha=true|falseโ ALPHA, defaultfalse๐ the classic "turn on every alpha" moveAllBeta=true|falseโ BETA, defaultfalse๐ธAllowParsingUserUIDFromCertAuth=true|falseโ BETA, defaulttrueโจAllowUnsafeMalformedObjectDeletion=true|falseโ BETA, defaulttrue๐ญ read that name againAtomicFIFO=true|falseโ BETA, defaulttrue๐ซAtomicWriteVolumeUserFields=true|falseโ ALPHA, defaultfalse๐AuthorizePodWebsocketUpgradeCreatePermission=true|falseโ BETA, defaulttrue๐CBORServingAndStorage=true|falseโ ALPHA, defaultfalse๐ฆCPUManagerPolicyAlphaOptions=true|falseโ ALPHA, defaultfalse๐CPUManagerPolicyBetaOptions=true|falseโ BETA, defaulttrue๐CRDObservedGenerationTracking=true|falseโ BETA, defaulttrueโจCRIListStreaming=true|falseโ ALPHA, defaultfalse๐CSIVolumeHealth=true|falseโ ALPHA, defaultfalse๐ซถClearingNominatedNodeNameAfterBinding=true|falseโ BETA, defaulttrue๐ClientsAllowCARotation=true|falseโ BETA, defaulttrueโจClientsAllowCBOR=true|falseโ ALPHA, defaultfalse๐ฆClientsAllowTLSCacheGC=true|falseโ BETA, defaulttrue๐ClientsPreferCBOR=true|falseโ ALPHA, defaultfalse๐CloudControllerManagerWatchBasedRoutesReconciliation=true|falseโ ALPHA, defaultfalse๐ญ this name is a whole paragraphCloudControllerManagerWebhook=true|falseโ ALPHA, defaultfalse๐ธComponentFlagz=true|falseโ BETA, defaulttrue๐ComponentStatusz=true|falseโ BETA, defaulttrueโจCompositePodGroup=true|falseโ ALPHA, defaultfalse๐ซถConcurrentWatchObjectDecode=true|falseโ BETA, defaulttrue๐ฅConsistentListFromCacheSkipTimeoutFallback=true|falseโ ALPHA, defaultfalse๐ฆConstrainedImpersonation=true|falseโ BETA, defaulttrue๐ContainerCheckpoint=true|falseโ BETA, defaulttrueโจContainerRestartRules=true|falseโ BETA, defaulttrue๐ContainerStopSignals=true|falseโ ALPHA, defaultfalse๐ContextualLogging=true|falseโ BETA, defaulttrue๐ธControllerManagerReleaseLeaderElectionLockOnExit=true|falseโ ALPHA, defaultfalse๐ the longest name in the buildingCoordinatedLeaderElection=true|falseโ BETA, defaultfalse๐ note thefalse, she's not on yetCrossNamespaceVolumeDataSource=true|falseโ ALPHA, defaultfalse๐ฆDRAConsumableCapacity=true|falseโ BETA, defaulttrueโจDRADerivedAttributes=true|falseโ ALPHA, defaultfalse๐ซถDRADeviceBindingConditions=true|falseโ BETA, defaulttrue๐DRADeviceCompatibilityGroups=true|falseโ ALPHA, defaultfalse๐DRAFractionalCapacityRange=true|falseโ BETA, defaultfalse, orDRAFractionalCapacityRange=true|falseBETA, defaulttrueif--min-compatibility-version>=1.37๐ she switches sides depending on your version, iconicDRAListTypeAttributes=true|falseโ ALPHA, defaultfalse๐ฆDRANodeAllocatableResources=true|falseโ ALPHA, defaultfalse๐DRAOptionalNodeOperations=true|falseโ ALPHA, defaultfalse๐ธDRAPartitionableDevices=true|falseโ BETA, defaulttrueโจDRAPartitionableDevicesType=true|falseโ ALPHA, defaultfalse๐DRAResourceClaimGranularStatusAuthorization=true|falseโ BETA, defaulttrue๐DRAResourcePoolStatus=true|falseโ ALPHA, defaultfalse๐ซถDRASchedulerFilterTimeout=true|falseโ BETA, defaulttrue๐DRAWorkloadResourceClaims=true|falseโ BETA, defaultfalse๐ off for nowDeclarativeValidationBeta=true|falseโ BETA, defaulttrueโจDefaultPodSysctls=true|falseโ ALPHA, defaultfalse๐ฆDeploymentReplicaSetTerminatingReplicas=true|falseโ BETA, defaulttrue๐DetectCacheInconsistency=true|falseโ BETA, defaulttrue๐ฅEmptyDirVolumeMode=true|falseโ ALPHA, defaultfalse๐ธEnvFiles=true|falseโ BETA, defaulttrueโจEtcdRangeStream=true|falseโ BETA, defaulttrue๐EventedPLEG=true|falseโ ALPHA, defaultfalse๐ซถEvictionRequestAPI=true|falseโ ALPHA, defaultfalse๐ExcludeAdmissionWebhookVirtualResources=true|falseโ BETA, defaulttrue๐ExtendWebSocketsToKubelet=true|falseโ BETA, defaulttrueโจGRPCContainerProbeTLS=true|falseโ ALPHA, defaultfalse๐ฆGenericWorkload=true|falseโ BETA, defaultfalse๐GracefulNodeShutdown=true|falseโ BETA, defaulttrue๐GracefulNodeShutdownBasedOnPodPriority=true|falseโ BETA, defaulttrue๐ธH2CContainerProbe=true|falseโ ALPHA, defaultfalse๐HPAGeneration=true|falseโ BETA, defaulttrueโจHPAOptimizedSelectorStore=true|falseโ BETA, defaulttrue๐HPAScaleToZero=true|falseโ BETA, defaulttrue๐ฅHugepageAwareEviction=true|falseโ BETA, defaulttrue๐ImageVolumeWithDigest=true|falseโ ALPHA, defaultfalse๐ฆInOrderInformersBatchProcess=true|falseโ BETA, defaulttrue๐InPlacePodLevelResourcesVerticalScaling=true|falseโ BETA, defaulttrueโจInPlacePodVerticalScalingExclusiveCPUs=true|falseโ ALPHA, defaultfalse๐ซถInPlacePodVerticalScalingExclusiveMemory=true|falseโ ALPHA, defaultfalse๐ธInPlacePodVerticalScalingMemoryBackedVolumes=true|falseโ ALPHA, defaultfalse๐InPlacePodVerticalScalingSchedulerPreemption=true|falseโ ALPHA, defaultfalse๐ฆInterPodAffinityHostnameFastPath=true|falseโ ALPHA, defaultfalse๐KubeProxyNFTablesLocalhostNodePorts=true|falseโ ALPHA, defaultfalse๐KubeletAllocatedPodsEndpoint=true|falseโ ALPHA, defaultfalse๐KubeletCrashLoopBackOffMax=true|falseโ BETA, defaulttrueโจKubeletEnsureSecretPulledImages=true|falseโ BETA, defaulttrue๐KubeletInUserNamespace=true|falseโ BETA, defaulttrue๐KubeletSeparateDiskGC=true|falseโ BETA, defaulttrue๐KubeletServiceAccountTokenForCredentialProviders=true|falseโ BETA, defaulttrue๐ธListFromCacheSnapshot=true|falseโ BETA, defaulttrueโจLocalStorageCapacityIsolationFSQuotaMonitoring=true|falseโ BETA, defaultfalse๐ฆ she's beta but she's offLoggingAlphaOptions=true|falseโ ALPHA, defaultfalse๐ซถLoggingBetaOptions=true|falseโ BETA, defaulttrue๐ManifestBasedAdmissionControlConfig=true|falseโ BETA, defaulttrueโจMatchLabelKeysInPodTopologySpread=true|falseโ BETA, defaulttrue๐ฅMatchLabelKeysInPodTopologySpreadSelectorMerge=true|falseโ BETA, defaulttrue๐MaxUnavailableStatefulSet=true|falseโ BETA, defaulttrue๐MemoryQoS=true|falseโ BETA, defaulttrue๐MutablePVNodeAffinity=true|falseโ ALPHA, defaultfalse๐MutablePodResourcesForSuspendedJobs=true|falseโ BETA, defaulttrueโจMutableSchedulingDirectivesForSuspendedJobs=true|falseโ BETA, defaulttrue๐ธNFTablesNetlink=true|falseโ BETA, defaulttrue๐NativeHistograms=true|falseโ BETA, defaulttrue๐ฆNodeControllerLeaseCircuitBreaker=true|falseโ BETA, defaulttrueโจNodeLifecycleConditions=true|falseโ ALPHA, defaultfalse๐NominatedNodeNameForExpectation=true|falseโ BETA, defaulttrue๐OpenAPIEnums=true|falseโ BETA, defaulttrue๐OpportunisticBatching=true|falseโ BETA, defaulttrue๐ฅPersistentVolumeClaimUnusedSinceTime=true|falseโ BETA, defaulttrue๐PodAndContainerStatsFromCRI=true|falseโ BETA, defaultfalse๐ธ off by default, notedPodDeletionCost=true|falseโ BETA, defaulttrueโจPodGroupPreemptionPolicy=true|falseโ ALPHA, defaultfalse๐ฆPodLevelResourceManagers=true|falseโ BETA, defaultfalse๐ซถPodLevelResources=true|falseโ BETA, defaulttrue๐PodLevelResourcesFixDefaulting=true|falseโ BETA, defaulttrue๐PodLevelResourcesFixKubeletQOSClass=true|falseโ BETA, defaulttrue๐PodLogsQuerySplitStreams=true|falseโ ALPHA, defaultfalse๐PodTopologyLabelsAdmission=true|falseโ BETA, defaulttrueโจPodsAPI=true|falseโ BETA, defaulttrue๐ฅPortForwardWebsockets=true|falseโ BETA, defaulttrue๐QOSReserved=true|falseโ ALPHA, defaultfalse๐ธReduceDefaultCrashLoopBackOffDecay=true|falseโ ALPHA, defaultfalse๐ReloadKubeletClientCAFile=true|falseโ BETA, defaulttrueโจReloadKubeletServerCertificateFile=true|falseโ BETA, defaulttrue๐RemoteRequestHeaderUID=true|falseโ BETA, defaulttrue๐ฆResourceHealthStatus=true|falseโ BETA, defaulttrue๐ResourceHealthStatusMessage=true|falseโ BETA, defaulttrue๐RestartAllContainersOnContainerExits=true|falseโ BETA, defaulttrue๐ฅRotateKubeletServerCertificate=true|falseโ BETA, defaulttrue๐RuntimeClassInImageCriApi=true|falseโ ALPHA, defaultfalse๐SchedulerAsyncAPICalls=true|falseโ BETA, defaultfalse๐ธ beta but chillin' offSchedulerAsyncPreemption=true|falseโ BETA, defaulttrueโจSchedulerPopFromBackoffQ=true|falseโ BETA, defaulttrue๐SchedulerPreQueueingHints=true|falseโ ALPHA, defaultfalse๐ซถServiceAccountNodeAudienceRestriction=true|falseโ BETA, defaulttrue๐ShardedListAndWatch=true|falseโ ALPHA, defaultfalse๐ฆSizeBasedListCostEstimate=true|falseโ BETA, defaulttrue๐StaleControllerConsistencyDaemonSet=true|falseโ BETA, defaulttrueโจStaleControllerConsistencyHPA=true|falseโ BETA, defaulttrue๐ฅStaleControllerConsistencyJob=true|falseโ BETA, defaulttrue๐StaleControllerConsistencyReplicaSet=true|falseโ BETA, defaulttrue๐ธStaleControllerConsistencyStatefulSet=true|falseโ BETA, defaulttrue๐StatefulSetRecreateStrategy=true|falseโ ALPHA, defaultfalse๐StatefulSetSemanticRevisionComparison=true|falseโ BETA, defaulttrueโจStorageCapacityScoring=true|falseโ BETA, defaulttrue๐StorageVersionAPI=true|falseโ ALPHA, defaultfalse๐StorageVersionHash=true|falseโ BETA, defaulttrue๐StrictIPCIDRValidation=true|falseโ BETA, defaulttrue๐StructuredAuthenticationConfigurationEgressSelector=true|falseโ BETA, defaulttrueโจStructuredAuthenticationConfigurationJWKSMetrics=true|falseโ BETA, defaulttrue๐TaintTolerationComparisonOperators=true|falseโ ALPHA, defaultfalse๐ฆTokenRequestServiceAccountUIDValidation=true|falseโ BETA, defaulttrue๐ฅTopologyAwareWorkloadScheduling=true|falseโ ALPHA, defaultfalse๐ธTopologyManagerPolicyAlphaOptions=true|falseโ ALPHA, defaultfalse๐TopologyManagerPolicyBetaOptions=true|falseโ BETA, defaulttrueโจTranslateStreamCloseWebsocketRequests=true|falseโ BETA, defaulttrue๐UnauthenticatedHTTP2DOSMitigation=true|falseโ BETA, defaulttrue๐UnknownVersionInteroperabilityProxy=true|falseโ BETA, defaulttrue๐UnlockWhileProcessingFIFO=true|falseโ BETA, defaulttrue๐UserNamespacesHostNetworkSupport=true|falseโ ALPHA, defaultfalse๐ซถVolumeBindMountOptions=true|falseโ ALPHA, defaultfalse๐ฆVolumeLimitScaling=true|falseโ BETA, defaulttrueโจWatchList=true|falseโ BETA, defaulttrue๐ฅWatchListClient=true|falseโ BETA, defaulttrue๐ธWatchListCompression=true|falseโ BETA, defaulttrue๐WebhookRoundTripLoadBalancing=true|falseโ BETA, defaulttrue๐WindowsCPUAndMemoryAffinity=true|falseโ ALPHA, defaultfalse๐WindowsGracefulNodeShutdown=true|falseโ BETA, defaulttrue๐WorkloadWithJob=true|falseโ ALPHA, defaultfalse๐ฆ
Heads up bestie: this parameter is ignored if a config file is specified by--config. ๐ so if you're passing--config, don't expect this one to do anything.
--global_housekeeping_interval=1m0sโ the interval between global housekeepings ๐งนโจ your little tidy-up timer, defaulting to1m0s.--healthz-bind-address=0.0.0.0:10256โ the IP address and port for the health check server to serve on, defaulting to0.0.0.0:10256๐ฉบ๐ซถ. And same deal as above: this parameter is ignored if a config file is specified by--config.--healthz-port=10256โ the port the health-check server parks itself on. Slide a0in there to just turn the whole thing off. ๐ฉบ--hostname-override=""โ if you actually put something here, it becomes the name of the Node thatkube-proxyis running on. Leave it empty and the node name is just assumed to be the node's hostname. no cap. ๐ท๏ธ--housekeeping_interval=10sโ the interval between container housekeepings. yes bestie, even containers need their lil tidy-up sessions. ๐งน--init-only=falseโ set this to true and it does all the initialization steps that literally require full root privileges, and then dips. after that you can runkube-proxyagain holding only theCAP_NET_ADMINcapability. main character privilege-dropping arc. ๐--initial_splay_factor=1โ factor for the initial splay between the container housekeepings, default is1.0. pass a negative value and it gets reset back to default. rude, but okay. ๐--iptables-localhost-nodeports=trueโ set it to false andkube-proxydisables the legacy behavior of letting NodePort services be reached via localhost. (only applies to iptables mode and IPv4, btw โ localhost NodePorts are never allowed with other proxy modes or with IPv6, periodt.) ๐ซ--iptables-masquerade-bit=14โ if you're in iptables or ipvs proxy mode, this is the bit of the fwmark space used to mark packets that need SNAT. must land inside the range[0, 31]. no vibes outside that range, sorry. ๐ข--iptables-min-sync-period=1sโ the minimum period between iptables rule resyncs (stuff like'5s','1m','2h22m'). a value of0means every single Service or EndpointSlice change triggers an immediate iptables resync. instant. no chill. โก--iptables-sync-period=30sโ an interval (like'5s','1m','2h22m') telling you how often all the re-synchronizing and cleanup operations happen. must be greater than0. ๐--ipvs-exclude-cidrs=[]โ a comma-separated list of CIDRs that the ipvs proxier should absolutely not touch when it's cleaning up IPVS rules. hands off, bestie. ๐ โโ๏ธ--ipvs-min-sync-period=1sโ the minimum period between IPVS rule resyncs (e.g.'5s','1m','2h22m'). a value of0means every Service or EndpointSlice change = an immediate IPVS resync. ๐--ipvs-scheduler=""โ the ipvs scheduler type to use when proxy mode is ipvs. ๐๏ธ--ipvs-strict-arp=falseโ turns on strict ARP by settingarp_ignoreto1andarp_announceto2. ๐--ipvs-sync-period=30sโ an interval (like'5s','1m','2h22m') for how frequently the various re-synchronizing and cleanup operations run. must be greater than0. โฐ--ipvs-tcp-timeout=0sโ the timeout for idle IPVS TCP connections,0to leave it as-is (e.g.'5s','1m','2h22m'). ๐ด--ipvs-tcpfin-timeout=0sโ the timeout for IPVS TCP connections after they receive a FIN packet,0to leave it as-is (e.g.'5s','1m','2h22m'). bye felicia ๐--ipvs-udp-timeout=0sโ the timeout for IPVS UDP packets,0to leave it as-is (e.g.'5s','1m','2h22m'). ๐ฆ--jitter_factor=1โ factor for the jitters after the initial splay between the container housekeepings, default is1.0. negative value? reset to default. ๐ซง--kube-api-burst=10โ the burst to use while talking with the kubernetes apiserver. ๐ฅ--kube-api-content-type="application/vnd.kubernetes.protobuf"โ the content type of requests sent to the apiserver. ๐จ--kube-api-qps=5โ the QPS to use while talking with the kubernetes apiserver. ๐โโ๏ธ--kubeconfig=""โ path to the kubeconfig file with authorization info (and yeah, the master location can be overridden by the master flag). ๐๏ธ--log-flush-frequency=5sโ the maximum number of seconds between log flushes. ๐ฝ (jk it's just logs)--log-text-info-buffer-size=0โ [Alpha] in text format with split output streams, info messages can be buffered for a bit to boost performance. the default value of zero bytes disables buffering. size can be written as a number of bytes (512), multiples of 1000 (1K), multiples of 1024 (2Ki), or powers of those (3M,4G,5Mi,6Gi). you gotta enable theLoggingAlphaOptionsfeature gate to use this. ๐งช--log-text-split-stream=falseโ [Alpha] in text format, writes error messages to stderr and info messages to stdout. the default is to write a single stream to stdout. enable theLoggingAlphaOptionsfeature 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". that's the whole list, bestie. ๐--machine_id_file="/etc/machine-id,/var/lib/dbus/machine-id"โ a comma-separated list of files to check for machine-id. uses the first one that actually exists. ๐--masquerade-all=falseโ SNAT all traffic sent via Service cluster IPs. some CNI plugins lowkey require this. only supported on Linux. ๐ง--master=""โ the address of the Kubernetes API server (overrides any value in kubeconfig). ๐ฏ--max_housekeeping_interval=1m0sโ the largest interval allowed between container housekeepings. ๐ฐ๏ธ--metrics-bind-address=127.0.0.1:10249โ the IP address and port the metrics server serves on, defaulting to"127.0.0.1:10249". (set it 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. use0to 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 this list. supported keywords:'primary'(the Node object's primary IPv4 and/or IPv6 addresses),'localhost'(127.0.0.0/8and::1/128), and'all'(0.0.0.0/0and::/0). any combination of valid keywords and CIDRs can go 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 theKubeProxyNFTablesLocalhostNodePortsfeature gate is enabled and the list explicitly includes loopback (e.g.'localhost'). if unset, it 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 the 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-modeis set toBridgeInterface, kube-proxy considers traffic local if it originates from this bridge. ๐--pod-interface-name-prefix=""โ an interface name prefix. when--detect-local-modeis set toInterfaceNamePrefix, kube-proxy considers traffic local if it originates from any interface whose name starts with this prefix. ๐ช--profiling=falseโ set true to enable profiling via the web interface on the/debug/pprofhandler. 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 (thecontainer_referenced_bytesmetric), i.e. the number of measurement cycles after which referenced bytes get cleared. set it to0and 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. format is., e.g.:'1.16'. the whole point of this format is making sure you get the chance to notice if the next release hides additional metrics, instead of being jumpscared when they're 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 get buffered for this duration, then 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 a secure connection with the 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=rawprints version information and quits;--version=vX.Y.Z...sets the reported version. ๐ท๏ธ--vmodule=โ comma-separated list ofpattern=Nsettings for file-filtered logging (only works for text log format). ๐งฉ--write-config-to=""โ if set, writes the default configuration values to this file and exits. โ๏ธ
๐ 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! โจ
okay bestie that's literally the whole thing, you ate that ๐ ๐ซถ
This page is from the Manuals section, it's the User manual, it's titled KUBERNETES(1)(kubernetes), and the version and date are chilling in the footer โ so go peep the source, mwah ๐
๐ฆ where this page comes from
- arch rolling: kube-proxy 1.37.2-1 ยท Apache-2.0
- fedora 43: kubernetes1.37-systemd 1.37.0-3.fc43
- fedora 43: kubernetes1.37-systemd 1.37.1-1.fc43 ยท Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-3-Clause-HP AND CC-BY-4.0 AND ISC AND MIT AND MPL-2.0
- fedora 44: kubernetes1.37-systemd 1.37.0-3.fc44
- fedora 44: kubernetes1.37-systemd 1.37.1-1.fc44 ยท Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-3-Clause-HP AND CC-BY-4.0 AND ISC AND MIT AND MPL-2.0
- nixpkgs unstable: kubernetes 1.37.2
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms