Kubernetes: Explain like I'm 5
3 min read
Not knowing Kubernetes is a leading cause of impostor syndrome among developers. While everybody is talking about Kubernetes, Docker Compose and Swarm on Twitter, you are googling what is Kubernetes. The typical Google response is:
Kubernetes is an open-source orchestration system for Docker containers. it handles scheduling on to nodes and compute clusters and actively manages workloads to ensure that the state matches the user's declared intentions using the concept of labels and pods, it groups the contai- yada yada
In this blog, I'll try to simplify Kubernetes and its Use cases.
What is Kubernetes?
Kubernetes originally means a 'Helmsman' or 'Pilot' in Greek. It acts as the captain of the ship that carries containers. It is a system that is used to manage containers(containerized applications), where containers can be referred to as lightweight virtual machines compared to more traditional VMs. In order to build an application, you will need to build a bunch of containers, managing all those containers is something quite complex and time-consuming. Here's where K8s comes into play, helping us manage those containers. Kubernetes can create and scale containers automatically and do all the weight-lifting for us.
Having an understanding of the components that make up K8s is essential:
The Control plane consists of a scheduler, API server, storage, etcd, etc. On the whole, the control plane keeps track of what is happening in the k8s cluster.
Nodes are physical servers. Your applications are deployed on nodes, all nodes have docker, kubelet, kube-proxy and some other stuff required to communicate with the API server in the control plane.
The smallest unit of a k8s cluster is a Pod. It is a collection of one or more docker containers. Whenever a pod is created, a newly created IP address is assigned to that pod.
Service is an abstract layer on top of pods which provides a single static IP address and DNS name by which pods can be accessed.
Service and Pods have different lifecycles so whenever a pod is destroyed, service will be unaffected.
Ingress refers to the act of entering. It is the same in the Kubernetes world as well. Ingress means the traffic that enters the cluster. The role of Ingress is to maintain the DNS routing configurations.
In Kubernetes, a volume can be thought of as a directory which is accessible to the containers in a pod. You can use Kubernetes volumes to persist the data beyond the pod lifecycle. Volumes are simply physical storage drives like HDD and SSD.
The entire thing, consisting of a control plane and nodes is called the Cluster.
I hope this has been helpful. The article is short because we only intended to cover a high-level overview of Kubernetes. At this stage, you have enough information to follow along with the majority of Kubernetes tutorials on the web.
There is a great blog by spacelift that goes in-depth about Kubernetes and gives you practical examples. You should check it out next .
Did you find this article valuable?
Support Hamees Sayed by becoming a sponsor. Any amount is appreciated!