Jaybanuan's Blog

どうせまた調べるハメになることをメモしていくブログ

Ubuntu 20.04LTSでMinikubeを構築する

はじめに

Minikubeのマニュアルを読みながら、Ubuntu 20.04LTSでMinikubeを構築したときのメモ。 マニュアルの中身だが、Linuxディストリビューションや仮想化基盤などでいくらか分岐があるので、忘れた頃に読み直すと時間がかかる。 今後のMinikubeの再構築を効率的に行うために、ここでは自分の環境に合わせて一本道になるように、手順を残しておく。

(1) CPUの仮想化テクノロジーのサポートの確認

以下を実行して、何かしら表示が出ればOK。

# grep -E --color 'vmx|svm' /proc/cpuinfo
flags       : fpu vme de pse tsc msr pae mce cx8 (以降省略)

何も表示されない場合は、BIOSで仮想化テクノロジーを有効化するなどの対処が必要になる。

(2) kubectlのインストール

Ubuntu 20.04LTSだとSnapを使うのが一番簡単。

# sudo snap install kubectl --classic

kubectlの動作確認をしておく。

# kubectl version --client
Client Version: version.Info{Major:"1", Minor:"19", (以降省略)

(3) 仮想化基盤の構築

ここではKVMを利用することにする。 他の選択肢としては、VirtualBoxやDockerがある。 KVMの構築については以下のブログを参照。

redj.hatenablog.com

(4) Minikubeのインストール

インストール方法は、単にシングルバイナリをコピーする方法と、各種パッケージ(.debなど)を利用した方法がある。 ただし、執筆時点(2020/10)ではパッケージを利用する方法はまだExperimentalと注意書きがあるので、今回はシングルバイナリを利用する。

# curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# sudo install minikube /usr/local/bin

(5) 動作確認

(5-1) Minikubeの起動

以下のコマンドを実行すると、(必要なら)ファイルが自動的にダウンロードされて、環境が構築される。

# minikube start --driver=kvm2
😄  Ubuntu 20.04 上の minikube v1.13.1
✨  設定を元に、 kvm2 ドライバを使用します
💾  docker-machine-driver-kvm2 ドライバをダウンロードしています:
    > docker-machine-driver-kvm2.sha256: 65 B / 65 B [-------] 100.00% ? p/s 0s
    > docker-machine-driver-kvm2: 13.81 MiB / 13.81 MiB  100.00% 359.38 KiB p/s
💿  VM ブートイメージをダウンロードしています...
    > minikube-v1.13.1.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s
    > minikube-v1.13.1.iso: 173.91 MiB / 173.91 MiB  100.00% 209.31 KiB p/s 14m
👍  コントロールプレーンのノード minikube を minikube 上で起動しています
💾  Kubernetes v1.19.2 のダウンロードの準備をしています
    > preloaded-images-k8s-v6-v1.19.2-docker-overlay2-amd64.tar.lz4: 486.36 MiB
🔥  kvm2 VM (CPUs=2, Memory=3900MB, Disk=20000MB) を作成しています...
🐳  Docker 19.03.12 で Kubernetes v1.19.2 を準備しています...
🔎  Kubernetes コンポーネントを検証しています...
🌟  有効なアドオン: default-storageclass, storage-provisioner
🏄  Done! kubectl is now configured to use "minikube" by default

(5-2) Minikubeの状態の確認

以下のコマンドを実行して、Minikubeの状態を確認する。

# minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

ついでに、VMのリストを表示してみる。

# virsh list
 Id   Name        State
---------------------------
 1    minikube    running

(5-3) Minikubeの停止

# minikube stop
✋  ノード "minikube" を停止しています...
🛑  1台のノードが停止しました。

(6) おまけ - 環境のクリア

以下のコマンドを実行することで、環境はまっさらになるはず。

minikube delete --all --purge
🔥  kvm2 の「minikube」を削除しています...
💀  クラスタ "minikube" の全てのトレースを削除しました。
🔥  Successfully deleted all profiles
💀  Successfully purged minikube directory located at - [/home/jaybanuan/.minikube]

参考