Summary of "Day 13/40 - Static Pods, Manual Scheduling, Labels, and Selectors in Kubernetes"
Summary of “Day 13/40 - Static Pods, Manual Scheduling, Labels, and Selectors in Kubernetes”
This video is part of a Kubernetes tutorial series focused on advanced scheduling concepts and metadata management within Kubernetes clusters. The main topics covered include:
1. Kubernetes Scheduler and Pod Scheduling Process
- The scheduler is a control plane component responsible for deciding which node a pod should run on.
- When a pod creation request is sent via
kubectlto the API server, the scheduler monitors pods in a pending state and assigns them to appropriate nodes based on scheduling algorithms. - The scheduler then instructs the kubelet on the chosen node to start the pod.
- The scheduler itself runs as a static pod on the control plane node.
2. Static Pods
- Static pods are pods managed directly by the kubelet, not by the scheduler.
- They are typically used for running control plane components like the API server, controller manager, scheduler, etc.
- Static pod manifests are stored in a specific directory (
/etc/kubernetes/manifests) on the control plane node. - The kubelet continuously monitors this directory and ensures these pods are running.
- Removing a static pod manifest (e.g., the scheduler manifest) stops that component; this can be used for troubleshooting or restarting control plane components.
3. Manual Scheduling
- Manual scheduling involves specifying the
nodeNamefield in a pod’s spec to assign it to a specific node. - Pods with
nodeNameset are not scheduled by the scheduler; kubelet on the specified node runs them directly. - This method allows pods to be scheduled even if the scheduler is down.
- Demonstrated by creating a pod YAML with
nodeNameset and showing it runs without the scheduler.
4. Labels and Selectors
- Labels are key-value pairs attached to Kubernetes objects (pods, deployments, services, etc.) to organize and select subsets of resources.
- Labels help filter and group resources, similar to tags or filters on e-commerce websites.
- Selectors are used to query or filter resources based on labels (e.g., select pods with
tier=frontend). - Labels are applied in the metadata section of objects; selectors are used in commands like
kubectl get pods --selector=tier=frontend. - Labels can be added or modified dynamically on running pods.
- Annotations differ from labels; they store metadata about the object (e.g., last applied configuration) but are not used for selection.
- Difference between namespaces and labels:
- Namespaces provide logical separation and security boundaries for resources.
- Labels are flexible tags for grouping and filtering resources within or across namespaces.
5. Hands-On Demonstrations and Assignments
The video includes live demos showing:
- How to inspect static pod manifests on the control plane node.
- How to stop/start the scheduler by moving static pod manifests.
- Manual scheduling by specifying
nodeName. - Adding labels to pods and querying with selectors.
An assignment is provided for viewers to practice these concepts on their home labs. Viewers are encouraged to engage via comments and a Discord channel for peer support.
Main Speakers / Source
The video is presented by P, the channel owner and instructor of the CK 2024 Kubernetes series.
Key Takeaways
- Understanding static pods is crucial for managing Kubernetes control plane components.
- Manual scheduling provides a fallback mechanism when the scheduler is unavailable.
- Labels and selectors are powerful tools for organizing and managing Kubernetes resources efficiently.
- Practical knowledge of these concepts is essential for Kubernetes certification and real-world cluster management.
This video is a valuable resource for learners preparing for the Certified Kubernetes Administrator (CKA) exam and those seeking deeper insight into Kubernetes scheduling and resource organization.
Category
Technology