ポン酢ブログ(β)

The harder you work, the luckier you get. - Gary Player

おうち Kubernetes クラスタ with M75q-1 Tiny × 3台

GCPに勉強用でKubernetesクラスタを建てていました。しかし結構コスパが悪いので、やっぱり家でKubernetesクラスタしましょう、ということで建ててみました。

物理クラスタ

自分のマシンがmacOSのマシンなので、やはり物理なLinuxマシンが欲しいという願望がありました。しかしデスクトップマシンを買ってそこで試したり、ESXiを建てるのはやったことがあったので、物理でクラスタ組んでみたくて検討しました。

クラスタにはLenovoのM75q−1 Tinyを3台用意しました。1台約3万円でRyzen 5 PRO 3400GE(4C/8T)、8GBなのでコスパが良いです。その気になったらストレージやメモリを増やそうと思っています。今のところそこそこ足りてる。

ちなみに良くカスタマイズされている無線LANとかディスプレイの追加出力とかは、全部つけてないです。クラスタなんだから、そんなのいらないです。

Spec
CPU AMD Ryzen 5 PRO 3400GE
メモリ 8GB
SSD 128GB NVMe

Kubernetesクラスタの構築

Hard Wayでもなければ基本公式のドキュメント通りに導入していくだけです。OSにはUbuntuを使いました。

Kubernetesクラスタ公式ドキュメントの通りにkubeadmでセットアップしました。コンテナランタイムにはcontainerdを使いました。

CNIにはCalicoを使いました。Calicoのインストールも公式ガイドの通りでインストールできました。

3台構成なのでとりあえずMasterはHAしないで、masterにもスケジュールされるようにしました。HA構成にしたくなったらまた考えます。

ストレージにRook-Ceph

PersistentVolumeも使いたいので、CSIにはRook-Cephを使いました。ブロックデバイスを指定するのそのうちやろうという感じなので、とりあえず storage.directories にマウントしたところを刺しました。

ロードバランサにMetalLB

やっぱり type: LoadBalancer を使いたいのでMetalLBを導入しました。L2-modeで問題無く動いてます。そのうちBGPモードも使ってもいいですが、まずはL2モードでやっていきます。

おわり

f:id:atpons:20201114193723p:plain

とりあえず動くKuberntesクラスタをこれでゲットできたので遊びます。M75q-1 Tinyは非常に小さく、静音性も良くてKubernetesクラスタにむいていると思います。

Raspberry Piで構築することもできますが、やはりamd64が動いた方が遊べますし、拡張性もあります。在庫があるうちに、ぜひやってみてください。