Kubernetes 101:-
Open source container orchestration system.
Architecture:
1. Cluster - HA cluster of compute resources (deployment of kubernetes).
2. Cluster Control plane - manages the cluster in scheduling, applications management, scaling,
deploying etc.
What runs on the control plane?
kube-apiserver:
- It is the front end for the control plane.
- Can be horizontally scaled for HA and performance.
etcd:
- HA key-value store used within the cluster.
- Used as the main backing store for the cluster.
kube-scheduler:
- Identifies pods within the cluster with no assigned nodes, and assigns nodes to them
based on various constraints.
cloud-controller-manager:
- Provides cloud-specific control logic
- Allows kubernetes to link with cloud provider APIs.
kube-controller-manager is a collection of cluster controller processes:
- Node controller - monitor and respond to node outages
- Job controller - responsible for running pods to execute jobs
- Endpoint controller - populates endpoints (links services to pods)
- Service Account & Token controller - responsible for Account/API token creation
3. Nodes - VM or physical servers (Pods are placed on nodes to run containerized applications).
On each of the nodes, several software are run:
● containerd or Docker container runtime to handle container operations.
● kubelet is an agent to interact with the control plane (using the kubernetes API).
● kube-proxy
○ Network proxy running on each node.
○ Coordinates networking with the control plane.
○ Helps implement services and configures rules which allow communication with
pods within or outside the cluster.
4. Pods:
● smallest unit of computing.
● They are non-permanent (therefore not HA).
● A 1 container 1 pod architecture is common.
5. Service
6. Job
7. Ingress
8. Ingress controller