電気ひつじ牧場

技術メモ

How to use minikube with KVM

minikubeとは

ローカルでk8sを動かすためのツールで,主に検証や開発用に使われる.1ノードしか動かすことはできないと言う制約がある.似たようなものにmicrok8sがある.

環境

Ubuntu 18.04

Intel core i7

事前準備

BIOSの設定画面からIntel VT-x,他CPUならそれに準ずる機能を有効化する.これをしないとKVMが使えるようにならない.デフォルトで有効か無効かは機種による.

インストール

kvmインストール

ハイパーバイザにはkvmVirtualboxなどが利用できるが,パフォーマンスの高いkvmを利用する.

$ sudo apt install bridge-utils qemu-kvm virt-manager libvirt-bin libguestfs-tools net-tools

qemu-kvmをインストールするとKVMが有効化されているか確認できる.

$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

グループ設定

$ sudo usermod -aG libvirt $(whoami)
$ sudo usermod -aG kvm $(whoami)

$ logout

ユーザをlibvirtグループに入れておくとrootしなくてもlibvirtが利用できるようになる.ログインしなおさないとグループ設定が有効にならないので気を付ける.

確認

$ virt-host-validate

表示項目が全てPASSになっているか確認する.自分の環境ではQEMU: Checking if IOMMU is enabled by kernelWARNINGになっていたのでその場合は次項で設定する.

(オプション)カーネル設定

QEMU: Checking if IOMMU is enabled by kernelWARNINGになっていた場合はGRUBの設定を変更する.

$ sudo vim /etc/default/grub

...
GRUB_CMDLINE_LINUX="intel_iommu=on"
...

$ grub-mkconfig -o /boot/grub/grub.cfg # grubの設定を出力してconfigファイルに上書き
$ sudo reboot

これでvirt-host-validateを実行すれば全てPASSになった.

デフォルトのHVを設定

デフォルトをkvmにする

$ minikube config set driver kvm2

実行

$ minikube start
$ minikube status

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