Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications.
More information on Kubernetes here: [Kubernetes] (https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/)
Some K8s basics :
- A Pod is the smallest deployable unit of Kubernetes. A Pod can contain one or more containers on a single IP address (internal). Containers within a pod can communicate with each other. Pods are run on Nodes.
- A Node is a physical or virtual machine and it’s components include kubelet, kube-proxy and Container run-time.
- Kubelet is the Node agent that manages containers created by Kubernetes.
- Kube-proxy is used by Service to run a network proxy on each Node.
- Container runtime is the software responsible for running containers. Ex: Docker, containerd, and CRI-O.
- Service allows the use of a stable network address for an application, including a persistent ip address and a local DNS entry within the cluster. Service also acts as a load-balancer across all pods allowing the addition removal of pods from a deployment.
- ReplicaSet is a convenient way to build multiple pods at once.
- Deployment provides declarative updates for Pods and ReplicaSets (rolling updates)
- Control Pane is a node that controls/manages worker nodes. The components of the Control Pane are the API Server, the cluster store, the controller manager, and the scheduler.
- API server – All communication between the various Kubernetes components must go through the API server
- Cluster Store or etcd – Persistently stores the cluster’s configuration, state, and metadata.
- The Controller Manager runs controller processes that monitor and respond to controller events. Some examples of control loops include; node controller, job controller, end point controller, and replication controller.
- The Scheduler assigns pods to nodes.