Kubernetes Internals

Week 1:
- Understand the overall architecture of Kubernetes and its core components (e.g., API server, controller manager, scheduler, kubelet, etc.).
- Study the Kubernetes API and the different resource types (e.g., Pods, Deployments, Services, ConfigMaps, Secrets, etc.).
- Learn about the Kubernetes control plane and how the different components interact with each other.
- Hands-on project: Set up a local Kubernetes cluster using tools like minikube or kind, and explore the various components and resources.
Week 2:
- Dive into the Kubernetes API server, its responsibilities, and how it handles client requests.
- Understand the Kubernetes API versioning and the concept of API groups and resources.
- Study the Kubernetes API server authentication and authorization mechanisms (e.g., RBAC, service accounts).
- Hands-on project: Implement custom Kubernetes API resources and write a controller to manage them.
Week 3:
- Explore the Kubernetes controller manager and the different controllers it manages (e.g., Deployment, ReplicaSet, Service, etc.).
- Understand the reconciliation loop and how controllers ensure the desired state of the cluster.
- Learn about the leader election process and how the controller manager handles high availability.
- Hands-on project: Implement a custom Kubernetes controller to manage a specific resource type.
Week 4:
- Dive into the Kubernetes scheduler, its responsibilities, and the scheduling algorithms it uses.
- Understand the scheduler's event-driven architecture and how it interacts with the API server.
- Learn about the scheduler's extensibility points, such as scheduling plugins and predicates.
- Hands-on project: Implement a custom scheduling algorithm or a scheduling plugin for the Kubernetes scheduler.
Week 5:
- Explore the Kubernetes kubelet, its responsibilities, and how it interacts with the container runtime.
- Understand the kubelet's node-level resource management and how it reports node status to the API server.
- Learn about the kubelet's extensibility points, such as container runtimes and device plugins.
- Hands-on project: Implement a custom kubelet plugin or integrate a new container runtime.
Week 6:
- Dive into the Kubernetes volume system and the different types of volumes (e.g., emptyDir, hostPath, PersistentVolumes, etc.).
- Understand the lifecycle of volumes and how they are mounted and managed by the kubelet.
- Learn about the Kubernetes networking model, including pod-to-pod communication, service discovery, and network policies.
- Hands-on project: Implement a custom volume plugin or a network plugin for Kubernetes.