☸️ Kubernetes - Components
Kubernetes installation has three kinds of components:
- Master components implement global behavior of the cluster, usually all running on a single master node that doesn't run any workloads.
- Node components implement local behavior of their node.
- Addons are pods and services that extend standard cluster behavior.
If you are running on a managed Kubernetes cluster like GKE, you don't have to worry about these basic components as they are handled for you.
Master Component Examples
API Server (kube-apiserver
): Exposes Kubernetes API for kubectl
.
Scheduler (kube-scheduler
): Assigns unscheduled pods to nodes to be executed.
Controller-Manager Server (kube-controller-manager
): Runs and manages Kubernetes controllers; they 1) have a desired state 2) watch current state 3) act to achieve or maintain the desired state.
Addon Manager Server (kube-addon-manager
): Manages the addons.
Cloud Controller-Manager Server (cloud-controller-manager
): Runs and manages Kubernetes controllers that interact with various cloud providers.
Cluster State Store (etcd
): Runs and manages etcd
key-value store where Kubernetes stores the cluster data. Your applications will keep on running if etcd
dies, but you can't update them.
Node Component Examples
Kubelet (kubelet
): An agent that runs on each node in the cluster. It makes sure that containers are running in a pod, and kills the containers when it sees that the pod has been marked as "Terminating".
Proxy (kube-proxy
): Maintains network rules on the node and performs connection forwarding.
Container Runtime: Runtime is the software responsible for running the containers, usually Docker.
Addon Examples
DNS (kube-dns
): Serves DNS records for Kubernetes services, each cluster should have one and all pod containers in the cluster will include this DNS server in their DNS searches.
Dashboard (kubernetes-dashboard
): Web-based UI for Kubernetes clusters.
Container Resource Monitoring: Records generic time-series metrics about containers.
Cluster-level Logging: Saves container logs to a central log store for browsing.