Knative on Minikube

Content:

Overview
1 - Setup the work environment
2 - Install Knative
3 - Deploy a Knative Service
4 - Create a Knative Revision
5 - Traffic Management
6 - Auto-Scaling
Debugging Tips

1 - Setup the work environment with Minikube

The instructions will work on Linux and macOS, they have not been tested on Windows.

The Minikube Getting Started has detailled instructions on how to install Minikube for the different platforms.

At the time of this writing, Minikube was at v1.32.0.

This workshop is based on Knative v1.12.3.

Step 1 - Install required tools:

To run the workshop completely off your own workstation you need the following tools. They have been installed on the bwLehrPool environment, already.

Tool Source
Minikube https://minikube.sigs.k8s.io/docs/start/
git CLI https://git-scm.com/downloads
kubectl https://kubernetes.io/docs/tasks/tools/install-kubectl/
kn https://github.com/knative/client/releases
bombardier (HTTP Load generator) https://github.com/codesenberg/bombardier/releases

Step 2: Download the code from this repository

git clone https://github.com/Harald-U/knative-on-minikube.git
cd knative-on-minikube/code/

Note: On bwLehrpool change into the PERSISTENCE directory before cloning the repository.

Step 3: Start a Minikube “cluster”

In this workshop we will use Minikube in a somewhat minimal configuration with 2 CPUs and 4 GB of memory. (It is intended to run on a notebook with only 8GB of RAM available.)

The Docker driver allows you to install Kubernetes into an existing Docker install. On Linux, this does not require any virtualization at all, on macOS this is using the virtualization of Docker Desktop (HyperKit).

minikube start --cpus 2 --memory 4096 --driver=docker

Step 3: Start a Minikube “cluster” on bwLehrpool

bwLehrpool has sufficient RAM to increase memory for Minikube, you can use this command instead:

$ minikube start --cpus 2 --memory 6144 --driver docker

which will assign 6 GB of RAM.


Continue with 2 - Install Knative