My current setup involves an EKS Cluster with multiple namespaces (multi-tenant) across many different EKS nodes in private subnets. I would like the egress traffic from the pods to have a dedicated EIP per namespace. AFAIK there are no off the shelf solutions available for this problem. I have searched long and hard on the internet but in vain. Here are some of the solutions that I have tired, but eventually hit a roadblock.
Istio Egress Gateway Allows you to direct all outbound traffic from pods via a dedicated egress gateway pod. But the egress gateway pod will assume the ip of the node on which it is running, which will not work for my use case. Also, I have not found decent documentation around how I can setup multiple egress gateway pods across multiple nodes.
Calico Egress Gateway Very similar to Istio Egress Gateway solution and the same constraint applies
Custom Solution I have started implementing a custom solution, where I setup multiple Gateway Nodes in public subnet each with a dedicated EIP. I can now modify the IP routes/gateways in the private EKS node, to route traffic via a specific gateway node based on the pod source IP. This solution feels very kludgy and the operational overhead of such a solution is very high.
I have looked at solutions like this, but have not had any luck with them.
Is there a better approach/solution to this problem?
P.S. My production cluster is extremely large, I cannot afford to stand up a cluster for each namespace.
I have cross posted this question on stackoverflow as well. I am really not sure which forum is a better place this question. Happy to delete it where appropriate.