Kubernetes needs a unit to schedule onto machines, and sometimes two containers must always run together and share a network, like an app and its log shipper. A Pod is that unit: one or more containers on the same node sharing an IP and volumes. Understand pods because every other workload creates them and kubectl debugging starts there. Do not create bare pods for real apps, since nothing recreates them if they die; use a Deployment.