What on earth is Kubernetes?
Introducing you to Kubernetes If you have heard this word thrown around a lot these days and you really don't understand it is and what is the hype behind it, then you have come to the right place. Le
Introducing you to Kubernetes
If you have heard this word thrown around a lot these days and you really don't understand it is and what is the hype behind it, then you have come to the right place. Let me enlighten you about "Kubernetes".
Is it just me or these two images look oddly similar?
The word Kubernetes comes from "κυβερνήτης" which is Greek for "helmsman" which means a person who steers the ship.
Kubernetes is a tool that is primarily used to manage containers, a lot of containers.
Think about a scenario where you are having hundreds of containers. Say, you made a change in one of them and now you need to change it on every other container. That wouldn't be a very enjoyable thing to do, would it? This is why we have Kubernetes.
Let's talk about it in more detail.
Kubernetes works on a cluster. A cluster consists of nodes. Nodes are either virtual machines or physical machines (bare metal).
Inside the cluster there are -
Master node (also called Control plane) and Worker nodes.
Worker nodes is where all the container are running. Master node is responsible for managing and overseeing everything that is going on there.
Master node
First let's talk about the the Master node.
It has 4 components - API server, Controller Manager, Scheduler and etcd.
API server
API server is the component through which you communicate with the entire cluster. It is the entry point to the cluster and this is where you give all the instructions. We can do that through the command line interface i.e "kubectl" or the graphical user interface i.e Kubernetes Dashboard.
Controller Manager
Controller Manger is where the control resides. It oversees everything that is happening inside the cluster. Did a container just die? That needs to be restarted. Does something need to be repaired? All of that is managed by Controller Manager.
Scheduler
Scheduler schedules the creation of containers where is sees fit according the workloads of all the worker nodes. It looks at the amount of resources (CPU usage, Memory usage etc.) used by each worker node and creates new containers where the resources are least utilized.
etcd
etcd takes snapshots of the whole cluster. You can think of the snapshot as a photograph that has status data of every node and each container inside that node. You can recreate the whole cluster using these snapshots.
Worker Nodes
Now, lets talk about the worker nodes.
All the containers are run inside these worker nodes. In Kubernetes you have what is called 'pods'. Pod is like a wrapper over the container that abstract away the container.
Every worker nodes has 3 basic components - Container Runtime, Kubelet and Kube Proxy.
Container Runtime
Container Runtime, also called the container engine is the software that you need to run containers on your host operating system. Docker is by far the most popular one.
Kublet
Kubelet is that component which takes all the instructions and configurations from the control plane and create the pod inside that worker node. It assigns the amount of resources (CPU, memory, storage) the container needs from the worker node. It acts as the bridge between the container runtime and the worker node.
Kube Proxy
Kube Proxy takes care of all the networking inside the worker nodes that is needed to efficiently manage these pods.
That was the general overview of Kubernetes and I hope it has given you some clarity about Kubernetes, an open-source container orchestration system for automating software deployment, scaling, and management!
Well, that was mouthful :) Want to connect, contact me on Twitter or Linkedin.
更多推荐
所有评论(0)