Previously we looked at what Dockers and Containers are all about. They are used to deploy microservices. These microservices are light weight services and can be in tens and with hundreds of replications. Ultimately this leads to thousands of containers on hundreds of nodes/machines. This brings some complex challenges.
- The services in the containers are deployed on nodes which are least utilized and have the required resources like SSD/GPU and is not deterministic. Then how do the services discover each other?
- There can different failures like network, hardware. How to make sure that at any point of time a fixed number of containers are available irrespective of the failures?
- Application updates are a norm. How do we update such that there is no downtime of the application? Blue-Green, Canary deployment ….
Like wise there are many challenges which are a common concern across multiple applications when working with microservices and containers. Instead of solving these common concerns in each of the applications, Kubernetes (K8S) does this for us. K8S was started by Google and later on maintained by Cloud Native Computing Foundation (CNCF). Google a few days back took a step back on K8S and let others in the ecosystem get more involved in it.
Although Google started K8S, a lot of other companies have adopted it. AWS EKS, Google K8S Engine (GKE), AKS to name a few. This is another reason why we would be seeing more and more of K8S in the future.
Who doesn’t love comics. Here is one on K8S from Google.
- The Kubernetes in Action Book starts with a brief introduction about Docker and K8S. And jumps into the practical aspects of K8S. Wish there was a bit more about Docker.
- As with any other book the starts with simple concepts and gradually discusses the complex topics. Lot of examples are included in the book.
- K8S ecosystem is growing rapidly. The only gripe is that the K8S ecosystem is not included in the book.
K8S is a complex piece of software to setup if one is new to Linux. There are multiple ways of setting up K8S as mentioned here. One easy way is to use a preinstalled K8S cluster in the Cloud. But, this comes at a cost and also not everyone is comfortable with the concepts of Cloud.
So, there is Minikube which is a Linux virtual machine with K18S and the required softwares already installed and configured. Minikube is easy to setup and runs on Windows, Linux and Mac. In the future blogs, we will look at the different ways of setting setting up K8S and how to use the same. Keep looking !!!
Finally would recommend the Kubernetes in Action book to anyone who wants to get started with K18S. The way we build applications had been moving from monolithic to microservices way and K18S accelerates the same. So, the book is a must for those who are into software.