Kubernetes 1.29 introduces a new alpha feature that allows cloud providers to specify how kube-proxy handles traffic to load balancer services. This feature addresses issues with source IP and feature loss at the load balancer level.
The new .status.loadBalancer.ingress.ipMode field can be set to "VIP" or "Proxy." "VIP" preserves the existing behavior where kube-proxy redirects traffic directly to the service, while "Proxy" prevents kube-proxy from binding the load balancer's IP to the node.
With "Proxy" mode, traffic is sent directly to the load balancer, which then forwards it to the destination node. The destination setting depends on how the cloud provider delivers traffic.
To enable the feature, download Kubernetes 1.29+, enable the feature gate on kube-proxy, kube-apiserver, and cloud-controller-manager, and set ipMode to "Proxy" for load balancer services.
The cloud-controller-manager typically handles the ipMode setting during the EnsureLoadBalancer process.
The motivation for this feature is to provide a configurable approach to optimize traffic flow and support features offered by cloud providers at the load balancer level.
The default value for ipMode is "VIP," which maintains the current behavior.
This feature is in alpha and may change in future releases.
For more information, refer to the Kubernetes documentation on Specifying IPMode of load balancer status and KEP-1860.
You can get involved in the feature development by joining the #sig-network Slack channel or mailing list.
The feature was originally proposed by @Sh4d1 and implemented by various contributors.
kubernetes.io
kubernetes.io
Create attached notes ...
