Your First Pod
Run, inspect, and delete a pod.
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.

- 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.
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 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 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 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