I'm looking to see if it's currently possible to run Kubernetes locally on a 2020 M1 MacBook air.
The environment I need is relatively simple, just for going through some tutorials. As an example, this operator-sdk guide.
So far I've tried microk8s
and minikube
, as they're tools I've used before on other machines.
For both of these, I've installed them using brew
after opening the terminal app "with Rosetta 2"
(i.e like this). My progress is then:
Minikube
When I run minikube start --driver=docker
(having installed the tech preview of Docker Desktop for M1), an initialization error occurs. It seems to me that this is being tracked here https://github.com/kubernetes/minikube/issues/9224.
Microk8s
microk8s install
asks to install multipass
, which then errors with An error occurred with the instance when trying to start with 'multipass': returned exit code 2.
Ensure that 'multipass' is setup correctly and try again.
. Multipass shows a microk8s-vm
stuck in starting. I think this may relate to this issue https://github.com/canonical/multipass/issues/1857.
I'm aware I'd probably be better chasing up those issues for help on these particular errors. What would be great is any general advice on if it's currently possible/advisable to setup a basic Kubernetes env for playing with on an M1 mac. I'm not experienced with the underlying technologies here, so any additional context is welcome. :)
If anyone has suggestions for practising Kubernetes, alternative to setting up a local cluster, I'd also appreciate them. Thanks!
First, it is usually good to have Docker when working with containers. Docker now has a Tech Preview of Docker for Apple M1 based macs.
When you have a workin Docker on your machine, it should also work to use Kind - a way to run Kubernetes on Docker containers.
Update (Jan 2022): I noticed that microk8s docs have published a tutorial for m1 installs. I followed this and it works fine on my machine now.
Additionally, I can also now setup a cluster on Minikube by following the instructions in the docs with ARM64
as my architecture.