This is an old revision of the document!
Table of Contents
What is Kubernetes
Kubernetes is a system that runs and manages containerized applications automatically.
Instead of manually running containers, Kubernetes:
- Starts them
- Stops them
- Restarts them when they fail
- Scales them up or down
Concepts category
Kubernetes │ ├── Cluster Fundamentals │ ├── Cluster │ ├── Control Plane │ ├── Node │ └── Namespace │ ├── Workloads (Run Applications) │ ├── Pod │ ├── ReplicaSet │ ├── Deployment │ ├── StatefulSet │ ├── DaemonSet │ ├── Job │ └── CronJob │ ├── Networking │ ├── Service │ │ ├── ClusterIP │ │ ├── NodePort │ │ ├── LoadBalancer │ │ └── ExternalName │ ├── Ingress │ ├── Ingress Controller │ └── Network Policy │ ├── Configuration │ ├── ConfigMap │ └── Secret │ ├── Storage │ ├── PersistentVolume (PV) │ ├── PersistentVolumeClaim (PVC) │ ├── StorageClass │ └── Volume │ ├── Security │ ├── ServiceAccount │ ├── RBAC │ │ ├── Role │ │ ├── RoleBinding │ │ ├── ClusterRole │ │ └── ClusterRoleBinding │ ├── SecurityContext │ └── Pod Security │ ├── Scheduling │ ├── Node Selector │ ├── Node Affinity │ ├── Pod Affinity │ ├── Pod Anti-Affinity │ ├── Taints │ └── Tolerations │ ├── Autoscaling │ ├── HPA (Horizontal Pod Autoscaler) │ ├── VPA (Vertical Pod Autoscaler) │ └── Cluster Autoscaler │ ├── Observability │ ├── Logs │ ├── Metrics │ ├── Traces │ ├── Prometheus │ ├── Grafana │ ├── Loki │ └── Jaeger │ ├── Configuration Management │ ├── Helm │ ├── Kustomize │ └── Operators │ └── Ecosystem / Operations
├── CI/CD
│ ├── GitHub Actions
│ ├── GitLab CI
│ └── ArgoCD
│
├── Container Runtime
│ ├── containerd
│ └── CRI-O
│
├── Service Mesh
│ ├── Istio
│ └── Linkerd
│
└── Cloud Providers
├── EKS (AWS)
├── GKE (Google)
├── AKS (Azure)
└── DOKS (DigitalOcean)
Simple explanation
Kubernetes = “automated container manager”
—
Real-world example
Imagine you have a web application:
Without Kubernetes:
- You run Docker containers manually
- If one crashes → you restart it yourself
- If traffic increases → you manually add more containers
With Kubernetes:
- You define: “I want 3 instances running”
- Kubernetes ensures 3 instances are always running
- If one crashes → it automatically replaces it
- If traffic increases → it can add more instances automatically
—
Simple analogy
Kubernetes is like a restaurant manager:
- You (developer) define the menu (desired state)
- Kubernetes ensures chefs (containers) are always available
- If a chef leaves → it hires a new one automatically
