1. Deploy a Pod to Your Cluster
You can launch a simple Pod using the kubectl run command. For example, to run an NGINX Pod:
bashkubectl run my-nginx --image=nginx --restart=Never
Wait until the pod is in the Running state:
bashkubectl get pod my-nginx -o wide
2. Get Pod EGRESS IP Address
To determine the IP address seen by external services (egress/source IP), execute the following steps:
Step A: Get a Shell Inside the Pod
kubectl exec -it my-nginx -- /bin/sh
(If /bin/sh is not present, replace with /bin/bash or use another pod/container image that has a shell.)
Step B: Query an External Service for the Pod’s Egress IP
Within the pod shell, run:
curl https://ifconfig.me
or
textcurl https://api.ipify.org
- The response will be the egress/public IP as seen by the Internet.
- This will usually be:
- The EC2 node’s public IP address if your nodes are in a public subnet, or
- The NAT Gateway’s Elastic IP if your worker nodes are in private subnets.
If curl is not installed in the container, you can:
- Use an image that includes
curl(e.g.,ubuntu,alpine) - Install it on-the-fly, e.g.,
apk add curlin Alpine Linux orapt-get update && apt-get install curl -yin Ubuntu.
3. Example Pod Command
If you want to create a one-off pod with curl available:
bashkubectl run tmp-curl-pod --rm -it --image=alpine --restart=Never -- sh
# Inside the shell, run:
apk add curl
curl https://ifconfig.me
exit
When you exit, the pod will be cleaned up automatically.
4. Quick Table: What Each IP Means
| Step | Command | Meaning |
|---|---|---|
| Pod internal IP | kubectl get pod my-nginx -o wide | Cluster-local Pod IP |
| Egress/public IP | curl https://ifconfig.me in pod | Internet-facing source IP |
5. What Determines Egress IP in AWS EKS?
- For standard AWS EKS setups:
- Public Node: Outbound IP is usually the node’s public IP.
- Private Node: Outbound IP is the NAT Gateway’s Elastic IP.
- If using advanced networking (like Calico with Egress IP pools or Egress Gateway), the IP could be different, but in default setups, the above holds.
Summary:
- Deploy pod.
- Open a shell inside.
- Use
curlto an external service to print the egress/public IP.
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals
A useful extension would be covering egress IP stability in production EKS, since autoscaling, node rotation, and NAT behavior can silently impact third-party IP whitelisting and outbound reliability.