Raspberry Pi 4+Fedora CoreOSのKubernetesクラスタに使用する機材は

Raspberry Pi 4を3台使用しまして。

Kubernetes クラスタを構成してみました。

microSDカードは使わず、USB 3.0端子に接続したSSDで起動しているため、microSDを使用した場合よりも動作は高速です。

永続化ボリュームは、今後、分散ファイルシステムを使用して、スケールアウトで構成(ノードを増やせば容量が増えて、冗長性・信頼性も増加する)を考えています。よって、外付けHDD等は接続する予定はなく、構成や配線もシンプルです。

使用する機材を記録しておこうと思います。


Raspberry Pi 4+Fedora CoreOSのKubernetesクラスタ構成

Raspberry Pi Kubernetesクラスタに使用する機材

Raspberry Pi 4本体

[amazonjs asin=”B089GSG8Y1″ locale=”JP” title=”ラズベリーパイ 4 コンピューターモデルB 8GB Raspberry Pi 4 ラズパイ 4 TELEC認定取得済み (Raspberry Pi 4 8GB)”]ノードの本体は、Raspberry Pi 4を使用しました。理由を挙げますと。

  • メモリー搭載量 4GB,8GB必要。
    • Raspberry Pi 3の1GBでは不足
  • Fedora CoreOSを使用。
    • Raspberry Pi 4シリーズのみ対応。
  • USB 3.0端子にSSDを接続し、ブート可能。

Raspberry Pi 4のUSB 3.0端子にSSDを接続するところがポイントかもしれません。

アーマーケース

[amazonjs asin=”B082Y2T7Y7″ locale=”JP” title=”Aluminium Heatsink Case for Raspberry Pi 4 (Raspberry Pi 4用 アルミ ヒートシンクケース) (Zircon Blue)”]放熱を考えると、アーマーケースは必須だと思います。ノードは結構、熱を持ちますし、アーマーケースならパッシブ冷却(ファンなし)も可能な場合もあります。(室温による

https://denor.jp/%E8%A3%B8%E3%81%AEraspberry-pi-4%E3%81%AB%E9%8E%A7%E3%82%92-%E6%9C%AC%E5%91%BD%E3%82%A2%E3%83%BC%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%BC%E3%82%B9%E7%B7%A8

色々なメーカーのアーマーケースを試しましたが。海賊ロボ忍者さるさんのアーマーケースは工作精度が高くてお勧めです。私はアーマーケースは今後もPIMORONIさんを選ぶと思います。

USBスティックSSD

[amazonjs asin=”B08N4JHGJL” locale=”JP” title=”【Amazon.co.jp限定】バッファロー SSD 外付け 1.0TB 超小型 コンパクト ポータブル PS5/PS4対応(メーカー動作確認済) USB3.2Gen1 ブラック SSD-PUT1.0U3-B/N”]本気でサーバとして運用すると、microSDカードは半年ほどで壊れるため、使用しません。また動作速度もSSDと比較して遅いです。

スティックSSDを使用する場合の電源容量も調査済みです。

https://denor.jp/raspberry-pi-4%E3%81%AFusb%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AFssd%E3%81%A7%E8%B5%B7%E5%8B%95%E3%83%BB%E5%AE%89%E5%AE%9A%E5%8B%95%E4%BD%9C%E3%81%99%E3%82%8B%EF%BC%9F%E9%80%9F%E5%BA%A6%E3%81%AF

問題なく動作することは確認済みです。

永続ボリュームについては、スケールアウト構成が可能な、分散ファイルシステムを使いたいと考えています。その場合、各ノード(Raspberry Pi 4)に取り付けるSSDの容量が大きければ、その分使用できる分散ファイルシステムの容量も増えます。

SSDの価格が下がれば、スケールアップ(買い替え)ではなく、容量の大きなSSDを搭載したノードを増やしてスケールアウト(足して容量と処理能力アップ)が個人的な理想です。

USB電源

[amazonjs asin=”B00YS1RQVI” locale=”JP” title=”Anker PowerPort 10 (60W 10ポート USB急速充電器) 【PSE認証済 / PowerIQ & VoltageBoost搭載】iPhone XS / XS Max / XR, Galaxy S9 / S9+ 等対応 (ホワイト)”]Raspberry Pi 4にスティックSSDを取り付けた場合、USBで5V1A程度の電力を使用します。ノード1台あたり10W(5V 2A)程度の消費電力を想定しました。

60WのUSB電源を使用した場合、ノードは4台程度が安全かもしれません。最大6台くらいが限界の気がします。

USB Typ-e C電源ケーブル

[amazonjs asin=”B071XP29CZ” locale=”JP” title=”Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ブラック”]USB電源とRaspberry Pi 4をこちらで接続して給電しています。

スイッチングハブ

[amazonjs asin=”B09H38V41Z” locale=”JP” title=”【Amazon.co.jp限定】 バッファロー 8ポート スイッチングハブ Giga 金属筐体 簡易パッケージ 壁掛け設置対応 LSW6-GT-8ESL/NBK”]クラスタのネットワークセグメントを分けたい場合は、VLAN対応のL3スイッチが良いのかもしれませんが。今回作成した構成では、通常のGigabit対応のL2スイッチで十分な気がします。

金属筐体・電源内蔵・8ポートが価格と性能のバランスが良くてお勧めです。

LANケーブル Cat.6a

[amazonjs asin=”B00G3BXY58″ locale=”JP” title=”BUFFALO ツメの折れないLANケーブル カテゴリー6 ストレート スタンダード 2m ブラック BSLS6NU20BK2″]LANケーブルは、10Gbpsに対応した、カテゴリ6Aの製品を選択しましょう。

爪が折れない・スダレタイプのケーブルは、コンパクトにまとめられるため、2m程度の長めのものを買っておいても、それほど邪魔になりません。

通常のスダレタイプではないCat.6aケーブルは、セパレータが入っているため、Cat.5aよりも太く、曲がらず、硬いのでお勧めしません。Cat.7、Cat.8ケーブルもオーバースペックです。Cat.6eは10Gbps対応しません。

10Gbpsの時代を見越しても、信号特性・周波数特性に問題がない、Cat.6a認証済みのスダレタイプを買っておきましょう。(ただし、引っ張った場合の耐久性などは弱いので注意

使用する本数は、ノードの台数分の本数+別のスイッチングハブと接続する1本になります。


コントロールノード用に別途Raspberry Piをお勧め

コントロールノード用Raspberry Pi 3/4

[amazonjs asin=”B01NAHBSUD” locale=”JP” title=”Raspberry Pi 3 Model B V1.2 (日本製) 国内正規代理店品”]うーん。Raspberry Pi 3のほうが、価格がPi 4よりも高いですね。

クラスタのノードとは別に。下記の目的のため、サーバ的なマシンが必要になります。

  1. Ansibleのコントロールノード(命令を出す側)
    • 今後、たとえばノードを増やしたい場合など、こちらから命令を出すことで、構成を変更することが可能です。
  2. Fedora CoreOSブートメディア作成用
    • Fedora Linuxを起動しています。
    • 各ノード用のIgnition(CoreOSのプロビジョニング用設定)の管理用。
    • SSHのキーペアを生成・維持。
  3. Proxyサーバ用
    • クラスタのノードは、直接インターネットへ接続できなくなります。
    • このため、こちらのコントロールノードを使用して、インターネットへアクセスする必要があります。

このような理由から、Kubernetesのノード以外に1台、別途Raspberry Piがあると便利かと思います。


以上の機材で、クラスタを構成できるかと思います。

コンテナを動かすときに、データベースやファイル等の残したいデータは、永続性ボリュームに入れる必要があります。

永続性ボリューム用に、別途、NFSサーバやNAS等を使用する場合もあるかと思いますが。

まあ、せっかくのクラスタですので、スケールアウト構成を作って、各ノードのSSDに分散して入れられれば、と考えております・・・・このため、今のところNFSサーバやNASは構成に入れていません。

とはいえ、緊急でNFSを使用したい場合は、コントロール・ノード用のRaspberry Pi 3で作れなくもないため。自由度は高い構成だと思います。

次は、実際のクラスタの構築手順を記録させて頂こうと思います。

ではまた![amazonjs asin=”B099214J49″ locale=”JP” title=”バッファロー SSD 外付け 2.0TB USB3.2 Gen2 読込速度600MB/秒 PS5/PS4メーカー動作確認済 コンパクト 小型 Type-Cアダプター付属 ブラック SSD-SCT2.0U3BA/N”]

 

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です