When you create a pod in Kubernetes, it starts in Pending state until the scheduler finds a node with enough resources. The scheduler checks all nodes for available CPU and memory. If no node has enough free resources, the pod stays Pending. You can use 'kubectl describe pod' to see events like 'Insufficient cpu' that explain why scheduling failed. Checking nodes with 'kubectl get nodes' and 'kubectl describe node' helps confirm resource availability. To fix Pending pods, free resources or add nodes. Once resources are sufficient, the scheduler assigns the pod to a node and it starts running.