Does LoadBalancer
use kube-proxy
as mentioned in this article or is it using NodePort
as mentioned here?
If it's in fact using NodePort
, then why are multiple sources such as MetalLB claiming that using NodePort
in production is not a good idea?
Ingress
also operates using NodePort + nginx
. What's so special about LoadBalancer
then?
It depends on the cloud provider implementation:
Traffic from the external load balancer will be directed at the backend Pods, though exactly how that works depends on the cloud provider.
https://kubernetes.io/docs/concepts/services-networking/#loadbalancer
In case of Google Kubernetes Engine (GKE), this is how it works:
When using the external load balancer, arriving traffic is initially routed to a node using a forwarding rule associated with the GCP network. After the traffic reaches the node, the node uses its iptables NAT table to choose a Pod. kube-proxy manages the iptables rules on the node.