Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications. The components of K8s are:
API server: Central management entity that exposes the API for the control plane.
etcd: Distributed key-value store that stores the configuration data for K8s cluster.
Controller manager: Daemon that embeds various controllers that regulate the state of the cluster, including replication controllers, endpoints controllers, and namespace controllers.
Scheduler: Responsible for scheduling pods onto nodes in the cluster.
Kubelet: Agent that runs on each node in the cluster and communicates with the API server to execute the desired state.
kubeadm: Toolkit that helps you bootstrap a best-practice Kubernetes cluster.
kubectl: Command-line tool for controlling K8s clusters.
Container runtime: Responsible for running containers, such as Docker, CRI-O, or Containerd.
Network plugin: Provides network connectivity between pods, such as Calico, Flannel, or Weave Net.