Introduction to Kubernetes
Call it Kubernetes, or K8s, its hype or rather say ‘growing hype’ is making this container management and orchestration platform picture as the next big thing. Good news for the newbies out there, you are not alone in learning this unicorn ride. 80% of the attendees in KubeCon 2017 were attending it the first time with most common concern being new to Kubernetes and finding the right direction to get started.
The K8s ecosystem where on one hand has grabbed a lot of attention recently in the open source community and business use cases as one of the highest-velocity project, on the other, Google was already using it in production, after working with linux containers for almost a decade. So yeah, Kubernetes was originally developed under the impeccable stewardship of Google’s talent pool, hence, keeping up with the fast lane. It was later on donated to CNCF in 2014, which has now grown mature and resilient enough to make CNCF’s first project to graduate. You did it, Kube!
We will touch the technical details of K8s as we proceed. The tip is read on! Or to be familiar with the basic foundations, hit the play button and watch the video below to have look at this high level yet very basic illustration of Kubernetes for the newbies.
Source: Deis, Inc
In the world of endless possibilities where with the ease of connectivity the architecture of the networking model has expanded tremendously, applications which are a part of the production environment are required to be seamlessly coupled together. However, this traditional architecture of application development can lead to the following challenges:
Containers help us to overcome few of the above mentioned challenges with its isolated environment for each application. With all the required libraries and dependencies installed in it, this isolated environment pulls it away from the dependency mess created by shared system wide libraries, making a containerized application easier to deploy and manage. This means that the applications can span across multiple containers and containers can be deployed across multiple hosts.
Where does Kubernetes fit in?
Containers do solve a few challenges associated with the traditional application architecture but it comes with a cost. These containers need to be scheduled and monitored which becomes difficult as the number increases. Intercommunication across multiple containers on different hosts is difficult with native container technology. Also the need for additional scalability and high availability needs to be met. This is where Captain Kube comes to the rescue.
Using Kubernetes approach to networking, we can build application services that spawn multiple containers, schedule those containers across a cluster, scale those containers and monitor health of those containers over time. Resource management, scheduling and load balancing lay the foundation of Kubernetes’ capabilities and resilience. The workloads are dynamic making room for auto-scaling and to help the scheduler to make pod placement-decisions.The idea here is to keep the edges soft so as to adjust it in the bigger picture hence contributing to effective resource utilization and making it the best container manager of its class.
“47% of users currently deploying container orchestration or platform services on top of OpenStack report using Kubernetes”
April 2017 OpenStack User Survey
Its container-centric management environment also has the ability to manage compute resources for cloud and microservices.
It is production-grade orchestration and management engine for containerized applications. The following benefits are also associated with it.
Concluding the first part of Ins and Outs of Kubernetes blog series, K8s leverages the benefits of containers, solves the challenges that containers face and provides additional benefits. It makes it extremely easy to schedule a large pool of containers across multiple hosts and enables them to communicate with each other. It also provides lifecycle management and ensures the health of running containers. It also enables applications to automatically scale up or down with the fluctuating traffic load.
If you are considering to manage your applications with it, just a heads up, every new thing you find about kubernetes will look more interesting than the last thing you had found. More or less, it’s the way K8s flawlessly manages the containers.