<p>This is my Pod manifest:</p>
<pre><code>apiVersion: v1
kind: Pod
metadata:
  name: pod-nginx-container
spec:
  containers:
  - name: nginx-alpine-container-1
    image: nginx:alpine
    ports:
      - containerPort: 80
</code></pre>
<p>Below is output of my &quot;kubectl describe pod&quot; command:</p>
<pre><code>C:\Users\so.user\Desktop\&gt;kubectl describe pod pod-nginx-container
Name:         pod-nginx-container
Namespace:    default
Priority:     0
Node:         minikube/192.168.49.2
Start Time:   Mon, 15 Feb 2021 23:44:22 +0530
Labels:       &lt;none&gt;
Annotations:  &lt;none&gt;
Status:       Running
IP:           10.244.0.29
IPs:
  IP:  10.244.0.29
Containers:
  nginx-alpine-container-1:
    Container ID:   cri-o://01715e35d3d809bdfe70badd53698d6e26c0022d16ae74f7053134bb03fa73d2
    Image:          nginx:alpine
    Image ID:       docker.io/library/nginx@sha256:01747306a7247dbe928db991eab42e4002118bf636dd85b4ffea05dd907e5b66
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Mon, 15 Feb 2021 23:44:24 +0530
    Ready:          True
    Restart Count:  0
    Environment:    &lt;none&gt;
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-sxlc9 (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  default-token-sxlc9:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-sxlc9
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  &lt;none&gt;
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age    From               Message
  ----    ------     ----   ----               -------
  Normal  Scheduled  7m52s  default-scheduler  Successfully assigned default/pod-nginx-container to minikube
  Normal  Pulled     7m51s  kubelet            Container image &quot;nginx:alpine&quot; already present on machine
  Normal  Created    7m50s  kubelet            Created container nginx-alpine-container-1
  Normal  Started    7m50s  kubelet            Started container nginx-alpine-container-1
</code></pre>
<p>I couldn't understand what is IP address mentioned in &quot;IPs:&quot; field of this output. I am sure this is not my Node's IP, so I am wondering what IP is this. And please note that I have not exposed a Service, infact there is no Service in my Kubernetes cluster, so I not able to figure out this.</p>
<p>Also, how &quot;Port&quot; and &quot;Host Port&quot; are different, from Googling I could understand little bit but if someone can explain with an example then it would be great.</p>
<p><strong>NOTE:</strong> I have already Googled &quot;explanation of kubectl describe pod command&quot; and tried searching a lot, but I can't find my answers, so posting this question.</p>

pjj
<h2>Pods</h2>
<p>A <a href="https://kubernetes.io/docs/concepts/workloads/pods/" rel="nofollow noreferrer">pod</a> in Kubernetes is the smallest deployment unit. A pod is a group of one or more containers. The containers in a pod share storage and network resources.</p>
<h2>Pod networking</h2>
<p>In Kubernetes, each pod is assigned a <strong>unique IP address</strong>, this IP address is local within the cluster. Containers within the same pod use <code>localhost</code> to communicate with each other. Networking with other pods or services is done with <em>IP networking</em>.</p>
<p>When doing <code>kubectl describe pod &lt;podname&gt;</code> you see the IP address for the pod.</p>
<p>See <a href="https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking" rel="nofollow noreferrer">Pod networking</a></p>
<h2>Application networking in a cluster</h2>
<p>A pod is a single instance of an application. You typically run an application as a <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" rel="nofollow noreferrer">Deployment</a> with one ore more replicas (instances). When upgrading a Deployment with a new version of your container image, <strong>new pods</strong> is created - this means that all your instances get new IP addresses.</p>
<p>To keep a stable network address for your application, create a <a href="https://kubernetes.io/docs/concepts/services-networking/ingress/" rel="nofollow noreferrer">Service</a> - and always use the service name when sending traffic to other applications within the cluster. The traffic addressed to a service is load balanced to the replicas (instances).</p>
<h2>Exposing an application outside the cluster</h2>
<p>To expose an application to clients outside the cluster, you typically use an <a href="https://kubernetes.io/docs/concepts/services-networking/ingress/" rel="nofollow noreferrer">Ingress</a> resource - it typically represents a load balancer (e.g. cloud load balancer) with <em>reverse proxy</em> functionality - and route traffic for some specific paths to your services.</p>
