Debug School

Kubernetes Introduction

What is Kubernetes?

Kubernetes in short called k8s is a container orchestrator tool.
k8s helps in application management with advantages like scalability, workload management, better networking management etc..

Why Kubernetes

To avoid conflict of services running in a container with that of services running in a different container but same port. Also to easily manage multiple containers at the same time. Updating/patching or replicating applications is easy with kubernetes.

Explained Kubernetes Architecture

The three main components involved are the master node (control plane), worker node, workstation (accessing/requesting kubernetes).
kubectl is one of the tool, with which we can query our requirements to kubernetes and this reaches the master node and is scheduled accordingly to the worker node.
Master and worker nodes run together in a k8s cluster.
All the management happens in the master node whereas the actual application runs in the worker node.
A master node can be both master and a worker node, but reverse is not possible.

Master Components

  1. kube-api-server : This is the point of contact for all the communication that happens in and out the k8s cluster. All the components interact with api-server.
  2. Storage : etcd is the storage component and it is powered by CNCF. This takes care of storing all the updates like the current state of cluster in form of key-value pair.
  3. Kube-controller-Manager: This is a service/daemon that runs continuously to see if the actual and desired state of cluster are matching.
  4. Kube-scheduler: This is reponsible for schedulling all the work to worker nodes.

Worker Components

  1. kubelet : This is an agent which runs on every worker node and checks with api-server for any updates to be done to the pods running in the node. Default port on which it runs is 10255
  2. container engine: Which we use to manage the conatiner inside the pod. example: containerd
  3. kube-proxy: For networking capability

Workstation Components:

kubectl(we can use json or yaml)

What is POD?

pod is the atomic unit of schedulling. It is a logical unit not a physical one. Pod can have one or more container running in it. The actual work/application will be running in the pods.

Top comments (0)