
Others are rkt, cri-o, and containerd.Īlso, check Kubernetes Design and Architecture for the details of each components of the picture.Įach Pod has its own IP address but Pods are ephemeral (destroyed frequently). container runtime: Docker is the most prominent runtime.It creates a virtual IP which clients can access and which is transparently proxied to the pods in a Service. It is responsible for maintaining network configuration and iptable rules.

It exposes services to the outside world. kube-proxy: A network agent running on each node.It makes sure the containers are running and if any pod has issue, it tries to restart the pod. It is the primary implementer of the Pod and Node APIs that drive the container execution layer. Kubelet interacts with a node and pods within the node. It is the most important and most prominent controller in Kubernetes. kubelet: An agent running on each node.cloud controller manager: Interacts with the underlying cloud provider to manage resources.Įach controller tries to move the current cluster state closer to the desired state.Įvery worker node should be running 3 processes: kubelet, kube-proxy, and container runtime as listed below:.kube controller manager: controller that watches the node, replication set, endpoints (services), and service accounts.It provides self-healing, scaling, application lifecycle management, service discovery, routing, and service binding and provisioning. It performs both lifecycle functions (garbage collections) and API business logic (such as scaling of pods controlled by a ReplicaSet). Controller-Manager: Most other cluster-level functions are currently performed by a separate process, called the "Controller Manager".It is the single source of truth for all components of a cluster.Įtcd stores the configuration data of the Kubernetes cluster, representing the state of the cluster at any given point in time. Cluster state store (etcd): All persistent cluster state is stored in etcd.The scheduler obtains resource usage data for each worker node from "etcd" via the API server. Scheduler: It watches for unscheduled pods and binds them to nodes via the /binding pod subresource API.It is also working as a gatekeeper for authentication. kubectl is the command line utility that interacts with Kubernetes API. It is responsible for establishing communication between Kubernetes Node and the Kubernetes master components.

It is intended to be a relatively simple server mainly processes REST operations. API Server: This is a cluster gateway.The following 4 processes should be running on every master node.

The Kubernetes control plane is split into a set of components, which can all run on a single master node, or can be replicated in order to support high-availability clusters. More specifically, we support configurations that meet all of the following criteria From Kubernetes Architecture made easy | Kubernetes TutorialĪt v1.18, Kubernetes supports clusters with up to 5000 nodes.
