Kubernetes is a highly modular system, allowing you to build custom setups.
With power comes complexity, and this post describes at least what type of components you will run.
There are 2 types on nodes in a Kubernetes cluster:
- master (hosting Control Plane)
- worker (hosting everything else)
It's not a strict separation, as in some cases masters can also run workloads, e.g. in 1-node clusters like Minikube.
Types of components
In general there are following types of components you would see in a Kubernetes system:
- Standard Kubernetes components
- Cloud specific components
- Custom system components (Addons)
- Application components
Below is an example of a real system based on AWS and some specific choices made for optional components.
Standard Kubernetes components
Control Plane consists of 4 main components:
- etcd (the only stateful component, can be hosted separately)
Worker system components include:
- Contaner Runtime (e.g. Docker)
Custom system components (Addons)
There are usually lots of service tools installed in Kubernetes cluster.
They are used for specific needs and usually have multiple options in each category:
- Web UI (dashboard)
- Ingress controller
- Service Mesh
Application can be expressed in multitude of Kubernetes resources, but usual set is:
- Service Account