What is Kubernetes:
Kubernetes is an open source container orchestration system for automating application deployment, scaling, self-healing, rolling update and roll back.
Architecture Diagram:
Master Node / Control Plane components:
- Kube API server
- Scheduler
- Controller Manager
- etcd store
1. Kube API Server:
- API server acts as a front-end to kubernetes cluster & exposes the kubernetes cluster API.
- API server talks to worker nodes.
- API server validates and configures data for the api objects which includes pods, service replica-controllers, deployments etc.
- Once request is validated, it stores the cluster data under etcd store.
2. Schedulers:
- Scheduler assigns pods to nodes
- Scheduler determines which nodes are free and can take a new load.
- Scheduler also checks for constraints before placing the load on any nodes.
3. etcd store:
- Kubernetes uses etcd ro store all cluster data - configuration data, its state and metadata.
- Since Kubernetes is a distributed system- it needs a distributed data store like etcd.
- etcd manages a lot of the tricky problems in running a distributed database like race conditions.
- It also stores the actual state of the system and the desired state of the system in etcd.
- It then uses etcd's watch functionality to monitor changes to either of these two things. If they diverge, Kubernetes makes changes to reconcile the actual state and the desired state.
- kubectl get pod --> reads from etcd store data.
- Any change you make via kubectl create will write an entry in etcd.
4. Controller Manager:
- A kube-controller manager is a daemon which regulates the state of the system.
- A controller is a non terminating loop that watches the state of the cluster via kube api server and makes changes attempting to move the current state to desired state.
- example: replica-controllers , end point controllers etc.
Node Components:
- Kubelet
- Run time environemnt
- Kube-proxy
1. Kubelet:
- Kubelet is a node agent that runs on every node in a kubernetes cluster.
- It can register the node with the kube api server using hostname or any other logic.
- Kubelet takes the podspecs and ensures containers described in podspec or healthy.
- kubelet doesn't monitor containers which doesn't create via kubernetes.
2. Run time environment:
- All Nodes should be installed with docker or containerd (container runtime environment)
3. Kube Proxy:
- Kube proxy is a network proxy which maintains network rules on nodes.
Happy Learning😀
Thank you
Comments
Post a Comment