/dev/null

脳みそのL1キャッシュ

おうち Nomad & Consul クラスタの構築 - 物理構築編

はじめに

最近 Nomad や Consul といった Hashicorp プロダクトに興味を持ち、色々勉強しているうちに、実際に物理サーバで実験したくなったので、Raspberry Pi を使って Nomad & Consul のクラスタを構築してみました。

Kubernetes クラスタを構築することも考えましたが、n 番煎じ感が否めないのでやめました)

Nomad, Consul is 何

詳しくは書きません(書けるほど理解できていないので…)が、Nomadクラスタ内にタスクをデプロイして動かし、管理する、いわゆるオーケストレーションシステムです。類似プロダクトとして Kubernetes がありますね。そして、Consul はクラスタ内でどのサービスがどのノード上で動作しているかを特定する、いわゆるサービスディスカバリの機能を備えたプロダクトです。

構成

Raspberry Pi を 4 台使い(Raspberry Pi 4 Model B 4GB x 3 + Raspberry Pi 3 Model B+) Nomad & Consul クラスタを構築します。1 台だけ Raspberry Pi 3 Model B+ がありますが、これは引き出しの中で転がっていたものです。

Hashicorp のドキュメントでは可用性を確保する場合は Nomad, Consul Server を少なくとも 3 台用意する必要があると書いていましたが、用意できる Raspberry Pi の台数の都合上、今回は両方とも 1 server のみ用意し、また、Nomad, Consul Server の両方を同じ Raspberry Pi にインストールします。

ちなみに 3 台の server を用意した場合、1 台の server 障害まで耐えられるっぽいです。

注: https://www.nomadproject.io/docs/internals/consensus#deployment_table より引用

材料

材料名 値段 リンク 備考
Raspberry Pi 4 Model B 4GB x 3 6875 x 3 www.amazon.co.jp/dp/B081YD3VL5
microSD 64GB x 3 1180 x 3 www.amazon.co.jp/dp/B07YGZQ4H8 Raspberry Pi 3 には家にあった 32GB のものを流用
Anker PowerPort Speed 5 3699 www.amazon.co.jp/dp/B01IVTGE4M Raspberry Pi 4 には電源容量不足だが一応動く
エレコム スイッチングハブ 2955 www.amazon.co.jp/dp/B017SFTMFS
エレコム LANケーブル 0.15m x 4 200 x 4 www.amazon.co.jp/dp/B00G2PY0NU
SUNGUY Micro USB充電ケーブル (0.3m x 2) 749 www.amazon.co.jp/dp/B07PXQJGW5 2本入セット
SUNGUY USB C ケーブル (0.3m x 2) 799 www.amazon.co.jp/dp/B07PYT3S5V 2本入セット
Micro-HDMI to HDMI 変換ケーブル 699 www.amazon.co.jp/dp/B08BC1T381 Raspberry Pi 4 は Micro-HDMI 端子なので…
GeeekPi Raspberry Pi4クラスターケース 2499 www.amazon.co.jp/dp/B07TJZ2HDG

こんな感じで、合計 36365 円になります。家にあった Raspberry Pi 3 と microSD 32GB の値段は入ってないので、実際には 4 万円強といったところではないでしょうか。

構築

あまり写真を撮らなかったので、図&言葉ベースで説明します…タワーの組み立ては基本的に最低層の組み立てが終わったら終わったようなものです。以下の写真のものを構築できれば OK です。

写真だけじゃわかりにくいと思うので図も用意しました。

2層目からは CPU ファンをつける必要があるので注意してください。CPU ファンは以下のように付けます。

赤いケーブルは下図の 5V power pin に挿して、黒いケーブルは Ground に挿してください。

注: https://www.raspberrypi.org/documentation/usage/gpio/ より引用

最終的にこんなタワーができます。

最後にスイッチと USB 充電器につなげて完成です。

おわりに

これにて物理構築編は終わりです。次は、初期設定 & Consul クラスタの構築について記事にしよう思います。

参考

blog.nownabe.com

github.com

www.consul.io

www.nomadproject.io