====== 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 ===== * 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 * NetworkPolicy * Configuration * ConfigMap * Secret * Storage * PersistentVolume (PV) * PersistentVolumeClaim (PVC) * StorageClass * Volume * Security * ServiceAccount * RBAC * Role * RoleBinding * ClusterRole * ClusterRoleBinding * SecurityContext * Pod Security * Scheduling * NodeSelector * Node Affinity * Pod Affinity * Pod Anti-Affinity * Taints * Tolerations * Autoscaling * Horizontal Pod Autoscaler (HPA) * Vertical Pod Autoscaler (VPA) * 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 * Amazon EKS * Google GKE * Azure AKS * DigitalOcean DOKS ===== 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