Upgrade & Secure Your Future with DevOps, SRE, DevSecOps, MLOps!

We spend hours scrolling social media and waste money on things we forget, but won’t spend 30 minutes a day earning certifications that can change our lives.
Master in DevOps, SRE, DevSecOps & MLOps by DevOpsSchool!

Learn from Guru Rajesh Kumar and double your salary in just one year.


Get Started Now!

Kubernetes: How to Run a Pod and Get the EGRESS IP Address KubernetesEKS

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 or apt-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

StepCommandMeaning
Pod internal IPkubectl get pod my-nginx -o wideCluster-local Pod IP
Egress/public IPcurl https://ifconfig.me in podInternet-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.

Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Certification Courses

DevOpsSchool has introduced a series of professional certification courses designed to enhance your skills and expertise in cutting-edge technologies and methodologies. Whether you are aiming to excel in development, security, or operations, these certifications provide a comprehensive learning experience. Explore the following programs:

DevOps Certification, SRE Certification, and DevSecOps Certification by DevOpsSchool

Explore our DevOps Certification, SRE Certification, and DevSecOps Certification programs at DevOpsSchool. Gain the expertise needed to excel in your career with hands-on training and globally recognized certifications.

0
Would love your thoughts, please comment.x
()
x