20250328:07 - Learning Kubernetes
Goals
It's becoming increasingly clear that I'll need some basic skills in Kubernetes (K8s) in my Support Engineering role, particularly as it relates to GitLab deployments and sysadmin. It's a topic that I've been avoiding, but I can see that within the next 6-12 months it'll be critical to at least have some level of comfort in working with k8s clusters. Of course, a big motivation is that I've been encouraged to learn about it by my manager
Happily we have a couple of training modules
These are quite involved, but I think that I can follow along unofficially and do some of the readings and experiments that take my fancy.
Selected Stages
Stage 1 Background Knowledge
-
Follow Tutorial: Kubernetes Basics -
Read Kubernetes Concepts -
Study the Kubernetes Cheatsheet -
Helm QuickStart -
Introduction to k3s - Try K3sup a light-weight utility to get from zero to KUBECONFIG with k3s on any local or remote VM.
-
Learn about Octant Octant is an open source developer-centric web interface for Kubernetes that lets you inspect a Kubernetes cluster and its applications. Extremely helpful while you're learning. -
Trouble-Shooting Kubernetes
Stage 2: Hands-on
Basics
-
Launch a Single-node Kubernetes Cluster using Minikube -
Deploy containers using kubectl -
Kubernetes for the Absolute Beginners -
Helm Package Manager
Intermediate
-
Networking in Kubernetes -
Kubernetes Networking: Ingress with NGINX -
Kubernetes Fundamentals: Volumes and Mounts -
Kubernetes Volumes: Replicated MongoDB with a StatefulSet -
Kubernetes Fundamentals: ConfigMaps and Secrets -
Troubleshooting Kubernetes Applications
Stage 3: Projects
-
Google Cloud: Set up a Cluster using gcloud command tool; you have access to a Google Cloud project via gitlabsandbox. Related questions can be directed to #sandbox-cloud-questions
slack channel.In the Comments, provide the following:
- The
gcloud
command used to create the cluster - Dump current cluster state
- The
-
Create a cluster using eksctl
with Cluster Autoscaling enabled In the comments, provide the following:- The command used to create the cluster
- The output after the cluster is created
- A tail of the Cluster AutoScaler logs
-
Deploy a sample application to a Cluster, with a Persistent Disk and Service using a YAML file In the Comments, provide the following: - Content of the YAML file used
- Describe the Pod, Deployment and Service created
Stage 4: Background Helm Chart Knowledge
This stage is meant to provide your with detailed background knowledge to get you started.
Helm Charts
-
How To Create Your First Helm Chart -
Building Helm Charts From the Ground Up: An Introduction to Kubernetes -
Helm from basics to advanced -
The Chart Template Developer’s Guide -
Introduction to Helm 3
GitLab Cloud Native Charts
-
Architecture of Cloud native GitLab Helm charts -
Configuring Chart Globals -
Deployment Guide -
Storage Guide -
Troubleshooting
Stage 5: Hands-on Exercises
These exercises are meant to give hands-on experience
Basics
-
Setup GKE Resources & Deploy GitLab (See item 4) -
Manually Setting Up Secrets -
Deploying GitLab -
Upgrading GitLab -
Migrating from Omnibus-GitLab package based installation
Intermediate