DEV Community

Dotnettricks
Dotnettricks

Posted on

Details of Kubernetes and Relation between Docker and Kubernetes

Kubernetes is an extensible, portable, open-source platform for managing containerized workloads and services to facilitate both declarative configuration and automation. The word Kubernetes mainly originates from Greek, meaning helmsman or pilot.

How does Kubernetes work?

It is easy to get lost in the details of Kubernetes but at the end of the day, Kubernetes is working in a pretty simple way. However, Cheryl Hung from the CNCF describes Kubernetes as a control loop. Kubernetes compares the desired state to the actual state and if they will not be the same, the steps need to be taken to make it correct.

Kubernetes architecture and components:

Kubernetes is made up of various components that do not know are care about each other. The components are able to talk to each other through the API server. Each of these components operates its own function and then exposes metrics that we can collect for monitoring later on. Kubernetes can break down the components into three main parts:
The Control Plane – The Master Node
Pods – Holds Container
Nodes – Where pods get scheduled

The Control Plane – The Master Node: the Control plane is mainly the orchestrator of Kubernetes. Kubernetes is an orchestration platform and control plane mainly facilitates that orchestration. There are several components in the control plane which can help to facilitate that orchestration, the API server for communication between components, the Etcd for storage, the scheduler which decides what nodes pods should run on, responsible to check the current state against the desired state and the controller manager.

Pods: Pods are the lowest level resource in the Kubernetes cluster. A pod can be a build-up of one or more than one container, but mostly just a single container. While defining the cluster, limits are set for pods that define what resources, CPU and memory need to run smoothly. The scheduler uses this definition to decide on which nodes to place the pods. If there will be more than one container in a pod, then it is difficult to estimate the requirement of the resources and the scheduler will also not be able to place the pods appropriately.

Nodes: Nodes make up the collective compute power of the Kubernetes cluster. This is where containers are actually get deployed to run. Nodes are the physical infrastructure that your application runs on, the server of the VMs in your environment.

Relationship between Docker and Kubernetes:

Kubernetes and Docker both are comprehensive and effective solutions to intelligently manage containerized applications and provide powerful capabilities. However, from this, some confusion has also arisen. Kubernetes are sometimes used as a shorthand for the entire container environment which is based on the Kubernetes. But in reality, they are not directly comparable and have different roots and solve for different things.

Docker is a platform and tool for building, running and distributing Docker containers. Docker has its own native clustering tool that can be offered to orchestrate and schedule containers on machine clusters. Kubernetes is mainly a container orchestration system for the Docker Containers which is more widespread than Docker Swarm and also works for coordinating clusters of pods that are scheduling units in the Kubernetes ecosystem.

They are also distributed among nodes to provide high availability. One can run a docker build on a Kubernetes cluster easily but Kubernetes itself is not the complete solution and is meant to include custom plugins.
So, Kubernetes and Docker both are fundamentally different technologies but they can work very well together, and thus they are very meaningful in the technology market. So, getting Docker and Kubernetes online training is a necessary part for the developer today to become stable in the technical world. So, do Docker, Kubernetes, and
DevOps courses in Hyderabad to become an expert in this field.

Top comments (0)