おうち 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 クラスタの構築について記事にしよう思います。