- Newest
- Most votes
- Most comments
Based on the information available, AWS does not distinguish between public and internal traffic at the nodePort level. The issue you're experiencing with IPVS mode and public load balancers appears to be related to the IPVS configuration itself rather than AWS making distinctions between traffic types.
When you configure kube-proxy to run in IPVS mode, it's a disruptive change that affects how traffic is routed to services. The behavior you're describing - where switching back to iptables mode resolves the issue temporarily - suggests there may be an issue with how IPVS is handling the service endpoints or connection tracking for your public-facing services.
A few things to verify in your setup:
-
Ensure that the kube-proxy DaemonSet was properly restarted after making the IPVS configuration changes. If your worker nodes were joined to the cluster before enabling IPVS, you need to restart the kube-proxy DaemonSet.
-
Verify that the required kernel modules for IPVS are loaded on all worker nodes and that the ipvsadm package is installed.
-
Check that your service endpoints are correctly configured by verifying the endpoint connections in the kube-system namespace.
The fact that your internal load balancer works correctly while the public one doesn't, despite having similar configurations (both using externalTrafficPolicy: Local), suggests the issue might be related to how IPVS is managing the connection state or load balancing for services without the internal load balancer annotations. However, this shouldn't be related to AWS making distinctions at the nodePort level - nodePort functionality is handled by Kubernetes and kube-proxy, not by AWS infrastructure.
You may want to examine the IPVS entries on your worker nodes to see if there are differences in how the public versus internal services are being configured in the IPVS tables.
Sources
Running kube-proxy in IPVS Mode - Amazon EKS
Troubleshoot AWS Load Balancer Controller errors in Amazon EKS | AWS re:Post
Relevant content
- asked 2 years ago
- asked a year ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 11 days ago
