3 min read | by Jordi Prats
Whenever we need to test something on a Kubernetes clusters one of the easier (and cheaper) option is test it out using minikube. However, how do we test a feature that require multiple clusters?
To be able to have several minikube clusters we just need to start them using a profile:
$ minikube start --profile cluster1
😄 [cluster1] minikube v1.24.0 on Ubuntu 20.04
✨ Automatically selected the docker driver. Other choices: kvm2, none, ssh
👍 Starting control plane node cluster1 in cluster cluster1
🚜 Pulling base image ...
🔥 Creating docker container (CPUs=2, Memory=7900MB) ...
🐳 Preparing Kubernetes v1.22.3 on Docker 20.10.8 ...
▪ Generating certificates and keys ...
▪ Booting up control plane ...
▪ Configuring RBAC rules ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: storage-provisioner, default-storageclass
🏄 Done! kubectl is now configured to use "cluster1" cluster and "default" namespace by default
$ minikube start --profile cluster2
😄 [cluster2] minikube v1.24.0 on Ubuntu 20.04
✨ Automatically selected the docker driver. Other choices: kvm2, none, ssh
👍 Starting control plane node cluster2 in cluster cluster2
🚜 Pulling base image ...
🔥 Creating docker container (CPUs=2, Memory=7900MB) ...
🐳 Preparing Kubernetes v1.22.3 on Docker 20.10.8 ...
▪ Generating certificates and keys ...
▪ Booting up control plane ...
▪ Configuring RBAC rules ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: default-storageclass, storage-provisioner
🏄 Done! kubectl is now configured to use "cluster2" cluster and "default" namespace by default
Using kubectl config get-contexts we can see how it have registered both clusters:
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
cluster1 cluster1 cluster1 default
* cluster2 cluster2 cluster2 default
We can switch context using kubectl config use-context
$ kubectl config use-context cluster1
Switched to context "cluster1".
Finally, we can destroy the minikube clusters by specifying it's profile name:
$ minikube delete --profile cluster2
🔥 Deleting "cluster2" in docker ...
🔥 Deleting container "cluster2" ...
🔥 Removing /home/jprats/.minikube/machines/cluster2 ...
💀 Removed all traces of the "cluster2" cluster.
$ minikube delete --profile cluster1
🔥 Deleting "cluster1" in docker ...
🔥 Deleting container "cluster1" ...
🔥 Removing /home/jprats/.minikube/machines/cluster1 ...
💀 Removed all traces of the "cluster1" cluster.
Posted on 21/03/2022