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

  1. 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.

  2. Etcd:It is a consistent and highly-available key-value store.It stores metadata and the status of the cluster.

  3. kube-scheduler: It watches for newly created pods with no assigned node, and selects a node for them to run on.

  4. 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

  1. Container runtime: The container runtime is the software that is responsible for running containers.The popular one is Docker.

  2. 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.

  3. 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.