Containers package applications and dependencies to run consistently across environments. Kubernetes uses containers grouped in pods, which are scheduled across nodes that provide computing resources. Nodes pool resources and run pods to distribute workloads, ensuring applications have necessary resources. Pods contain related containers and act as logical hosts, while nodes are physical or virtual machines that run pods.