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 curl
in Alpine Linux orapt-get update && apt-get install curl -y
in 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
curl
to an external service to print the egress/public IP.
I’m a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I have worked at Cotocus. I share tech blog at DevOps School, travel stories at Holiday Landmark, stock market tips at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow , and SEO strategies at Wizbrand.
Do you want to learn Quantum Computing?
Please find my social handles as below;
Rajesh Kumar Personal Website
Rajesh Kumar at YOUTUBE
Rajesh Kumar at INSTAGRAM
Rajesh Kumar at X
Rajesh Kumar at FACEBOOK
Rajesh Kumar at LINKEDIN
Rajesh Kumar at WIZBRAND