Main components of K8s
|API Server||The API Server communicates with all the components within the cluster.|
|Key-Value Store (etcd)||A light-weight distributed key-value store used to accumulate all cluster data.|
|Controller||Uses the API Server to monitor the state of the cluster. It tries to move the actual state of the cluster to match the desired state from your manifest file.|
|Scheduler||Schedules newly created pods onto worker nodes. Always selects nodes with the least traffic to balance the workload.|
Worker nodes are the machines where the containerized workloads and storage volumes are deployed.
There are multiple instances of Worker Nodes, each performing their assigned tasks.
|Kubelet||A daemon that runs on each node and responds to the master’s requests to create, destroy, and monitor pods on that machine.|
|Container Runtime||A container runtime retrieves images from a container image registry and starts and stops containers. This is usually a 3rd party software or plugin, such as Docker.|
|Kube-proxy||A network proxy that maintains network communication to your Pods from within or from outside the cluster.|
|Add-ons (DNS, Web UI..)||Additional features you can add to your cluster to extend certain functionalities.|
|Pod||A pod is the smallest element of scheduling in Kubernetes. It represents a ‘wrapper’ for the container with the application code. If you need to scale your app within a Kubernetes cluster, you can only do so by adding or removing pods. A node can host multiple pods.|