Starting with K8s
What is Kubernetes?
k8s is an open-source system for automating deployment, scaling, and management of containerized applications.
It is an orchestration tool for managing containers. It keeps on checking the health of each container and node and brings them back when they go down, so we don't face any down time .
Features:
monitoring
self-healing
High availability
Load Balancing
Auto Scaling
Automatic bin packing
Automatic rollout and rollback
rolling and canary deployment
Secret and configuration management
K8s cluster consists of two types of nodes, one is a set worker node to run our containerized application and a master nodes to manage the worker nodes
COMPONENTS OF CONTROL PANEL
Kube-api-server : This API server directly interacts with the user.It is the front end of the control panel and is meant to scale up as per load.
Etcd:It is a consistent and highly-available key-value store.It stores metadata and the status of the cluster.
kube-scheduler: It watches for newly created pods with no assigned node, and selects a node for them to run on.
kube-controller-manager: It makes sure the actual state of the cluster matches the desired state.
Some types of these controllers are:
Node controller: Responsible for noticing and responding when nodes go down.
Job controller: Watches for Job objects that represent one-off tasks, then creates Pods to run those tasks to completion.git
COMPONENT OF NODE
Container runtime: The container runtime is the software that is responsible for running containers.The popular one is Docker.
Kubelet: It is an agent that runs on each node in the cluster. It makes sure that containers are running in a Pod. Use default port 10255.
Kube-proxy: It maintains network rules on nodes. These network rules allow network communication to your Pods from network sessions inside or outside of your cluster.