4 min read | by Jordi Prats
If you try to install minikube on an Apple Sillicon (such as Apple M1, M2...) you will face that some hypervisors doesn't support arm64 yet. Using Docker Destop, on the other hand, has recently changed it's license so it might not be suitable to you
$ minikube start
π minikube v1.26.1 on Darwin 12.5.1 (arm64)
β¨ Automatically selected the parallels driver. Other choices: ssh, qemu2 (experimental)
β Exiting due to DRV_UNSUPPORTED_OS: The driver 'parallels' is not supported on darwin/arm64
$ minikube start --driver docker
π minikube v1.26.1 on Darwin 12.5.1 (arm64)
β¨ Using the docker driver based on user configuration
π£ Exiting due to PROVIDER_DOCKER_NOT_RUNNING: "docker version --format -" exit status 1: Cannot connect to the Docker daemon at unix:///Users/jordiprats/.rd/docker.sock. Is the docker daemon running?
π‘ Suggestion: Start the Docker service
π Documentation: https://minikube.sigs.k8s.io/docs/drivers/docker/
There are several alternatives to Docker Desktop but the one that I found more convenient and easier to install is Colima
Let's start by installing minikube using brew:
brew install minikube
We'll need to install docker cli (that's not the daemon) and docker-compose:
brew install docker docker-compose
At the end of the installation log you'll find two commands do run:
$ brew install docker docker-compose
(...)
==> docker-compose
Compose is now a Docker plugin. For Docker to find this plugin, symlink it:
mkdir -p ~/.docker/cli-plugins
ln -sfn /opt/homebrew/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose
Make sure you run them before proceeding:
mkdir -p ~/.docker/cli-plugins
ln -sfn /opt/homebrew/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose
At this point we'll have the docker command but it won't be any daemon to actually run containers:
$ docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
To install the daemon to run the containers we'll use colima. We can install it using brew as well:
brew install colima
It's going to take a while, but once installed we'll be able to start the daemon using colima start:
$ colima start
INFO[0000] starting colima
INFO[0000] runtime: docker
INFO[0000] preparing network ... context=vm
INFO[0000] creating and starting ... context=vm
INFO[0036] provisioning ... context=docker
INFO[0036] starting ... context=docker
INFO[0042] done
By default it limits the VM to 2 GB, so if you need more resources you can use the -m flag to be able to use more memory (in Gigabytes):
$ colima start -m 4
Using colima list we check whether is running:
$ colima list
PROFILE STATUS ARCH CPUS MEMORY DISK RUNTIME ADDRESS
default Running aarch64 2 4GiB 60GiB docker
Once it is running we can check with docker ps that it can connect to the daemon:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
At this point we can now use minikube with the docker driver. So we need to make sure it is configured:
$ minikube config set driver docker
After this we can use minikube start as usual:
$ minikube start
π minikube v1.26.1 on Darwin 12.5.1 (arm64)
β¨ Using the docker driver based on user configuration
π Using Docker Desktop driver with root privileges
π Starting control plane node minikube in cluster minikube
π Pulling base image ...
πΎ Downloading Kubernetes v1.24.3 preload ...
(...)
π Enabled addons: storage-provisioner, default-storageclass
π Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
With docker ps we'll see how it is using it to run the nodes:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0c2362e99f10 kicbase/stable:v0.0.33 "/usr/local/bin/entrβ¦" 4 minutes ago Up 4 minutes 0.0.0.0:49157->22/tcp, :::49157->22/tcp, 0.0.0.0:49156->2376/tcp, :::49156->2376/tcp, 0.0.0.0:49155->5000/tcp, :::49155->5000/tcp, 0.0.0.0:49154->8443/tcp, :::49154->8443/tcp, 0.0.0.0:49153->32443/tcp, :::49153->32443/tcp minikube
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 62m v1.24.3
Posted on 14/09/2022