AI Hints
Home›Kubernetes Tutorial›Your First Cluster
Kubernetes · Lesson 9 of 86

Your First Pod

Run, inspect, and delete a pod.

⏱ 2 min read▶ Video at 23:16🎓 Free
Watch this lesson in the Kubernetes courseWatch on YouTube ↗Full Kubernetes course

It is time to run something. A pod is the smallest unit in Kubernetes, and it is the best place to start. In this lesson, you will create a pod, look inside it, read its logs, run a command in it, and delete it. Five steps, and the basics are in your hands.

Your First Pod
From the video: Your First Pod
  • Create a pod
  • Look inside, read logs
  • Run a command in it, then delete

What is a pod?

What is a pod, exactly? A pod is a wrapper around one or more containers. The containers in a pod always run on the same node, and they share the same network address, and can share storage. Most of the time, a pod holds just one container, your app. Think of a pod as a tiny apartment, and the containers as roommates, who share the address and the kitchen. Kubernetes never runs a bare container. It always runs pods.

A wrapperaround one or more containers
Same nodecontainers stay together
Shared networkone address per pod
Usually one containeryour app

Run, list, describe

Let's create our first pod. The run command starts a pod, with a name, and an image. We use the web server N G I N X. Then we list the pods. At first it may say, container creating, while the image downloads, and then running. Now we describe it. The description shows the node it was placed on, its address, the image, and at the bottom, the events, a diary of what Kubernetes did. Scheduled, pulled, created, started. Events are your best friend when something goes wrong.

kubectl
kubectl run web --image=nginx:1.27
pod/web created
kubectl get pods
NAME   READY   STATUS    RESTARTS   AGE
web    1/1     Running   0          13s
kubectl describe pod web | grep -E '^(Name|Node|Status|Image):' | cut -c1-80
Name:             web
Node:             k8s-m03/192.168.49.4
Status:           Running
kubectl describe pod web | tail -6 | cut -c1-100
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  12s   default-scheduler  Successfully assigned default/web to k8s-m03
  Normal  Pulled     12s   kubelet            Container image "nginx:1.27" already present on machin
  Normal  Created    12s   kubelet            Created container: web
  Normal  Started    12s   kubelet            Started container web

Logs and exec

Now let's look inside. The logs command prints what the container wrote, and here we see the web server starting up. The exec command runs a command inside the container. We ask the container to print the web server version, and to list its web folder. This is how you inspect a running app, without ever logging in to a machine. Use logs to see what an app says, and exec to look around inside it.

kubectl
kubectl run web --image=nginx:1.27
pod/web created
kubectl logs web | tail -4 | cut -c1-100
2026/10/30 19:37:48 [notice] 1#1: start worker process 32
2026/10/30 19:37:48 [notice] 1#1: start worker process 33
2026/10/30 19:37:48 [notice] 1#1: start worker process 34
2026/10/30 19:37:48 [notice] 1#1: start worker process 35
kubectl exec web -- nginx -v
nginx version: nginx/1.27.5
kubectl exec web -- ls /usr/share/nginx/html
50x.html
index.html

Delete, and notice something

Finally, we delete the pod. And now, notice something important. After deleting, the pod is gone, for good. Nothing brings it back. A bare pod has no one watching over it. If it dies, or its node dies, it is lost. That is a big difference from our first demo, where pods came back to life. The thing that watched over those pods, was a deployment. And that is exactly where we are going next.

kubectl
kubectl run web --image=nginx:1.27
pod/web created
kubectl delete pod web
pod "web" deleted from default namespace
kubectl get pods
No resources found in default namespace.

Summary

Wonderful. You created a pod, inspected it with describe, read its logs, ran a command with exec, and deleted it. You also learned that a bare pod has no guardian. In the next clip, we study pods in depth, and learn to describe them in YAML files.

Key takeaways
  • run creates a pod
  • describe, logs, exec inspect it
  • A bare pod is not self-healing
Next up: Pods in Depth — containers, YAML, and labels