Kube-system
This component adds some useful controllers, operators and extensions to the kube-system
namespace.
Quorum
This is a simple set of pods, with a PodDisruptionBudget (PDB) of 1, which will be scheduled on control-plane hosts and prevents them from being drained e.g. during a update by accident. It's mainly there since one can not put PDBs on static pods. It's built to integrate nicely with the system-upgrades component.
Descheduler
The descheduler is supposed to help rebalancing workload after updates and alike, since small clusters will otherwise run with quite unbalanced pods. The descheduler should rebalance workload, keeping each CPU a bit cooler and this way reduce potential noise as well as the risk for all workload when a single node fails.
Metrics-server
The metrics-server is the standard component to provide basic pod metrics that can be used for vertial and horizontal pod autoscaling. Mainly here for completeness and insights using kubectl top pods
.
Nice to knows
-
kubeadm
doesn't provide proper certificates for the kubelet by default, which makes metrics-server require--kubelet-insecure-tls
until one fixes the certificates. - One has to explicitly enable
--authentication-token-webhook
forkubeadm
-installed clusters in order to allow access to the metrics endpoint for metrics-server. - One can't put PDBs on either daemonsets nor static-pods, therefore one requires a deployment to keep a quorum for e.g. etcd.