Hello, I’m going to tell you 7 facts about Kubernetes. Don’t forget – Fact number 6 will probably surprise you.
Now let’s get straight to the number 1 fact on my list:
Table of Contents
1. History of Kubernetes.
It all started from Google as internal project named Borg System between year two thousand and third and two thousand and forth. After 10 years in the middle of year 2014 – Kubernetes was announced as open source version of Borg.
The name Kubernetes originates from Greek, and it means helmsman or pilot.
2. What container is:
To Understand Kubernetes you should know what container is? A container is kind of mini-virtual machine. It is small, as it does not have device drivers and all the other components of a regular virtual machine.
Nowadays containers are so popular and they even threaten to make VMs obsolete for many trivial tasks. – show the container vs VM picture. Docker is the most popular container engine.
3. So now what is Kubernetes actually?
The main idea of Kubernetes is to further abstract machines, storage, and networks away from their physical implementation. So it is a single tool to deploy containers to all kinds of clouds or local physical or virtual machines.
4. Why is Kubernetes needed?
First of all – There is a big issue with containers. You need to keep track of them. Cloud companies like Microsoft, Amazon, Google and basically everyone charge you for CPU time or storage, so you want to make sure you do not have any idle machines spinning out there and doing nothing. Also there is the need to automatically scale when an App or Service needs more memory, CPU, or storage, as well as shut them down when the load lightens. Orchestration deals with these problems. This is where Kubernetes comes in.
5. Kubernetes core components
I will list a few main Kuberentes components to help you understand it better:
- Node– Machine on which Kubernetes is deployed.
- Pod– The smallest and simplest unit in Kubernetes.
- Labels & Selectors – Used to identify and group resources within Kubernetes.
- Controllers are used to drive the actual Kubernetes cluster state toward the desired state.
- Services – A way to identify elements used by applications
- Kubernetes control plane – Manages workload and directs communication across the system.
- etcd – Kubernetes backing store for all cluster data.
- API server– Front-end for the Kubernetes control plane. Serves the K8s API using JSON over HTTP.
- Scheduler – Selects on which Node a Pod should run based on resource availability.
- Controller manager– The process that runs the Kubernetes controllers
- Kubelet– Responsible for the running state of each node
- Kube-proxy– Proxy and load balancer that supports the service abstraction.
- cAdvisor– Container resource usage and analysis agent.
By the way Let me know what are you drinking guys? I’m currently drinking cold water. Type your answers in the comments below.
6. You won’t believe what K8s means!
You won’t believe what K8s means! It is actually an abbreviation derived by replacing the 8 letters ‘ubernete’ with ‘8’ it is commonly used for brevity.
7. What can you do with Kubernetes?
You can use Kubernetes for:
- Load Balancing – If there is a high demand towards a container, Kubernetes is able to load balance the traffic so that the deployment stays stable.
- Storage management – you can configure K8s to automatically mount a storage of your choice if there is such need.
- Automated rollouts and rollbacks – you can automate Kubernetes to create new replica containers for your deployment, remove existing replica containers and adopt all their resources to the new container.
- Automatic bin packing – you can decide how much CPU and RAM each container needs, so Kubernetes can make decisions to manage the resource for the containers
- Self-healing – Kubernetes can check the health of the containers and kill, restart, replace them behind the scene so the service stays without interruptions for the end users.
- Secret and configuration management – You can let Kubernetes to store and manage passwords, OAuth tokens, ssh keys etc. without exposing them in stack configuration. You can also update the above mentioned credentials without rebuilding container images.
Now a little challenge for you: Do you think that the Kubernetes is here to stay or there is better tool or method that is going to replace it. Let me know in the comments bellow what is your opinion and of course if you have any questions – I will try to answer them.
Stay safe – see you next time.