﻿- 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 recent survey by the Cloud Native Computing Foundation,
83% of their respondents are currently using Kubernetes in production.
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 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 wanna start deploying containers,
but as the application grows, it'll 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 everything up afterwards. 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 that you wanna run a container, and it handles everything else.
Kubernetes handles all of this using a concept called the Kubernetes cluster. The Kubernetes
cluster is your collection of available compute resources. Kubernetes is aware of all 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 both control plane and worker nodes. Control plane nodes
serve to control and manage the cluster itself while 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 wanna 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 Kubernetes cluster.
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 different challenges. For example,
"How do my containers talk to each other?" Kubernetes handles that with various networking
functionality. "How do I pass configuration to my containerized application?" Kubernetes handles
configuration management too. "How do I roll out new versions of my code?" Kubernetes can do that
using deployments. "How can I assign more or fewer resources to my application?"
Kubernetes handles that with scaling, and it can do a lot more. So that's it. I hope that gives you
an idea of what Kubernetes is all about. If you wanna 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 wanna dive deeper into Kubernetes at A Cloud Guru,
check out our Introduction to Kubernetes course. That's a great place to start.
I've added links for that course, as well as some other resources, including a couple of free EKS
and GKE courses that are currently available at A Cloud Guru. But for now, if you enjoyed
this video, please give it a thumbs up. If you have questions or comments, add them below.
We'd love to hear from you. Thanks for watching. Keep being awesome. We'll see you next time.