環境
- M1 Macbook
- minikube v1.26.1
- lima 0.11.3
やりたいこと
使い捨てのKubernetes環境が欲しく、ローカルにKubernetesをインストールしようとした。
本番環境ならkubeadm一択なんだろうけど、サクッと構築するだけなら1台で完結するクラスタがいいなと思いminikubeがイケてそうだったので試したメモ。
ただ手元の環境がM1なのでamd64のイメージが動作しない。arm64のKubernetes環境作っても色々ハマりそうなので多少遅くなってもamd64のクラスタがほしい。そこでDockerのバックエンドに使っているlimaに頼ることにした。
minikubeのインストール
公式サイトを見ましょう
方法1: limaでDocker環境を構築しminikubeがそれを使う(失敗)
まずはlimaで公式のexamples/docker.yamlをインストールして、そことマウントされたDockerのSocketを利用してminikubeをインストールする方法。
minikube start --driver=docker --container-runtime=containerd
が、何回やっても失敗する。 Issue立てていたが仕様上無理とのこと。
ので諦めてオススメされた方法で試してみる。
limaで仮想VMを構築してその中にDockerとminikubeをインストール(成功)
- limaでexamples/ubuntu.yamlでUbuntuのVMを起動
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