There are a lot of different ways to use Kubernetes. Even a quick look at the documentation shows that the number of options for building and managing Kubernetes clusters is overwhelming. The good news is that there are plenty of tools that can simplify the complex task of building clusters.
The first time I used Kubernetes, I used kubeadm. Kubeadm is a tool that, once installed, lets you turn a machine into a Kubernetes control or worker node with a single command. It automates many of the tasks associated with setting up a cluster. My approach was to fire up a cluster with kubeadm and learn as I went. This let me skip a lot of the difficulty that might come with trying to set up the cluster manually as a Kubernetes newbie. When that works, it’s great! The problem comes when it doesn’t work.
When your containers aren’t starting up and you have to look at logs and error messages to figure out why it quickly becomes clear that you need to know more. You’ve got to learn how Kubernetes works behind the scenes, rather than just how to stand up the cluster with a tool like kubeadm. Kubernetes is a complex beast, and there is a lot that can go wrong! If you don’t have some knowledge of the internals, you won’t know what basic troubleshooting steps to take, or how to get useful information about what is broken.
The task of learning how Kubernetes works internally may seem daunting at first. Just remember that it’s not necessary to know every detail right away. A little knowledge of the some Kubernetes basics will go a long way. Even just knowing what the different components of a cluster are, and what they do, can help a lot in determining the cause of an issue.
This is why I found the Kubernetes the Hard Way guide to be so helpful. Google’s Kelsey Hightower created this open-source guide (available on GitHub) that describes all of the steps necessary to build a cluster from scratch. You can follow along and learn how to set up a cluster yourself, without automated scripts or tools like kubeadm. As a learning exercise, this is really great! Once you know how to do it manually, you have some additional knowledge that you can use next time you have an issue with a cluster that you built using a tool like kubeadm. It really makes the process of managing clusters easier.
The great news is that we at Linux Academy loved the Kubernetes the Hard Way guide so much that we created a course around it! It follows the original guide from GitHub but includes videos, cloud servers, and learning activities to guide you through the process of manually building your own cluster. I hope that it will help you become familiar with what’s going on, under the hood, in Kubernetes!