Edited at

Raspberry PiでおうちKubernetes構築【物理編】


目的・背景

一家に一台Kubernetesが当たり前の現代

スクリーンショット 2018-12-31 5.52.00.png

仕事でKubernetesクラスタを構築はしているものの、

自宅には開発用のMacと調べ物用のWindowsPCしかなく、

Kubernetesを動かす時はDocker for Mac備え付けのKubernetes(ノードはMac1台!)を

動かす日々です。

今月も重めのStatefulSetを3つ動かしたら、CPUが400%に高騰してMacが死にかけました。

やはり複数ノードあってこそのKubernetesだと思うも、クラウドはどのサービスを使おうか・・・

どのクラウドサービスも一長一短が・・・と悩んでいました。

おうちKubernetesの記事のように憧れていた一家に一台のKubernetesですが、

今回とあるご機会に材料を頂き(一部自分でも調達しました)、構築したレシピの備忘として記事を書きました。

記事は「物理編」「論理編」に分けています。

この記事は「物理編」です。

構築にあたっては下記を大いに参考にさせて頂きました。

3日間クッキング【Kubernetes のラズペリーパイ包み “サイバーエージェント風”】

Raspberry PI と kubeadm で自宅 Kubernetes クラスタを構築する

kubernetesのラズパイ包みが美味しそうだったので、kubeadmを使って作ってみた

3日間クッキング【Kubernetes のラズペリーパイ包み “サイバーエージェント風”】では1時間ほどの構築時間とのことでしたが、

物理的にハマった箇所もあり物理構築は3時間ほどかかりました。


最終ゴール


  • Raspberry Pi 3 Model B+


    • OS: raspbian-stretch-lite(2018-11-13)



  • Kubernetes v1.13.1


    • Pod Network: Flannel



・Master × 1

・Worker × 2

のクラスターを構築します


材料類

Raspberry Pi 3 Model B
3個

ヒートシンク
3セット

microSDカード 16GB
3枚

4段積層式 Raspberry Pi3 ケース
1個

5ポート 50W USB 充電器
1個

2.4A microUSB ケーブル
4本

コンパクト無線親機 (WMR-433W-BK)
1個

microUSB 給電 スイッチングハブ (LAN-SW05PSBE)
1個

0.3m LAN ケーブル
5本

材料以外の道具

ピンセット
1個

ドライバー
1個

両面テープ
1個

Mac用SDカードリーダー
1個

アルミシート
1個

を利用しました。


Raspberry Piを開封する

Raspberry Piを袋から開封します。

写真はRaspberry Piとヒートシンク大小のパーツです。

スクリーンショット 2018-12-31 4.42.19.png

参考記事だとアルミのようなシートに包まれています。

写真を撮った後で気づきましたが、Raspberry Piは裏側も基盤が剥き出しなので、

保護する必要があります。

慌てて保護用のシートを敷きました。


用意がなかったので、今回は有り合わせの「お魚をフライパンで焼く用のシート」を敷きましたが、本質ではないので気にしないでください


Raspberry Pi本体にヒートシンクを貼ります。

ヒートシンクとはなんぞや? と思って調べたところ、下記の用途の部品でした。


ヒートシンク(英: heat sink)とは、放熱・吸熱を目的として機械の構造の一部をなす部品である。

引用: Wikipedia


ヒートシンクは裏側にテープが貼ってあります。

スクリーンショット 2018-12-31 4.47.38.png

これを剥がして、CPUとLANコントローラにそれぞれ大・小のヒートシンクを貼り付けます。

向きは自由です。

スクリーンショット 2018-12-31 4.53.39.png

よく見るとラズベリーが彫ってあります。芸が細かくてオシャレですね。

スクリーンショット 2018-12-31 4.54.16.png


4段積層式のケース組み立て

ヒートシンクを組み立てたRaspberry Piを4段積層式のケースに組み立てていきます。

その前に下ごしらえとして、アクリル板の保護シートを外します。

3日間クッキング【Kubernetes のラズペリーパイ包み “サイバーエージェント風”】で「一番大変な作業」とあって、その通りだと思いました。

素手で剥がしにいきましたが、私は1時間くらいかかりました。

アクリル板

スクリーンショット 2018-12-31 4.56.57.png

保護シートは裏表の両面にあります

スクリーンショット 2018-12-31 4.57.10.png

剥がすとアクリル板が透明な色合いになります

スクリーンショット 2018-12-31 4.57.57.png

ネジ・スペーサー・ナットを使ってRaspberry Piを固定します。

スクリーンショット 2018-12-31 5.01.54.png

ネジ -> スペーサーをアクリル板に取り付けます。

スクリーンショット 2018-12-31 5.02.25.png

スペーサー -> Raspberry Piを乗せたら、ナットを閉めます。

スクリーンショット 2018-12-31 5.05.35.png

裏側にネジ穴があるので、ドライバーで締めます。

スクリーンショット 2018-12-31 5.07.55.png

3台ともナットを締めたら、1段目を構築していきます。

スクリーンショット 2018-12-31 5.17.27.png

スクリーンショット 2018-12-31 5.18.54.png

スクリーンショット 2018-12-31 5.20.11.png

2段目、3段目と構築していきます。

スクリーンショット 2018-12-31 5.21.51.png

スクリーンショット 2018-12-31 5.22.10.png

4段目にUSB充電器を配置します。

隙間があり動いてしまうので、固定用の両面テープを貼ります。

スクリーンショット 2018-12-31 5.25.09.png

4段目までが完成しました。

スクリーンショット 2018-12-31 5.24.52.png

幻の5段目にスイッチングハブとコンパクト無線親機を配置します。

両面テープを貼り付けましたが、最上段のラズベリーマークの跡が穴が空いて、

スカスカのため、多少動いてしまいました。

スクリーンショット 2018-12-31 5.25.24.png

最上段が完成しました。

スクリーンショット 2018-12-31 5.26.34.png


ケーブリング

配線を行います。

まずはスイッチングハブとRaspberry Pi3台それぞれをLANケーブルで接続します。

スクリーンショット 2018-12-31 5.41.44.png

続いて、スイッチングハブとコンパクト親無線機もLANケーブルで接続します。

スクリーンショット 2018-12-31 5.44.24.png

Raspberry PiとUSB充電器、スイッチングハブ・コンパクト親無線機とUSB充電器を繋げます。

スクリーンショット 2018-12-31 5.45.44.png


うまくケーブリングができぬ・・・


表面から見た例

スクリーンショット 2018-12-31 5.52.00.png

USB充電器に電源アダプターをつければ電源がつきます。

Raspberry PiはPWRランプが赤くつくはずです。


ガ○ダムみたいでかっこいいです


スクリーンショット 2018-12-31 5.54.29.png


無線設定

物理編の最後に、コンパクト無線親機の無線設定を行います。

無線親機のメーカーが用意している設定書に従って、設定をしてください。


当たり前ですが、メーカーが用意している説明書なので、一番丁寧です


以上で物理編を終わります。

肝心のKuberntesクラスタ構築は後半の論理編をご参照ください。


余談

3機中1機だけ左右を間違えてネジを止めてしまっていたことに、タワーを作ったこと後で気づきました。

当然、一度組み立てたものをバラして、正しい位置に直しました・・・


都度都度の確認が重要ですね


正しい向き

スクリーンショット 2018-12-31 5.07.55.png

ガンプラを作らなくなって久しいですが、

子供の頃作っていた当時のような気持ちを思い出し、

作ってワクワク・ドキドキしました。

以上