kube-proxy Configuration (v1alpha1)
Resource Types
KubeProxyConfiguration
KubeProxyConfiguration contains everything necessary to configure the Kubernetes proxy server.
Field | Description |
---|---|
apiVersion string | kubeproxy.config.k8s.io/v1alpha1 |
kind string | KubeProxyConfiguration |
featureGates [Required]map[string]bool | featureGates is a map of feature names to bools that enable or disable alpha/experimental features. |
bindAddress [Required]string | bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0 for all interfaces) |
healthzBindAddress [Required]string | healthzBindAddress is the IP address and port for the health check server to serve on, defaulting to 0.0.0.0:10256 |
metricsBindAddress [Required]string | metricsBindAddress is 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 for all interfaces) |
bindAddressHardFail [Required]bool | bindAddressHardFail, if true, kube-proxy will treat failure to bind to a port as fatal and exit |
enableProfiling [Required]bool | enableProfiling enables profiling via web interface on /debug/pprof handler. Profiling handlers will be handled by metrics server. |
clusterCIDR [Required]string | clusterCIDR is the CIDR range of the pods in the cluster. It is used to bridge traffic coming from outside of the cluster. If not provided, no off-cluster bridging will be performed. |
hostnameOverride [Required]string | hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname. |
clientConnection [Required]ClientConnectionConfiguration | clientConnection specifies the kubeconfig file and client connection settings for the proxy server to use when communicating with the apiserver. |
iptables [Required]KubeProxyIPTablesConfiguration | iptables contains iptables-related configuration options. |
ipvs [Required]KubeProxyIPVSConfiguration | ipvs contains ipvs-related configuration options. |
oomScoreAdj [Required]int32 | oomScoreAdj is the oom-score-adj value for kube-proxy process. Values must be within the range [-1000, 1000] |
mode [Required]ProxyMode | mode specifies which proxy mode to use. |
portRange [Required]string | portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen. |
conntrack [Required]KubeProxyConntrackConfiguration | conntrack contains conntrack-related configuration options. |
configSyncPeriod [Required]meta/v1.Duration | configSyncPeriod is how often configuration from the apiserver is refreshed. Must be greater than 0. |
nodePortAddresses [Required][]string | nodePortAddresses is the —nodeport-addresses value for kube-proxy process. Values must be valid IP blocks. These values are as a parameter to select the interfaces where nodeport works. In case someone would like to expose a service on localhost for local visit and some other interfaces for particular purpose, a list of IP blocks would do that. If set it to “127.0.0.0/8”, kube-proxy will only select the loopback interface for NodePort. If set it to a non-zero IP block, kube-proxy will filter that down to just the IPs that applied to the node. An empty string slice is meant to select all network interfaces. |
winkernel [Required]KubeProxyWinkernelConfiguration | winkernel contains winkernel-related configuration options. |
showHiddenMetricsForVersion [Required]string | ShowHiddenMetricsForVersion is the version for which you want to show hidden metrics. |
detectLocalMode [Required]LocalMode | DetectLocalMode determines mode to use for detecting local traffic, defaults to LocalModeClusterCIDR |
detectLocal [Required]DetectLocalConfiguration | DetectLocal contains optional configuration settings related to DetectLocalMode. |
DetectLocalConfiguration
Appears in:
DetectLocalConfiguration contains optional settings related to DetectLocalMode option
Field | Description |
---|---|
bridgeInterface [Required]string | BridgeInterface is a string argument which represents a single bridge interface name. Kube-proxy considers traffic as local if originating from this given bridge. This argument should be set if DetectLocalMode is set to LocalModeBridgeInterface. |
interfaceNamePrefix [Required]string | InterfaceNamePrefix is a string argument which represents a single interface prefix name. Kube-proxy considers traffic as local if originating from one or more interfaces which match the given prefix. This argument should be set if DetectLocalMode is set to LocalModeInterfaceNamePrefix. |
KubeProxyConntrackConfiguration
Appears in:
KubeProxyConntrackConfiguration contains conntrack settings for the Kubernetes proxy server.
Field | Description |
---|---|
maxPerCore [Required]int32 | maxPerCore is the maximum number of NAT connections to track per CPU core (0 to leave the limit as-is and ignore min). |
min [Required]int32 | min is the minimum value of connect-tracking records to allocate, regardless of conntrackMaxPerCore (set maxPerCore=0 to leave the limit as-is). |
tcpEstablishedTimeout [Required]meta/v1.Duration | tcpEstablishedTimeout is how long an idle TCP connection will be kept open (e.g. ‘2s’). Must be greater than 0 to set. |
tcpCloseWaitTimeout [Required]meta/v1.Duration | tcpCloseWaitTimeout is how long an idle conntrack entry in CLOSE_WAIT state will remain in the conntrack table. (e.g. ‘60s’). Must be greater than 0 to set. |
KubeProxyIPTablesConfiguration
Appears in:
KubeProxyIPTablesConfiguration contains iptables-related configuration details for the Kubernetes proxy server.
Field | Description |
---|---|
masqueradeBit [Required]int32 | masqueradeBit is the bit of the iptables fwmark space to use for SNAT if using the pure iptables proxy mode. Values must be within the range [0, 31]. |
masqueradeAll [Required]bool | masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode. |
localhostNodePorts [Required]bool | LocalhostNodePorts tells kube-proxy to allow service NodePorts to be accessed via localhost (iptables mode only) |
syncPeriod [Required]meta/v1.Duration | syncPeriod is the period that iptables rules are refreshed (e.g. ‘5s’, ‘1m’, ‘2h22m’). Must be greater than 0. |
minSyncPeriod [Required]meta/v1.Duration | minSyncPeriod is the minimum period that iptables rules are refreshed (e.g. ‘5s’, ‘1m’, ‘2h22m’). |
KubeProxyIPVSConfiguration
Appears in:
KubeProxyIPVSConfiguration contains ipvs-related configuration details for the Kubernetes proxy server.
Field | Description |
---|---|
syncPeriod [Required]meta/v1.Duration | syncPeriod is the period that ipvs rules are refreshed (e.g. ‘5s’, ‘1m’, ‘2h22m’). Must be greater than 0. |
minSyncPeriod [Required]meta/v1.Duration | minSyncPeriod is the minimum period that ipvs rules are refreshed (e.g. ‘5s’, ‘1m’, ‘2h22m’). |
scheduler [Required]string | ipvs scheduler |
excludeCIDRs [Required][]string | excludeCIDRs is a list of CIDR’s which the ipvs proxier should not touch when cleaning up ipvs services. |
strictARP [Required]bool | strict ARP configure arp_ignore and arp_announce to avoid answering ARP queries from kube-ipvs0 interface |
tcpTimeout [Required]meta/v1.Duration | tcpTimeout is the timeout value used for idle IPVS TCP sessions. The default value is 0, which preserves the current timeout value on the system. |
tcpFinTimeout [Required]meta/v1.Duration | tcpFinTimeout is the timeout value used for IPVS TCP sessions after receiving a FIN. The default value is 0, which preserves the current timeout value on the system. |
udpTimeout [Required]meta/v1.Duration | udpTimeout is the timeout value used for IPVS UDP packets. The default value is 0, which preserves the current timeout value on the system. |
KubeProxyWinkernelConfiguration
Appears in:
KubeProxyWinkernelConfiguration contains Windows/HNS settings for the Kubernetes proxy server.
Field | Description |
---|---|
networkName [Required]string | networkName is the name of the network kube-proxy will use to create endpoints and policies |
sourceVip [Required]string | sourceVip is the IP address of the source VIP endoint used for NAT when loadbalancing |
enableDSR [Required]bool | enableDSR tells kube-proxy whether HNS policies should be created with DSR |
rootHnsEndpointName [Required]string | RootHnsEndpointName is the name of hnsendpoint that is attached to l2bridge for root network namespace |
forwardHealthCheckVip [Required]bool | ForwardHealthCheckVip forwards service VIP for health check port on Windows |
LocalMode
(Alias of string
)
Appears in:
LocalMode represents modes to detect local traffic from the node
ProxyMode
(Alias of string
)
Appears in:
ProxyMode represents modes used by the Kubernetes proxy server.
Currently, two modes of proxy are available on Linux platforms: ‘iptables’ and ‘ipvs’. One mode of proxy is available on Windows platforms: ‘kernelspace’.
If the proxy mode is unspecified, the best-available proxy mode will be used (currently this is iptables
on Linux and kernelspace
on Windows). If the selected proxy mode cannot be used (due to lack of kernel support, missing userspace components, etc) then kube-proxy will exit with an error.
ClientConnectionConfiguration
Appears in:
ClientConnectionConfiguration contains details for constructing a client.
Field | Description |
---|---|
kubeconfig [Required]string | kubeconfig is the path to a KubeConfig file. |
acceptContentTypes [Required]string | acceptContentTypes defines the Accept header sent by clients when connecting to a server, overriding the default value of ‘application/json’. This field will control all connections to the server used by a particular client. |
contentType [Required]string | contentType is the content type used when sending data to the server from this client. |
qps [Required]float32 | qps controls the number of queries per second allowed for this connection. |
burst [Required]int32 | burst allows extra queries to accumulate when a client is exceeding its rate. |
DebuggingConfiguration
Appears in:
DebuggingConfiguration holds configuration for Debugging related features.
Field | Description |
---|---|
enableProfiling [Required]bool | enableProfiling enables profiling via web interface host:port/debug/pprof/ |
enableContentionProfiling [Required]bool | enableContentionProfiling enables lock contention profiling, if enableProfiling is true. |
LeaderElectionConfiguration
Appears in:
LeaderElectionConfiguration defines the configuration of leader election clients for components that can run with leader election enabled.
Field | Description |
---|---|
leaderElect [Required]bool | leaderElect enables a leader election client to gain leadership before executing the main loop. Enable this when running replicated components for high availability. |
leaseDuration [Required]meta/v1.Duration | leaseDuration is the duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. |
renewDeadline [Required]meta/v1.Duration | renewDeadline is the interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. |
retryPeriod [Required]meta/v1.Duration | retryPeriod is the duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. |
resourceLock [Required]string | resourceLock indicates the resource object type that will be used to lock during leader election cycles. |
resourceName [Required]string | resourceName indicates the name of resource object that will be used to lock during leader election cycles. |
resourceNamespace [Required]string | resourceName indicates the namespace of resource object that will be used to lock during leader election cycles. |