This repository is to be used as a walkthrough location for our session at KubeCon 2023 in Amsterdam.
Looking for the fundamentals around Kubernetes storage with volumes, especially persistent volumes, persistent volume claims, and storage classes? Then this tutorial is for you. Michael and Le will introduce some fundamental concepts, then dive right into some common pitfalls of setting up persistent data storage in Kubernetes clusters in the format of troubleshooting labs. During these hands-ons labs, folks will be presented with some common errors when setting up pods with persistent volumes or persistent volume claims in a cluster, and will work to identify and resolve these issues. They will be provided with tips and tools on how to navigate these scenarios. Newcomers to K8S will leave with an understanding of basic concepts and tools to effectively work with and troubleshoot persistent data. Additionally, they will also walk away with suggestions around data management for data services, and how to protect their data.
This session will be a 90-minute workshop
More details can be found here.
To follow along we will have 2 labs available all of which can be ran using minikube.
- Install Minikube (Shown Below)
- Ephemeral Volumes
- Projected Volumes
- Persistent Volumes
- Persistent Volume Claims
- Storage Classes
- Persistent Volumes
- Persistent Volume
- Deploy Application
- Troubleshoot
- Get your high scores
- Volume Snapshots
- Kubestr
- Install Kanister
- Object Storage
- Kanister Blueprints
- Backup
- Restore
- Minikube installation
- Minikube version check
- Start Minikube cluster
First we need a local Kubernetes cluster to work on, I have chosen minikube
I am using WSL so I used the following command, other OS instructions can be found on the link above.
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
You could also use Arkade with the following command:
arkade get minikube
Now that we have minikube installed check the version with this command:
minikube update-check
The below is the output and is what we will be using for this lab workshop.
➜ demo minikube update-check
CurrentVersion: v1.29.0
LatestVersion: v1.29.0
We will be using Docker as our Container or virtual machine manager for minikube you will see though that this could be a list of other options. such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation.
We will start our cluster with the following command:
minikube start --addons volumesnapshots,csi-hostpath-driver -p kubecon23