K8s Components
Cluster
A Kubernetes cluster is a set of nodes that run containerized applications. Containerizing applications packages an app with its dependencies and some necessary services.
They are more lightweight and flexible than virtual machines.
Nodes
Nodes are physical or virtual machines in which kubernetes is installed.
API Server
The API Server is the main management point of the entire cluster. In short, it processes REST operations, validates them, and updates the corresponding objects in etcd.
Controller
The Kubernetes Controller Manager is a daemon that embeds the core control loops (also known as “controllers”) shipped with Kubernetes.
Basically, a controller watches the state of the cluster through the API Server watch feature and, when it gets notified, it makes the necessary changes attempting to move the current state towards the desired state.
Scheduler
The Scheduler watches for unscheduled pods and binds them to nodes via the /binding pod subresource API, according to the availability of the requested resources, quality of service requirements, affinity and anti-affinity specifications, and other constraints.
Etcd
Etcd is a distributed, consistent key-value store used for configuration management, service discovery, and coordinating distributed work.
Kubelet
The kubelet is the main component of the Node which is located on each Node.
It’s purpose is to watch continuously the state of the pods and to send these information such as monitoring back to the kube-api-server.
Kube-Proxy
The Kube proxy is a component which its purpose is to watch changes in the definition of the service of the pods in order to maintain the desired network configuration by querying kube-api-server.
Pod
A pod is the basic component of Kubernetes. This is the component where your container is running. It’s represent as a process within the Kubernetes cluster.
Container Runtime
The container runtime is the engine use for running the container pod. E.g: docker, rkt and many more.
Last updated