What is Kubernetes ( k8s ) and why would I want to use it?
Kubernetes ( k8s ) is a free tool to manage containers ( portable applications ) in a cluster. Applications used to run on physical servers that
requred maintenance and care. It was common to have multiple applications running on the same server. That caused a lot of pain when applications required conflicting versions
of dependencies.
Virtualization transformed the landscape, allowing separate “servers” or virtual machines to be running on physical servers. This was a significant step
towards resolving the conflicts. However, that generated a lot more work for system administrators to maintain the exponential increase in servers.
Next, containerization has transformed the lastscape by reducing the number of physical and virtual servers system administrators have to maintain. This is done by creating and
using small, portable chucks called images. These images contain the minimal requirements for applications to run independantly. This is solved the maintenance and virtualization
sprawl problem, but if you have more than a few servers running containers, management of those can be challenging. Additionally, having to keep track of which containers are
running on each physical/virtual server is a challenge. Finally, if a server hosting your containers goes down for any reason, those applications are not running. That can be a
significant issue.
Now, Kubernetes ( k8s ) has transformed the landscape again. While building on the benefits of containerization, k8s has brought high availability and cluster management to the
table. When a physical/virtual server in the cluster is down for any reason, the change is noticed by the management nodes, collectively known as the control plane, action is
then taken to start the application containers on another node in the cluster. This ability and automation has make k8s a very popular option.
There are many ways and tools to install and confgure k8s clusters. There are a lot of decisions to be made. In these articles, I describe how to setup a cluster, hopefully, with the least amount of confusion.
Install Kubernets with kubeadm