Control Plane: Set of containers running on the (master) nodes that manages the cluster, sometimes called the master
Includes API server, scheduler, controller manager, etcd and more
These containers can be installed in a single master node or can be distributed on multiple master nodes
Kubelet: k8s agent running on nodes(worker), allowing the node to talk back to the k8s master
Kube-proxy: Controls the network, installed on the (worker) nodes
Container Runtime: Underlying software that is used to run containers
Kubernetes Control Plane
etcd: Distributed storage system for key values
data stored inside etcd to manage the cluster, ensures there is no conflict between masters
API Server: Way to talk to the cluster and issue orders, so the user’s management devices, cli all talk to the API server to interact with k8s cluster
Scheduler: Control how and where the containers are placed on the nodes in objects called pods
Controlled Manager: Looks at the state of the whole cluster and everything that is running by using the API.
Takes the orders that are giving it(CLI), or the specs, and applies the CLI by determining the difference between what the CLI asked to do and the current state
CoreDNS: Controls the DNS
Kubernetes Container Abstractions
Pod: Basic unit of deployment, containers are always in pods
Controller: Create/Updates pods and other objects
Variety of Controllers include Deployment, ReplicaSet, StatefulSet, DaemonSet, Job, CronJob, etc.