Kubernetes cluster components

Control plane components
The API Server services REST operations and provides the frontend to the cluster's shared state through which all other components interact.

Control the cluster's objects. For example: responding when nodes go down, maintaining the correct number of pods for every replication controller object in the system, populates the endpoints object etc.

Will manage which node will take up the work (where to place the objects, pods for example). It schedules Pods to specific nodes based on labels, taints and tolerations set for the Pods.

Consistent and highly-available B+tree key value store used as Kubernetes backing store for all cluster data.

optional addons
Like DNS - implemented as coredns Pod, you'll always see it. Dashboard is a optional component that provides a web-based interface that allows you to work with Kubernetes. And you can work with components for cluster level resource monitoring and cluster level logging.

Worker components
An agent that runs on each node in the cluster. It makes sure that containers are running in a Pod.

Coordinate communication, is a network proxy that runs on each node and uses iptables, implementing part of the Kubernetes Service concept.

container runtime
like docker, rktd, containerd.That takes care actually of running the containers

Monitors an guarantees the availability of the kubelet and container runtime.

network agent
Implements a software defined networking solution such as weave. An important components which needs to be installed separately.

The CNCF project Fluentd is used for unified logging in the cluster. A Fluentd agent must be installed on all of the Kubernetes nodes and if it not the case - you need to rely to the logging on the individual Pods.