Kubernetes the Hard Way
Kubernetes is already the most popular container orchestration platform, and expected to keep the top spot in coming year as well. So, if you are planning to get onto Kubernetes bandwagon, this is a good time. And if you’re not up to speed with what Kubernetes does, this post is a good place to start.
One of the best things about Kubernetes is that it's very easy, almost trivial to launch your own Kubernetes cluster using automation scripts. But, launching a cluster is seldom the end goal. You want to use your Kubernetes cluster to orchestrate some containers. And, if you’re just playing around and want see how it works, automation defeats the purpose.
So, the bottom line is: it’s important you understand what goes on behind the scenes.
How do you do this? By learning Kubernetes the hard way. By specifically making sure that you know what’s going on under the hood when you run a script.
There’s a resource that helps you do this. It’s called Kubernetes The Hard Way. And with 2500+ GitHub stars and 150+ forks, this guide is one of the most extensive guides out there to help you learn Kubernetes.
Kubernetes The Hard Way covers topics like configuring CA and TLS certificate generation, bootstrapping an etcd cluster, bootstrapping Kubernetes control plane, and much more, in a succinct, easy to follow manner. The lessons are aggregated as labs, with each lab forming a self contained unit of information, starting with the why and moving on to the how aspect of the topic at hand.
Here’s a few sample labs:
Bootstrapping a H/A etcd cluster. Kubernetes components are stateless, making it easy to manage the cluster. To manage state relevant for your applications, you can use etcd. However, it is important to separate the etcd installation from your application running on Kubernetes to make sure etcd can be independently updated and gets the resources required for it to run smoothly. This lab explains how to bootstrap a 3 node etcd cluster.
Bootstrapping Kubernetes workers on specific machines. Workers are nodes that actually do the work, i.e. run you application containers. It’s important to make sure you segregate machines that run workers and those running critical Kubernetes components. This way you make sure pods running critical Kubernetes components are not affected by application load. In this lab you’ll learn how to do this.
Smoke test. For the uninitiated, smoke testing refers to non-exhaustive set of tests used to ensure the most basic functionality of a system works as expected. In this lab you get introduced to a Kubernetes smoke testing to make sure your cluster is running as expected.
There are several other labs too, like configuring a H/A Kubernetes control plane, remote access via a Kubernetes client, and so on. And, as with all things open source, the best thing about the guide is: as it gets popular, it gets bigger and better.