仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

Multipassを使ってサクッとKubernetesを動かす

MultipassはUbuntuを開発・サポートするCanonicalが作成した、クライアントにインストールしてUbuntu VMを簡単にデプロイできるツールです。Windows, macOS, Linuxに対応しています。

以前まではUbuntu VMを作れるツールだったのですが、最近DockerやKubernetes(minikube)を簡単にデプロイするためのイメージが用意されていたので試してみました。

使いかた

まずはインストールします。Windowsの場合は要件があるので、こちらをご覧ください。

そして次にターミナルやコマンドプロンプトなどを開いて次のように実行すると、すぐ使えるUbuntu VMを起動できます。初回はイメージのダウンロードが必要なので、時間がかかると思います。

$ multipass launch --name foo

起動したら次のように実行すると、そのVMのシェルにはいることができます。シェルから抜けるときはexitコマンドを使います。

$ multipass shell foo

VMを停止したい場合はmultipass stop foo、VMを削除したい場合は次のように実行します。

$ multipass stop foo
$ multipass delete foo
$ multipass purge

その他のコマンドについてはmultipass --helpで確認できます。

minikubeを使う

minikubeは次のように実行するだけで利用できます。minikube自体は色々な構成でKubernetesクラスターを作ることができるツールなので、とりあえずKubernetesを動かしたいのであれば手軽でいいと思います。オプションの-cはVMに割り当てるCPU、-mはメモリ、-dはディスクサイズです。最後のminikubeはイメージ名で、省略するとUbuntu LTS(現在は20.04)のイメージが使われてVMが起動します。

% multipass launch -c2 -m4G -d40G -n minikube minikube
% multipass shell minikube
ubuntu@minikube:~$ kubectl get no
NAME       STATUS   ROLES                  AGE   VERSION
minikube   Ready    control-plane,master   28s   v1.23.3

minikubeをネイティブの環境で実行するのではなくMultipassを介して実行するメリットは、必要ないときは簡単に停止できる点です。VMの中に閉じてあるので、クライアントへの影響もあまりなくて安心できます。

microk8sを使う

microk8sを動かしたい場合は特に専用のイメージは用意されていないので、相応のスペックを設定してVMを起動したあとにsnapコマンドを使って、いつものようにインストールするだけですぐ使えます。

% multipass launch -c2 -m4G -d16G -n microk8s 20.04
% multipass shell microk8s
ubuntu@microk8s:~$ sudo snap install microk8s --channel=1.22/stable --classic
microk8s (1.22/stable) v1.22.6 from Canonical✓ installed
ubuntu@microk8s:~$ sudo microk8s kubectl get no
NAME       STATUS   ROLES    AGE   VERSION
microk8s   Ready    <none>   87s   v1.22.6-3+7e02437f65494f

別のマシンからMultipass VM上で動くmicrok8sを操作したい場合は、次のコマンドを実行してKUBECONFIGを出力します。

 $ microk8s config > microk8s-config

Multipassを使えばローカルの環境でクラウドっぽくUbuntu VMを動かせます。 今回はKubernrtesを動かすのを目的にしましたが、Multipassは手元で色々動かすときに便利だと思います。 非常に便利なので、これからも使っていきたいと思います。

ちなみに、M1 Macはバージョン1.8.0からサポートしており、問題なく使えることを手元の環境で確認しています。