Intel チップのときは Docker for Mac で Enable Kubernetes を on にするだけで k8s 環境が手に入っていました。 ただ、M1 チップ用の環境である Docker Desktop for Apple M1 で環境を構築すると執筆時点の段階では k8s をそのままでインストールすることができません。

https://docs.docker.com/docker-for-mac/apple-m1/

Kubernetes does not initialize because of a missing DNS name.

設定画面を見るとチェックボックスは押せるみたいだけど、 Kubernetes is starting... のままスタートしない…

対応方法

kind

kindは Docker コンテナのノードを利用してローカルに k8s 環境を作るツールです。 Docker Desktop for Apple M1 を入れて Docker 環境を作っておけば、Docker コンテナ自体は立ち上がるようになっているので、kind を使うのが一番簡単かと思います。

1
2
GO111MODULE="on" go get sigs.k8s.io/kind@v0.10.0
kind create cluster --image rossgeorgiev/kind-node-arm64:v1.20.0

kind create cluster をする際に、arm64 の image を指定しないとエラーになる点だけ注意します。

Minikube

Minikubeも同様にローカルに k8s 環境を作るツールです。

すでに darwin-arm64 用の minikube がリリースされているので、そちらを使います。

1
2
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-arm64
sudo install minikube-darwin-arm64 /usr/local/bin/minikube

brew でのインストールもできるようですが、こちらは未確認です。

まとめ

意外とあっさり k8s の環境を構築できました。 今後開発していく中で環境依存の不具合に遭遇するかもしれないですが、その際はまた何か記事にしようかなと思います。