Did you know that Kubernetes is the most popular container orchestration platform on this planet? It is used by companies of all sizes, from startups to Fortune 500 companies! As Kubernetes adoption continues to grow, so does the demand for engineers who can work with it. If you're looking for a hot skill to learn in 2023, Kubernetes is it!
This articles is for beginners who want to start their journey of learning Kubernetes. By the end of this article you would have a complete picture of Kubernetes.
“Kubernetes is an application orchestrator that works mostly with containerised cloud-native microservices applications”
Not much helpful, right? Let us break down the definition and understand various pieces involved.
A containerised application is an application that is packaged with all of its dependencies and runs isolated from other applications. This makes it lightweight and portable, and it allows developers to deploy applications quickly and easily. Containers are the next generation of virtualisation, and they offer many advantages over traditional virtual machines (VMs) and physical servers.
While Kubernetes can manage different kinds of workloads, it is most commonly used for Containerised workloads.
Since the number of containers in a containerised application may grew very large, we need some solution to manage them. This is exactly where orchestrator comes in. Orchestrator performs the following tasks -
- Deploying the application
- Scaling it up and down based on traffic
- Self-heal applications
- Rolling Upgrades
A cloud-native application is an application that is designed to be deployed and managed in the cloud. Cloud-native applications are typically built using microservices architecture, which allows them to be scaled and deployed independently. They are also typically containerised, which makes them portable and easy to deploy.
A microservice application consists of a number of small independent components that work together to constitute an application. These small and independent components are containerised applications that are often designed for handling specialised features of a larger application.
For example, an e-commerce application would have several microservices like -
- User Profile
With all the jargons out of our way, let us have a relook at the definition -
“Kubernetes is a software solution that manages and deploys (orchestrate) applications packages and deployed as containers (containerised) that are mostly designed for cloud-based architectures (cloud-native).”
Hopefully, this definition now makes much more sense!
I wanted to add this section to enlighten readers about the origin of Kubernetes.
Kubernetes was a platform created by Google that was donated to Cloud Native Computing Foundation as an open-source project. Since then, it has been the most popular orchestration tool on Earth.
Google managed large number of containers for their services and they had their in-house solutions to manage these loads. These solutions are called Borg and Omega. It is the learnings from these projects that ultimately lead to the creation of Kubernetes.
Kubernetes provided an abstraction over the underlying cloud provider and thus gave various cloud-providers a level field to play.
Kubernetes is often shortened to k8s. The 8 characters between k and s are condensed into a number 8. It is this shortened version that is often read as “kates”. You may often hear it read as “K-eight-S” as well!
Some developers often finds it interesting to draw parallels between a OS (like Linux) and Kubernetes. Just like an OS abstracts out the details of its underlying hardware, Kubernetes abstract outs the detail of underlying cloud-architecture. Also, any application that conforms to the APIs provided by Linux can run on any machines similar to a cloud-native application that can run on any cloud as long as it implements the K8s API properly.
This brings us to the end of this article. In this era of cloud-based applications, learning Kubernetes is a great way of staying ahead in the competitive job market. With a thorough understanding of Kubernetes, you can now dive more into the technical topics!
If you find this article interesting, considering dropping a like! 🙂