☸️ Kubernetes

Updated at 2018-12-31 02:40

Kubernetes installation has three kinds of components:

  1. Master components implement global behavior of the cluster, usually all running on a single master node that doesn't run any workloads.
  2. Node components implement local behavior of their node.
  3. 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.