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!
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!
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.
9 thoughts on “This is the Way – My K8s Learning Journey, Part 1: Installing my First K8s Cluster”
Oh, that sounds like the start of an interesting journey… I’ll certainly follow as I’m pretty much in the same boat as you.
LikeLiked by 1 person
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.
Nice! I might end up trying those out at some point as well.
I recently cobbled together a small k8s tutorial for some friends who, like you, had some decent Linux background but wanted to get into Kubernetes. I posted it here: https://darkstar.github.io/
Might help you to fill some of the gaps 🙂
Awesome! Will check it out!
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?
Pingback: Learning to Install a K8s Cluster - Gestalt IT
Pingback: NFS Kerberos in a Kubernetes pod? That’s unpossible! | Why Is The Internet Broken?
Pingback: New Year, New Role! | Why Is The Internet Broken?