1. API Server
2. Kube Scheduler
3. Controller Manager
4. ETCD (not part of k8s but without this k8s won't work so consider this also a part of k8s)
API Server:
a. It interact directly with users
b. It meant to scale automatically according to load or request load
c. Front end of control plane
1.
ETCD:
a. Store metadata or status of cluster
b. Consistent and high availability
c. Store data in key value form
2.
Features:
a. Fully replicated: entire state is available on every node of cluster
b. Secure: implements TLS with optional client-certificate authentication 7
c. Fast: benchmark at 10,000 writes per second
Kube Scheduler:
When user make a request for creation or management of pods , it is going to take the action on his
request
a.
b. If any mismatch occurs in number of pods runs then it will make them as desired no pods
When we are not explicitly assign the node for pod creation then it will automatically decide the best
node and create pod there. But if you want to create pod on specific node then assign node in
manifest file.
c.
It's take the hardware configuration information from etcd and that help to decide the best node for
pod creation
d.
3.
Controller Manager:
a. Make sure the actual state equals to desired state
b. If k8s on the cloud then "cloud controller manager"
c. If k8s on non-cloud "kube-controller manager"
4.
Controller Components:
a. Node Controller: for checking nodes that has detect in the cloud after it stops responding.
b. Route Controller: Responsible for setting up n/w, route
c. Service Controller: Responsible for load balancing
d. Volume Controller: Managing Volumes