I'm learning K8S !

On my way to my CKA. Working through Linux Foundation Kubernetes Fundamentals LFS258.

Because I like to optimize my learning and enjoy the feeling of my head esplode (sic), I'm using GCP instead my comfortable AWS. And I'm learning/using Terraform instead of the GCP console and CLI for provisioning resources.

For extra fun, I'm taking the recommended detour of setting up Kubernetes the Hard Way.

I've created this repo so you can both follow me on my journey (yay me!) and more importantly glean something extra if you take the same journey (yay you!). You can follow me on LinkedIn as I intend to post my progress.

This is mostly a raw tree of my work but I'll seek to add notes and such to help follow it.

README.md files are in each folder instead of all in this one.

I'm using Ubuntu Linux 20.04 in WSL 2 on Windows 11, VSCode with remote extension. Everything I'm doing is specific to Linux.

Prerequisites

If you're following along with what I'm doing, here's what you need:

  1. Linux
  2. Create a Google Cloud account
  3. Install and configure gcloud
  4. Install Terraform
  5. Install jq.

Where to start?

I started with Linux Foundation Kubernetes Fundamentals LFS258. This is a paid class. (I won't share stuff from the class, just what I'm doing on side exercises.) Kubernetes the Hard Way was referenced as a good place to learn how to manually install Kubernetes, so I'm detouring to work through it.

Configurability Scratch Pad

  • Control Plane CIDR/IPs
  • Node CIDR/IPs
  • Service Cluster CIDR
  • Pod Cluster CIDR
  • Number of Controllers
  • Number of Nodes

Dockerfile is here!

I added a Dockerfile to do all the building and to simplify running this as an example. I do not have Windows support yet for launching, but you can use WSL2 (if you do, put the source repo on the Linux file system.)

Prequisites should be:

  1. Docker
  2. Google Account created with a project
  3. gcloud installed, configured, authenticated with owner permissions (sorry, you can hack hardway-exec.sh if you want least/lesser privilege), and default project set.

Checkout this repo and execute ./hardway-create.sh from the root to create and hardway-destroy.sh to destroy.