Advanced use of Kubernetes
Deploying your own Kubernetes clusters¶
We are going to be using Jetstream-2 for this section and will rely on their documentation for Kubernetes deployment
Helm¶
Helm is the package manager for Kubernetes.
Zero to JupyterHub¶
Project Jupyter maintains a lesson on deploying K8s and Helm with minik8s
across a variety of commercial cloud solutions.
The closest example that you can attempt is the Bare Metal example on JS-2
Miniaturized versions of Kubernetes¶
Why use mini versions of Kubernetes?
There are multiple projects developing "light-weight" Kubernetes.
The justification for these projects being that full Kubernetes deployments with all of its functionality increases the cognitive load and the number of configurations and parameters that you must work with when running containers and clusters, particularly at the edge.
Projects that are working on miniaturized versions of K8s:
name | functionality | use cases |
---|---|---|
minikube | ||
microK8s | runs fast, self-healing, and highly available Kubernetes clusters | |
K3s | runs production-level Kubernetes workloads on low resourced and remotely located IoT and Edge devices | |
K3d | lightweight wrapper that runs K3s in a docker container |
Install K3s
¶
Install minikube
¶
Minikube is useful for running K8s on a single node or locally -- its primary use is to teach you how to use K8s.
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
sudo minikube config set vm-driver none