Kubernetes_introduction
Chapter 16: Kubernetes Introduction
Section titled βChapter 16: Kubernetes IntroductionβKubernetes (K8s) is an open-source container orchestration platform that automates deployment, scaling, and management of containerized applications.
What is Kubernetes?
Section titled βWhat is Kubernetes?βKubernetes (Greek for βhelmsmanβ or βpilotβ) was originally developed by Google and is now maintained by the Cloud Native Computing Foundation (CNCF).
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Kubernetes Overview ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€β ββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ β Kubernetes (K8s) β ββ β β ββ β βββββββββββ βββββββββββ βββββββββββ βββββββββββ β ββ β β Deploy β β Scale β β Manage β β Self- β β ββ β β Apps β βPods β βServices β β Healing β β ββ β βββββββββββ βββββββββββ βββββββββββ βββββββββββ β ββ β β ββ β β Automatic rollouts/rollbacks β ββ β β Service discovery and load balancing β ββ β β Self-healing β ββ β β Horizontal scaling β ββ β β Configuration management β ββ β β ββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββWhy Kubernetes?
Section titled βWhy Kubernetes?βThe Problem
Section titled βThe Problemβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Container Management Without Kubernetes ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€β ββ Developer Operations ββ βββββββββ ββββββββββ ββ ββ "Here's my Docker image" ββ β ββ βΌ ββ ββββββββββββββββ ββ β "Deploy it" β β How do I scale? ββ ββββββββββββββββ How do I handle failures? ββ How do I update without downtime? ββ How do I manage networking? ββ Where do I store data? ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββThe Kubernetes Solution
Section titled βThe Kubernetes Solutionβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Container Management With Kubernetes ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€β ββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ β Kubernetes Cluster β ββ β β ββ β Control Plane (Master) β ββ β βββββββββββ βββββββββββ βββββββββββ βββββββββββ β ββ β β API β βSchedulerβ βManager β β etcd β β ββ β β Server β β β β β β β β ββ β βββββββββββ βββββββββββ βββββββββββ βββββββββββ β ββ β β ββ β Worker Nodes β ββ β βββββββββββββββ βββββββββββββββ βββββββββββββββ β ββ β β Node 1 β β Node 2 β β Node 3 β β ββ β β βββββ βββββ β β βββββ βββββ β β βββββ βββββ β β ββ β β βPodβ βPodβ β β βPodβ βPodβ β β βPodβ βPodβ β β ββ β β βββββ βββββ β β βββββ βββββ β β βββββ βββββ β β ββ β β Kubelet β β Kubelet β β Kubelet β β ββ β βββββββββββββββ βββββββββββββββ βββββββββββββββ β ββ β β ββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββKubernetes Architecture
Section titled βKubernetes Architectureβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Kubernetes Architecture ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€β ββ βββββββββββββββββββ ββ β Control Plane β ββ β (Master) β ββ ββββββββββ¬βββββββββ ββ β ββ βββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββ ββ β β β ββ βΌ βΌ βΌ ββ βββββββββββ βββββββββββ βββββββββββ ββ β API β βSchedulerβ β Manager β ββ β Server β β β β β ββ ββββββ¬βββββ ββββββ¬βββββ ββββββ¬βββββ ββ β β β ββ βββββββββββββββββββββββββββΌββββββββββββββββββββββββββ ββ β ββ βΌ ββ βββββββββββββββ ββ β etcd β ββ β (Storage) β ββ βββββββββββββββ ββ ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ β Nodes (Workers) β ββ β β ββ β βββββββββββββββββ βββββββββββββββββ βββββββββββββββββ β ββ β β Node 1 β β Node 2 β β Node 3 β β ββ β β βββββββββββββ β β βββββββββββββ β β βββββββββββββ β β ββ β β β Kubelet β β β β Kubelet β β β β Kubelet β β β ββ β β βββββββββββββ β β βββββββββββββ β β βββββββββββββ β β ββ β β βββββββββββββ β β βββββββββββββ β β βββββββββββββ β β ββ β β βKube-Proxy β β β βKube-Proxy β β β βKube-Proxy β β β ββ β β βββββββββββββ β β βββββββββββββ β β βββββββββββββ β β ββ β β ββββ ββββ β β ββββ ββββ β β ββββ ββββ β β ββ β β βPodβ βPodβ β β βPodβ βPodβ β β βPodβ βPodβ β β ββ β β ββββ ββββ β β ββββ ββββ β β ββββ ββββ β β ββ β βββββββββββββββββ βββββββββββββββββ βββββββββββββββββ β ββ β β ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββControl Plane Components
Section titled βControl Plane Componentsβ1. API Server (kube-apiserver)
Section titled β1. API Server (kube-apiserver)β- The front-end for Kubernetes
- Exposes REST API
- Validates and configures data for objects
2. Scheduler (kube-scheduler)
Section titled β2. Scheduler (kube-scheduler)β- Assigns pods to nodes
- Considers resource requirements and constraints
3. Controller Manager (kube-controller-manager)
Section titled β3. Controller Manager (kube-controller-manager)β- Runs controller processes
- Handles node controller, replication controller, endpoints controller
4. etcd
Section titled β4. etcdβ- Distributed key-value store
- Stores all cluster data
- Configuration and state
Node Components
Section titled βNode Componentsβ1. Kubelet
Section titled β1. Kubeletβ- Agent running on each node
- Ensures containers are running in pods
2. Kube-proxy
Section titled β2. Kube-proxyβ- Network proxy
- Implements service networking
3. Container Runtime
Section titled β3. Container Runtimeβ- Runs containers (Docker, containerd, cri-o)
Kubernetes Objects
Section titled βKubernetes Objectsβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Kubernetes Objects ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€β ββ Core Objects: ββ βββββββββββ ββββββββββββββ ββββββββββββ ββββββββββ βββββββββββ ββ β Pod β β Service β βVolume β β Node β β Namespaceβ ββ βββββββββββ ββββββββββββββ ββββββββββββ ββββββββββ βββββββββββ ββ ββ Workload Objects: ββ βββββββββββββββ βββββββββββββββ βββββββββββββββ ββ β Deployment β β ReplicaSet β β StatefulSetβ ββ βββββββββββββββ βββββββββββββββ βββββββββββββββ ββ ββ Configuration: ββ ββββββββββββββ ββββββββββββββ ββββββββββββββ ββ β ConfigMapβ β Secret β β ServiceAccountβ ββ ββββββββββββββ ββββββββββββββ ββββββββββββββ ββ ββ Networking: ββ βββββββββββ ββββββββββββββ βββββββββββββββββ ββ β Ingress β β NetworkPolicyβ β EndpointSliceβ ββ βββββββββββ ββββββββββββββ βββββββββββββββββ ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββKubernetes vs Docker Swarm
Section titled βKubernetes vs Docker Swarmβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Kubernetes vs Docker Swarm ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€β ββ Feature Kubernetes Docker Swarm ββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ Complexity High Low ββ Learning Curve Steep Gentle ββ Scalability Excellent Good ββ Auto-healing Built-in Limited ββ Load Balancing Built-in Basic ββ Rolling Updates Built-in Built-in ββ Storage Complex Simple ββ GUI Third-party Docker Desktop ββ Community Very large Large ββ Enterprise Support Strong (multiple) Docker Inc. ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββManaged Kubernetes Services
Section titled βManaged Kubernetes Servicesβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Managed Kubernetes Services ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€β ββ ββββββββββββββββββ ββββββββββββββββββ ββββββββββββββββββ ββ β Amazon EKS β β Google GKE β β Azure AKS β ββ β (Elastic β β (Google β β (Azure β ββ β Kubernetes β β Kubernetes β β Kubernetes β ββ β Service) β β Engine) β β Service) β ββ ββββββββββββββββββ ββββββββββββββββββ ββββββββββββββββββ ββ ββ ββββββββββββββββββ ββββββββββββββββββ ββββββββββββββββββ ββ β DigitalOcean β β Linode LKE β β OpenShift β ββ β DOKS β β β β β ββ ββββββββββββββββββ ββββββββββββββββββ ββββββββββββββββββ ββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββkubectl - Kubernetes CLI
Section titled βkubectl - Kubernetes CLIβBasic Commands
Section titled βBasic Commandsβ# Get cluster infokubectl cluster-info
# List nodeskubectl get nodes
# List podskubectl get pods
# List serviceskubectl get services
# Create resource from filekubectl apply -f deployment.yaml
# Delete resourcekubectl delete -f deployment.yaml
# View pod logskubectl logs my-pod
# Execute command in podkubectl exec -it my-pod -- /bin/bash
# Describe resourcekubectl describe pod my-podSummary
Section titled βSummaryβIn this chapter, you learned:
- What Kubernetes is and why to use it
- Kubernetes architecture (Control Plane & Nodes)
- Core components (API Server, Scheduler, etcd, kubelet)
- Kubernetes objects overview
- Comparison with Docker Swarm
- Managed Kubernetes services
- Basic kubectl commands