Kubernetes is an open-source system for the automation of deployment, scaling, and management of containerized applications. It makes running applications in the cloud easier, more reliable, and more scalable.
| Concept | Description | Importance |
|---|---|---|
| Cluster | The entirety of your Kubernetes infrastructure. Consists of the Control Plane (Master) and Worker Nodes. | The foundation of everything. |
| Control Plane | The "brain" of the cluster. Controls, schedules, and monitors everything. (Often managed by the cloud provider.) | Central control. |
| Worker Nodes | The "workhorses". Your applications run here in containers. Are part of a Node Pool. | Where your applications run. |
| Node Pool | A group of Worker Nodes with the same configuration (machine type, operating system, etc.). Enables scaling, heterogeneity, and easier management. | Defines the properties of your worker nodes and allows them to be managed as a group. |
| Namespaces | Virtual clusters within your physical cluster. Like folders. Used for organization, isolation, and access control. | Structure and isolate resources. |
| Pods | The smallest unit. A group of one or more containers running together on a Node and sharing resources. | The basic unit where your applications run. |
| Deployments | Manage Pods. Describe the desired state of your application (e.g., number of replicas). Simplify updates, scaling, and recovery. | Automates the management of your Pods. |
| ReplicaSets | Ensure that a specific number of identical Pods are always running. Used by Deployments. | Ensures the correct number of running Pods. |
| Services | Stable IP address and DNS name for a group of Pods. Allow access even if the Pods change. Different types (ClusterIP, NodePort, LoadBalancer, ExternalName). | Provide a stable access point to your Pods. |
| ConfigMaps | Store configuration data as key-value pairs. Separate configuration from code. | Configure applications without rebuilding the container. |
| Secrets | Like ConfigMaps, but for sensitive data (passwords, API keys). Base64 encoded (Caution: not encryption!). | More secure handling of sensitive data. |
| Volumes | Directories accessible to containers in a Pod. Persistent or temporary storage. Various types (emptyDir, hostPath, PersistentVolumeClaim). | Provide storage for containers that persists across container restarts (or is shared). |
| PersistentVolumes (PV) | Storage resource in the cluster (e.g., hard drive). Provisioned by the administrator. | Abstraction of the storage infrastructure. |
| PersistentVolumeClaims (PVC) | Request for storage by a Pod/user. Kubernetes binds a suitable PV. | Requests storage without needing to worry about the provisioning details. |
| Ingress | Manages external access (HTTP/HTTPS) to Services. Acts as an "entry gate" to the cluster. Requires an Ingress Controller. | Central point for routing, SSL, and more. |
The following commands are essential for interacting with a Kubernetes cluster:
Helm is a package manager for Kubernetes that simplifies the deployment and management of applications. Here are some basic commands: