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本体

ノードの本体は、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を接続するところがポイントかもしれません。

アーマーケース

放熱を考えると、アーマーケースは必須だと思います。ノードは結構、熱を持ちますし、アーマーケースならパッシブ冷却(ファンなし)も可能な場合もあります。(室温による

裸のRaspberry Pi 4に鎧を 本命アーマーケース編
そうなんです。これが本命です。 前回・前々回と、アルミケース、プラケースをご紹介させて頂きましたが。 放熱を考えますと、ハイエン...

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

USBスティックSSD

本気でサーバとして運用すると、microSDカードは半年ほどで壊れるため、使用しません。また動作速度もSSDと比較して遅いです。

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

Raspberry Pi 4はUSBスティックSSDで起動・安定動作する?速度は?
Raspberry Piに、スティック型のSSDを接続してみました。 SSDの消費電力ですが、不明な点が多い印象です。メーカーの仕様ペ...

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

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

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

USB電源

Raspberry Pi 4にスティックSSDを取り付けた場合、USBで5V1A程度の電力を使用します。ノード1台あたり10W(5V 2A)程度の消費電力を想定しました。

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

USB Typ-e C電源ケーブル

USB電源とRaspberry Pi 4をこちらで接続して給電しています。

スイッチングハブ

クラスタのネットワークセグメントを分けたい場合は、VLAN対応のL3スイッチが良いのかもしれませんが。今回作成した構成では、通常のGigabit対応のL2スイッチで十分な気がします。

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

LANケーブル Cat.6a

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

うーん。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で作れなくもないため。自由度は高い構成だと思います。

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

ではまた!

スポンサーリンク

フォローする

スポンサーリンク