動かざることバグの如し

近づきたいよ 君の理想に

M1 lima環境でminikubeをインストールする方法

環境

  • M1 Macbook
  • minikube v1.26.1
  • lima 0.11.3

やりたいこと

使い捨てのKubernetes環境が欲しく、ローカルにKubernetesをインストールしようとした。

本番環境ならkubeadm一択なんだろうけど、サクッと構築するだけなら1台で完結するクラスタがいいなと思いminikubeがイケてそうだったので試したメモ。

ただ手元の環境がM1なのでamd64のイメージが動作しない。arm64のKubernetes環境作っても色々ハマりそうなので多少遅くなってもamd64クラスタがほしい。そこでDockerのバックエンドに使っているlimaに頼ることにした。

minikubeのインストール

公式サイトを見ましょう

minikube start | minikube

方法1: limaでDocker環境を構築しminikubeがそれを使う(失敗)

まずはlimaで公式のexamples/docker.yamlをインストールして、そことマウントされたDockerのSocketを利用してminikubeをインストールする方法。

minikube start --driver=docker --container-runtime=containerd

が、何回やっても失敗する。 Issue立てていたが仕様上無理とのこと。

github.com

ので諦めてオススメされた方法で試してみる。

limaで仮想VMを構築してその中にDockerとminikubeをインストール(成功)

  • limaでexamples/ubuntu.yamlUbuntuVMを起動
  • lima shell ubuntu で中に入り、普通にDockerとminikubeをインストール
  • 引き続きその中で minikube start してk8s環境を構築する

よさげ

❯ kubectl get pod -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-6d4b75cb6d-667z4           1/1     Running   0          2m46s
kube-system   etcd-minikube                      1/1     Running   0          2m59s
kube-system   kindnet-j4pzm                      1/1     Running   0          2m46s
kube-system   kube-apiserver-minikube            1/1     Running   0          2m59s
kube-system   kube-controller-manager-minikube   1/1     Running   0          2m59s
kube-system   kube-proxy-lnvv2                   1/1     Running   0          2m46s
kube-system   kube-scheduler-minikube            1/1     Running   0          2m59s
kube-system   storage-provisioner                1/1     Running   0          2m57s

ログをもっと詳細に出したい

デフォルトだと最低限のログしか出ないのでエラー時に対応しづらい。

以下のようにするとめっちゃ細かくログを出力してくれる。

minikube start -v=1  --alsologtostderr

エラーで終了してしまった場合とかは minikube logs --file=error.txt で直近のログをファイルに保存できる。

初期化したい

minikube delete --all --purge