第560回の
密に開発されクラスターにも対応したmicrok8s
第560回の記事が公開されたのはmicrok8sのv1.
しかしながら世の中の
- ※1
- Ubuntu以外のインストール方法については,
microk8sのドキュメントにあるWindowsへのインストール方法, macOSへのインストール方法をそれぞれ参照してください。 - ※2
- microk8sのバージョンは,
サポートするKubernetesのバージョンに準じています。
Canonicalによるアナウンスでも,
- ※3
- microk8sはワークステーションのような
「ちょっと強い」 サーバーなどでの利用を想定しているようです。本格的なサーバークラスターで構築する場合は, Charmed Kubernetesと呼ばれるMAASやJujuを組み合わせて構築する環境を推奨しています。
他にもKubeflowやMultusといった人気のアドオンもサポートしている上に,
今回はこのmicrok8sの,
仮想マシン版LXDインスタンスの準備
microk8sそのものはただのKubernetesのインストーラーでしかありませんので,
- ※4
- コンテナ版の構築手順は公式のドキュメントにある構築手順を参照してください。
おおよそmicrok8sが動くマシンに必要なリソースは次のとおりです。
- CPU:
「2コア x ノードの数」 だけCPUコアが必要です。ただしKVMの場合はインスタンスがCPUを占用する必要はありませんし, 昨今のそれなりのマシンはCPUのコアが十分に多いと思いますので, そこまで気にする必要はないでしょう。 - メモリー:最低でも
「2GiB x ノードの数」 はほしいところです。これもノートPCでもない限り, 困ることはないでしょう。 - ストレージ:microk8sの上で何を動かすかに強く依存します。今回の手順のように本当に小さなコンテナを動かすだけであれば10GiBでも十分です。
ちなみにVirtualBox等の上にインストールしたUbuntuの上で構築することも可能です。VirtualBoxの上で仮想マシン版のLXDを動かす場合は,
では,
- ※5
- 要するに1台の強力なVirtualBoxインスタンス上にUbuntuを入れてその上で本記事で説明するようにLXDで複数ノードを作る方法と,
LXDは利用せずにVirtualBoxで複数のUbuntuインスタンスを作りそこにそれぞれmicrok8sをインストールする方法の2パターンが考えられるということです。
HA機能を利用するためには最低でも3台のマシンが必要です。よってまずは以下の手順で3台の仮想マシンを作成してください。
$ lxc launch ubuntu:20.04 k8s0 --vm -c limits.cpu=2 -c limits.memory=4GiB $ lxc launch ubuntu:20.04 k8s1 --vm -c limits.cpu=2 -c limits.memory=4GiB $ lxc launch ubuntu:20.04 k8s2 --vm -c limits.cpu=2 -c limits.memory=4GiB
「--vm
」
LXDの仮想マシンインスタンスは何も指定しないとlxc config set インスタンス名 limits.
」-t t2.
」
ストレージのサイズも変えたい場合は次のように実行してください。
$ lxc stop k8s0 $ lxc config device override k8s0 root size 40GiB $ lxc start k8s0
仮想マシンインスタンスの場合,lxc stop
などでシャットダウンした上で実行してください。lxc config device override
」
必要ならミラーサーバーを設定し,
$ lxc exec k8s0 -- sed -i 's/archive.ubuntu/jp.archive.ubuntu/' /etc/apt/sources.list $ lxc exec k8s0 -- sh -c 'apt update && apt full-upgrade -y' $ lxc restart k8s0 k8s1 k8s2
この3台の仮想マシンインスタンスがKubernetesクラスターのlxc restart
に時間がかかってタイムアウトエラーが発生するかもしれません。その場合は,lxc status
ですべてシャットダウンされたかを確認した上で,lxc start
を実行してください。