Table of contents
No headings in the article.
Hello Fam! Today, let's dive into the architecture of Kubernetes, unraveling the key components that orchestrate containerized applications.
1. Master Node:
API Server: Central management component that exposes the Kubernetes API and serves as the front-end for the Kubernetes control plane.
etcd: Distributed key-value store storing the configuration data for the entire cluster, ensuring consistency and fault tolerance.
Controller Manager: Enforces the desired state of the system by running controllers for nodes, endpoints, replication, and more.
Scheduler: Assigns workloads to nodes based on resource availability and constraints.
2. Node (Minion):
Kubelet: Ensures that containers are running on each node as per the Pod specifications.
Container Runtime: Software responsible for running containers (e.g., Docker).
Kube-proxy: Maintains network rules for communication across Pods and Services.
3. Pod:
- Smallest Deployable Unit: Basic building block in Kubernetes, encapsulating one or more containers sharing the same network and storage.
4. Service:
- Abstraction Layer: Defines a set of Pods and a policy by which to access them. Acts as an internal load balancer for distributing network traffic.
5. ReplicaSet and Deployment:
ReplicaSet: Ensures the desired number of replicas (Pods) are running. Manages scaling and self-healing.
Deployment: Declarative approach to updates and rollbacks, allowing controlled changes to applications.
6. ConfigMap and Secret:
ConfigMap: Centralized configuration management for containerized applications.
Secret: Securely stores sensitive information like passwords or API keys.
7. Namespace:
- Virtual Cluster: Provides a scope for resources, allowing multiple teams or projects to share a cluster without interference.
8. Label and Annotation:
Label: Key-value pairs assigned to objects for identification and selection.
Annotation: Additional information about objects, providing context or metadata.
9. Ingress:
- HTTP and HTTPS Routing: Manages external access to services, allowing routing based on rules, SSL termination, and load balancing.
10. StatefulSet:
- Stateful Workloads: Manages the deployment and scaling of stateful applications, providing guarantees about the ordering and uniqueness of Pods.
11. Custom Resource Definitions (CRDs) and Operators:
- Extending Kubernetes API: CRDs allow the definition of custom resources. Operators automate the management of these custom resources.
12. Kubernetes API Resources:
- Declarative Configuration: Resources like Deployments, Services, ConfigMaps, and more define the desired state of the system.