If you’re working with containers, there’s a good chance you’ve heard of Kubernetes, or K8s. In simple terms, Kubernetes is an open-source tool to manage your containers. Let’s learn more about what it is and what it can do.
Accelerate your career
Get started with ACG and transform your career with courses and real hands-on labs in AWS, Microsoft Azure, Google Cloud, and beyond.
Containers are a great way to build portable applications, but when you have a lot of containers running on a complex infrastructure, you may need some tools to help you manage it all. Kubernetes is the leading container management tool today. According to a survey by the Cloud Native Computing Foundation, 83% of respondents use it in production.
What does Kubernetes do?
According to Kubernetes.io, Kubernetes is “an open-source system for automating deployment, scaling, and management of containerized applications.” So if you’re running applications in containers, Kubernetes is a tool designed to make your life a lot easier. And the bigger and more complex your applications become, the more useful Kubernetes is.
So, you have a bunch of compute resources, maybe servers or cloud resources. You want to start deploying containers, but as the application grows it will become difficult to manage manually. Think of it like making a meal in your kitchen. If you do it yourself, you have to think about every detail, like how and when to combine the ingredients, how long to cook it, and cleaning up afterward. But if you go to a restaurant, you simply ask for what you want and the restaurant handles all the details.
Managing containers with Kubernetes is a bit like going to a restaurant. Instead of asking yourself, “Which server should I run this container on?” or “Which server has the most resources available right now?” you just tell Kubernetes you want to run a container, and it handles everything else.
What is a Kubernetes cluster?
Kubernetes handles all of this using a concept called a Kubernetes cluster. A Kubernetes cluster is a collection of available compute resources. Kubernetes is aware of all of the resources in the cluster, and when you want to run a container, it automatically assigns resources for that container and handles the process of running and managing the container using those resources.
A Kubernetes cluster has control plane and worker nodes. Control plane nodes serve to control and manage the cluster itself. Worker nodes run your actual application containers. When I want to run a container with Kubernetes, I simply tell a control plane node, “Hey, I want to run a container!” Kubernetes then assigns that container to a node and runs it. This collection of control plane and worker nodes makes up the cluster.
What else does Kubernetes do?
Those are just the basics when it comes to Kubernetes functionality. Kubernetes includes a lot of different features to help you solve a variety of challenges, including:
- Networking that allows your containers to talk to each other
- Configuration management that enables you to pass configurations to your containerized apps
- Deployment capabilities for rolling out new versions of your code
- Scaling that allows you to assign more or fewer resources to your application
And it can do a lot more than that.
I hope that gives you an idea of what Kubernetes is all about. If you want to get your hands on a Kubernetes environment, check out Minikube. It can help you get Kubernetes running on your local machine quickly and easily.
If you want to dive deeper into Kubernetes with A Cloud Guru, our Introduction to Kubernetes course is a great place to start. And to learn more about the world of Kubernetes certifications, check out our containers certification guide.