Kubernetes launched over 6 years ago, and during the last two years, it has gained enormous popularity. Our Kubernetes trainer Steven Trescinski is convinced that Kubernetes is not merely a hype, but definitely here to stay. And he’s not alone: in Stack Overflow’s 2020 Developer Survey, Kubernetes even comes in as the number three most loved platform. But what is Kubernetes exactly, and what are the benefits of using it? We explain it in this article.
What is Kubernetes in simple words?
Kubernetes coordinates all different components of a computer application on a cluster of servers. All these components can be coordinated separately, which means Kubernetes can divide computing power, storage capacity etc. over the different components in function of demand. When you have an application with a lot of users during the day, and only a few users at night, you can configure Kubernetes to automatically scale available resources in function of the number of users.
Kubernetes will divide resources efficiently over all its components, which are called containers. Because resources are divided in containers, Kubernetes can deliver an application to the user on-demand, using whatever server space is appropriate and available for that task. When the performance of an application ends, Kubernetes shuts down and removes the application from the space, freeing up capacity for other use. If a service is somehow interrupted, Kubernetes can relaunch it immediately to continue delivering the service.
Why has Kubernetes become that popular?
One of the reasons Kubernetes became that popular is because of the community and support behind it. Kubernetes has one of the largest open source communities (more than 27,000+ stars on GitHub), has contributions from thousands of organizations and is housed within the Cloud Native Computing Foundation (CNCF). The CNCF is a neutral open source foundation with Google, Microsoft and AWS among its members. The fact that these large companies are members of the foundation, shows they have faith in Kubernetes being a part of their Cloud strategy.
Another reason why Kubernetes became so popular, is because it can basically work in any cloud. Kubernetes can be deployed in a company’s on-premises physical data center, as well as in one of the many public cloud environments (e.g. AWS, GCP, Azure). This allows developers to focus on building applications and then easily deploy them to any of those environments, which accelerates a company’s Kubernetes adoption. Many companies are still sharing their assets between their data centers on-premises and the public cloud, making a hybrid cloud technology like Kubernetes an ideal solution.
What are the benefits of using Kubernetes?
First of all, Kubernetes is very future-proof. As we stated in the previous paragraph, Kubernetes can basically work with any type of underlying infrastructure, whether it is a public cloud, a private cloud, or an on-premises server. Moreover, all major cloud vendors (AWS, Azure and GCP) support Kubernetes, and even provide out-of-the-box solutions to integrate Kubernetes in your Cloud strategy. Moving Kubernetes clusters from one cloud vendor to another is very easy as well, because you don’t (or barely) have to change the deployment and management processes.
Another reason why we can consider Kubernetes future-proof is because of the wide support it is getting. Not only is it housed within the CNCF, even competing technologies are now endorsing Kubernetes. Docker for example started offering Docker Kubernetes Service instead of just Docker Swarm, which is Docker’s own native clustering solution for Docker containers.
Kubernetes is also very scalable. The containers Kubernetes uses are lightweight and enable you to scale instantly. This can help you when your application unexpectedly gets a lot more traffic than usual, for example. Containers also make it easier to divide your application into different components, which makes it easier to scale all different components independently. For instance, you can decide to put your application in one container, and your database in another.
Kubernetes also allows multiple containers to share the same OS and network connection. This is very efficient when it comes to resource utilisation. Since containers are lightweight and take up fewer resources, using Kubernetes can save you hardware and data center costs.
On top of that, using Kubernetes can lead to more productivity as well. There is a wide range of tools available in the Kubernetes ecosystem, which can help you streamline workflows and shorten life cycles drastically. Prometheus is a good example. It is one the most popular monitoring tools used with Kubernetes, and allows you to query and visualise data. This wide range of available tools allows you to customise Kubernetes to cater your exact needs. What’s even better: most of the tools in the Kubernetes ecosystem are open-source and free to use.
From a business perspective, you could also use Kubernetes to attract new talent. Many (young) software engineers want to work in companies that use modern, cloud-native technologies. And Kubernetes is definitely one of them: Kubernetes comes in as the number three most loved platform in Stack Overflow’s 2020 Developer Survey. Even for your current workforce, working with new technologies can be exciting and improve general employee satisfaction in the long run.
What is Kubernetes used for?
You can start using Kubernetes if your application uses a microservice architecture. If you have transitioned or are looking to transition to a microservice architecture, it’s likely you’ll be using software to containerize your application, so Kubernetes might suit you well.
Apart from that, Kubernetes is used because it provides all the advantages we just mentioned: scalability and flexibility, cost-efficiency, improved productivity and the fact that it has become future-proof and widely supported.
How do I start learning Kubernetes?
First of all, you will need to have a good understanding of containers and Docker in order to start working with Kubernetes. A good place to start is Docker’s documentation. This list on GitHub also provides an overview of Docker resources and projects which you can use to study.
After you gained a good understanding of how Docker and containers work, you can move on to Kubernetes. Read Kubernetes’ documentation and learn the basics about pods, services and deployments. Then you can try to spin up a Kubernetes system yourself, and try it out — one of the best ways to learn is by doing, after all.
If you’re looking for a more structured way to learn about Kubernetes with the supervision and help of an IT professional, a training course might be a good idea. Our training Getting started with Kubernetes is a good place to start if you’re a beginner. If you’re looking to deploy Kubernetes on a Cloud vendor, our courses Getting started with Azure Kubernetes service or Running Containers on Amazon Elastic Kubernetes Service (Amazon EKS) might suit you as well.