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-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. Zero is not the move bestie ๐Ÿ™…โ€โ™€๏ธ
  • --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. 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 (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 โ€” 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. 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= โ€” bestie, gather round, this is THE mega-option ๐Ÿ’… it takes a whole set of key=value pairs that describe feature gates for alpha/experimental features. Here are all the options, every single one, no skips, no cap:
    • APIResponseCompression=true|false โ€” BETA, default true โœจ on by default
    • APIServerIdentity=true|false โ€” BETA, default true ๐Ÿ’…
    • APIServerWebhookAuthenticationToken=true|false โ€” ALPHA, default false ๐Ÿซถ you gotta opt in
    • APIServingWithRoutine=true|false โ€” ALPHA, default false ๐Ÿฆ‹
    • AllAlpha=true|false โ€” ALPHA, default false ๐ŸŽ€ the classic "turn on every alpha" move
    • AllBeta=true|false โ€” BETA, default false ๐ŸŒธ
    • AllowParsingUserUIDFromCertAuth=true|false โ€” BETA, default true โœจ
    • AllowUnsafeMalformedObjectDeletion=true|false โ€” BETA, default true ๐Ÿ˜ญ read that name again
    • 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 ๐Ÿ˜ญ this name is a whole paragraph
    • 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 ๐Ÿ’€ the longest name in the building
    • CoordinatedLeaderElection=true|false โ€” BETA, default false ๐Ÿ™ˆ note the false, she's not on yet
    • 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 ๐Ÿ‘€ she switches sides depending on your version, iconic
    • 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 ๐ŸŽ€ off for now
    • 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 ๐Ÿฆ‹ she's beta but she's off
    • 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 ๐ŸŒธ off by default, noted
    • 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 ๐ŸŒธ beta but chillin' off
    • 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 ๐Ÿฆ‹
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 to 1m0s.
  • --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 ๐Ÿฉบ๐Ÿซถ. 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 a 0 in there to just turn the whole thing off. ๐Ÿฉบ
  • --hostname-override="" โ€” if you actually put something here, it becomes the name of the Node that kube-proxy is 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 run kube-proxy again holding only the CAP_NET_ADMIN capability. main character privilege-dropping arc. ๐Ÿ‘‘
  • --initial_splay_factor=1 โ€” factor for the initial splay between the container housekeepings, default is 1.0. pass a negative value and it gets reset back to default. rude, but okay. ๐ŸŽ€
  • --iptables-localhost-nodeports=true โ€” set it to false and kube-proxy disables 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 of 0 means 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 than 0. ๐Ÿ“…
  • --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 of 0 means 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 setting arp_ignore to 1 and arp_announce to 2. ๐Ÿ’…
  • --ipvs-sync-period=30s โ€” an interval (like '5s', '1m', '2h22m') for how frequently the various re-synchronizing and cleanup operations run. must be greater than 0. โฐ
  • --ipvs-tcp-timeout=0s โ€” the timeout for idle IPVS TCP connections, 0 to 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, 0 to leave it as-is (e.g. '5s', '1m', '2h22m'). bye felicia ๐Ÿ‘‹
  • --ipvs-udp-timeout=0s โ€” the timeout for IPVS UDP packets, 0 to 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 is 1.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 the LoggingAlphaOptions feature 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 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". 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. 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 this 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 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 the KubeProxyNFTablesLocalhostNodePorts feature 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-mode is set to BridgeInterface, kube-proxy considers traffic 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 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/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 (the container_referenced_bytes metric), i.e. the number of measurement cycles after which referenced bytes get cleared. set it to 0 and 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=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, 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