This is the Way – My K8s Learning Journey, Part 1: Installing my First K8s Cluster

This post is one of a series about my journey in learning Kubernetes from the perspective of a total n00b. Feel free to suggest topics in the comments. For more posts in this series, click this link.

I started a new role at NetApp a month or two ago on the cloud/Astra team and have been spending some time learning more about Kubernetes, watching videos, recording podcasts and the more I learn, the more I realize how little I actually know. This is not unlike when I first started at NetApp in the support center 15 years ago, where I knew nothing about, well, anything.

I have a decent base in Linux (mostly via NFS), containers and storage, which means I have a head start on many admins starting to dive into this world. And as I comb through documentation, try to install things like Minikube, etc. I realize there’s not a ton of information out there that consolidates this stuff. For instance, I started out trying to create a two node K8s cluster.

First, I found this doc when I googled “install kubernetes,” helpfully entitled “Getting started | Kubernetes.” It states:

If you’re learning Kubernetes, use the tools supported by the Kubernetes community, or tools in the ecosystem to set up a Kubernetes cluster on a local machine. See Install tools.

Great! Sounds like me!

On the tools page, I don’t really get a step by step. Instead, I get CHOICES. As a n00b, I don’t want choices! I don’t know what to pick!

Elmo In Flames Meme Becomes Real-Life At A Protest in Philadelphia

They have kubectl, which I have heard of in my reading/watching/listening journey, so I’ll probably choose that. But then I read some more and I see things like “minikube” which I have also heard of. So which one do I choose???

Like all good n00bs, I asked the experts. So, off to the NetApp Pub Slack Channel I went! (identities removed to protect the innocent)

Note: You, too, can get access to experts here. Just sign up! It’s a free, responsive community!

At this point, it looks like if I want to just create a learning sandbox where I run some commands, I use minikube. But if I want to use multiple nodes (which I do) and want to get more of a real-world k8s experience, kubectl is the way (for me, at least).
The Mandalorian - This is the Way - YouTube

So, now the first important step has been taken – choosing how I want to deploy. I have two CentOS 8 clients ready to be configured and used as nodes. These are VMs, with 32GB of RAM and 4 CPUs each. Many people trying to learn K8s don’t have the luxury of large VM lab instances like I do here at NetApp, so minikube might be best for you. Or, if you want to give the cloud a whirl, you can stand up some VMs there and play around. Just remember, it’ll cost you after that free trial runs out.

I *could* have made this all super simple and gone with one of the many managed Kubernetes services out there, such as AKS, GKE, VMware Tanzu, Amazon EKS or whatever your managed service of choice is. (A managed service, of course, is someone else running the show behind the curtain via automation and putting it behind a user-friendly GUI, which, honestly, is the way a lot of these types of deployments are going.)

But that’s not the point of this exercise. I learn better by starting from scratch, half-reading the docs, making mistakes, fixing the mistakes and feeling the pain. That’s because I think that’s how most people take this journey.

Hopefully, we’ll all learn some things on the way and these posts will serve as a cautionary tale. Comment below with corrections, questions and suggestions.

8 thoughts on “This is the Way – My K8s Learning Journey, Part 1: Installing my First K8s Cluster

  1. I have been playing with Kubernetes on and off for a few years now and still like a total n00b! Here are a few of the tools that have really helped me get over the initial “How the heck to I get a proper HA Kubernetes cluster up-and-running to start learning Kubernetes” question.
    – Rancher’s K3S – Lightweight Kubernetes that is really easy to install and automate
    – K3sup from Alex Ellis – https://github.com/alexellis/k3sup – Have passwordless SSH public key access to your VMs? This is the tool for you!

    And in addition, I have to mention HashiCorp:
    – Terraform – I have created and recreated my Clusters a number of times while playing around
    – Packer – I created my VM Templates with Packer, testing K8S on different OS versions due to the soon demise of CentOS 8. I’m using it on VMware and Proxmox but works elsewhere.
    Both of these are not directly related to Kubernetes, however they have helped me with my testing.

    Like

  2. Pingback: This is the Way – My K8s Learning Journey, Part 2: Installing kubectl is a multi-round fight (Round 1) | Why Is The Internet Broken?

  3. Pingback: Learning to Install a K8s Cluster - Gestalt IT

  4. Pingback: NFS Kerberos in a Kubernetes pod? That’s unpossible! | Why Is The Internet Broken?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s