A Kubernetes Cluster contains:
┌─────────────────────────────┐
│ Control Plane │
└─────────────────────────────┘
|
------------------------------------------
| | |
Worker1 Worker2 Worker3
Control Plane (Master Node)
Brain of Kubernetes.
Responsible for:
Scheduling
Monitoring
Cluster decisions
State management
Cluster
├── Control Plane
│ ├── API Server
│ ├── ETCD
│ ├── Scheduler
│ └── Controller Manager
│
└── Worker Nodes
├── Kubelet
├── Kube-Proxy
└── Container Runtime
Components:
API Server
kubectl --> API Server --> Cluster
Entry point of Kubernetes.
Every request goes through API Server.
Examples:
kubectl get pods
kubectl create deployment nginx
ETCD
Database of Kubernetes.
Stores:
Cluster state
Pod information
Secrets
ConfigMaps
Node info
Example:
Current State: 3 Pods running
Stored inside ETCD.
Scheduler
Decides: Which worker node should run a pod?
Example:
Cluster:
Node1 CPU = 90%
Node2 CPU = 20%
Scheduler chooses:
Pod --> Node2
because Node2 has more resources.
Controller Manager
Monitors desired state versus current state.
Example:
Desired: 3 Pods
Current: 2 Pods
Controller notices mismatch and starts: New Pod TO MAKE IT 3 Pods
== Worker Node Components ==
Worker node is actual responsible for manage and runs your applications.
Kubelet
Agent running on every worker node.
Responsibilities:
Talks with API Server
Creates pods
Health checking
Think:
Manager --> Worker
API Server --> Kubelet
Container Runtime
Responsible for container execution.
Examples:
containerd
CRI-O
Older Kubernetes: Docker
Kube-Proxy
Handles network traffic.
Responsibilities:
Service routing
Load balancing
Example:
User Request
|
Kube-Proxy
|
------------------
| | |
Pod1 Pod2 Pod3
No comments:
Post a Comment
testing