You'll need to have either a container tool (docker) or virtual machine software installed first. This is called minikube's "driver".
drivers
docker
You can use docker itself as a driver on all minikube's supported operating systems (windows, macos, linux). It works by creating a docker container on your host machine which itself runs various "pods" (docker containers) inside itself. It's basically just using docker as a vm.
kvm
KVM/libvirt can be used as a driver on linux. Minicube will create a virtual
machine and set it up as a kubernetes node with all the needed pods on it. You
can validate your libvirt setup with virt-host-validate
, but basically if you
can make a virtual machine normally you should be fine.
Start a cluster using the kvm2 driver:
minikube start --driver=kvm2
To make kvm2 the default driver:
minikube config set driver kvm2
none
There's also a way to run minikube without a vm on "bare metal": https://minikube.sigs.k8s.io/docs/drivers/none/
start or create a minikube cluster
minikube start
stop a cluster
minikube stop
delete a cluster
minikube delete
connecting to portainer
node port
minikube delete
minikube start
curl -L https://downloads.portainer.io/portainer-agent-ce211-k8s-nodeport.yaml -o portainer-agent-k8s.yaml; kubectl apply -f portainer-agent-k8s.yaml
minikube ip
Then take the IP + 30778 and enter that into portainer to connect the cluster:
192.168.39.176:30778
The 30778 comes from actually opening the downloaded yaml file and seeing the IP. Portainer's prompt suggests 9001 which doesn't work.
switching from CE to EE
You'll want to stop your portainer server and then run this to redeploy the
agent so that the other portainer instance is able to connect to it as if it's a
fresh install.
kubectl -n portainer rollout restart deployment portainer-agent
nginx ingress
minikube addons enable ingress
additional clusters
You can create and manage additional named clusters with the -p
option.