Search code examples
kubernetesroutesload-balancingkubernetes-ingressstatic-ip-address

How to configure Kubenetes to make external requests going from a static IP


I have a bunch of pods and corresponding cluster IP services running in a Kubenetes cluster. I use an Ingress controller to route incoming traffic to these workloads.

Now, when I make an external request from within a workload, I would like those requests to go out from a static IP.

  1. Are both incoming and outgoing traffic handled via the same network interface?

  2. How do I set a static IP for my outgoing requests from a pod

Thanks in advance.


Solution

  • If you're on AWS or GKE the only way to get a static outbound from an (autoscaling) node pool is via a NAT gateway. On GKE you are also required to have private nodes (no public ips).

    Kubernetes ingress, at least in GKE, is treated separately from egress and is a different load balancer.

    https://cloud.google.com/nat/docs/gke-example