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からサポートしており、問題なく使えることを手元の環境で確認しています。