It is easy to get lost in the details of Kubernetes, but what Kubernetes does at the end of the day is pretty simple. Cheryl Hung from CNCF defines Kubernetes as a control loop. Specify how you want your system to look (3 container images a copy and 2 container image b copies) and Kubernetes provides it. Kubernetes compares the desired situation with the real situation and takes steps to fix it if it is not the same.
Kubernetes architecture and components
Kubernetes consists of many components that do not know that they care about each other. All of the components talk to each other through the API server. Each of these components performs its own function and sets out the metrics we can collect later to track. We can divide the components into three main parts.
Control Plane - Master.
Nodes - Where partitions are planned.
Pods - Holds containers.
Control Plane - Master Node
The control plane is an orchestrator. Kubernetes is an editing platform and the control plane makes this editing easy. There are multiple components in the control plane that help facilitate this arrangement. Etcd for storage, API server for communication between components, timer that decides which node partitions to run, and controller manager responsible for checking the current state against the desired state.
Nodes form the collective computing power of the Kubernetes cluster. This is where containers are deployed for operation. Nodes are the physical infrastructure your application runs on, VM servers in your environment.
Pods are the lowest level resource in the Kubernetes cluster. A capsule consists of one or more containers, but mostly only one container. When defining your cluster, limits are set for capsules that define which resources, CPU, and memory should work. The timer uses this definition to decide which parts to place the pods. If there are more than one container in a pods, it is difficult to estimate the required resources and the timer cannot place the pods properly.
What is Kubernetes Relevance with Docker?
Kubernetes and Docker are comprehensive actual solutions to intelligently manage inclusive applications and provide powerful capabilities, and therefore some confusion has arisen. “Kubernetes” is now sometimes used as a shorthand for all Kubernetes-based container media. In reality, they cannot be compared directly, they have different roots and are used to solve different things.
Docker is a platform and required to create, distribute and organize Docker containers. It is designed to organize and plan containers for machine clusters. Kubernetes is a container arrangement system for Docker containers that is more comprehensive than Docker Swarm and aims to efficiently coordinate the solution node in production. Capsules for programming (and can contain one or more containers) are used in the Kubernetes ecosystem and are distributed between nodes to ensure high availability. It can be run on a Kubernetes cluster using a Docker assembly, but Kubernetes itself is not a complete solution and should include custom plugins.
Kubernetes and Docker are basically different technologies, but they work very well together and both improve the management and distribution of containers in a distributed architecture.
Check out our Docker training catalog.