ARMボード色々でおうちKubernetesクラスタ ハードウェア編

何百番煎じどころか 何千番煎じか分かりませんが クラスタを作っている所(進行形)なので
そのメモを残していきます。

## 先行記事との違い
・ARMボード色々を混ぜて使う(RPi3B + RPi4B + JetsonNano + Rock64)
・イケてるクラスタ作成向けケースの紹介
・タコ足配線に関する補足注意点

## おうちKubernetesって何?
Kubernetesを使う開発/公開環境を自宅に用意しちゃうというもの。普通は開発環境にはDocker for Desktopとか、公開環境にはEKS(Amazon EKS)、GKE(Google Kubernetes Engine)、AKS(Azure Kubernetes Service)、とか使うのかと思いますが、ロマンを求めるものとします。

> おうちKubernetesが家にあると、ちょっと嫌なことがあっても「まあ家に帰ればおうちKubernetesあるしな」ってなるし仕事でむかつく人に会っても「そんな口きいていいのか？　私は家ではおうちKubernetesとよろしくしてる身だぞ」ってなれる。戦闘力を求められる現代社会においておうちKubernetesと同棲することは有効。

## 用意したもの
### ボード
| 商品名 | 価格(購入時) | 備考 |
|:-----------:|:------------:|:------------:|
| Raspberry Pi 3B| 4000円 x3 | ヤフオク/メルカリで単品購入 |
| Rock64| 7200円 | メルカリでセット購入 |
| JetsonNano(4GB)| 12540円 | メルカリで訳あり購入 |
| Raspberry Pi 4B(4GB)| 8888円 | メルカリでセット購入 |
### microSD
| 商品名 | 価格 | 備考 |
|:-----------:|:------------:|:------------:|
| Team microSD 32GB | ?円 | 特に問題なく動きます |
| SiliconPower microSD 32GB | ?円 | 特に問題なく動きます |
| Toshiba microSD 32GB | ?円 |おそらくちょっと古いものの使いまわしです|
| Sandisk Ultra(白) 32GB | ?円 |コスパはこれが最高に思います|
| Sandisk Ultra(赤) 32GB | ?円 |コスパはいいと思います|
| Samsung Evo Plus 32GB |?円|[2019年のパフォーマンス比較記事](https://www.jeffgeerling.com/blog/2019/raspberry-pi-microsd-card-performance-comparison-2019)ではいい感じでした|
### HDD
| 商品名 | 価格(購入時) | 備考 |
|:-----------:|:------------:|:------------:|
| WESTERN DIGITAL WD Blue 6TB (3.5inch) | 10100円 x3 | PC工房/メルカリ/楽天で購入 |
| LOGITEC LGB-EKU3(ケース)| 2000円 x3 | 楽天で購入 |
### ボード以外
| 商品名 | 価格 | 備考 |
|:-----------:|:------------:|:------------:|
| GeeekPi Raspberry Piクラスターケース(8段) | 6283円 | 2Lペットボトルぐらいの高さ/光らせないのも可能|
|サンワサプライ 電源タップ 10個口|1536円|一括スイッチ+雷ガード+ブレーカー+マグネット付き|
| TP-Link 8ポート スイッチングハブ(LS1008G) | 1390円 | 内訳: LAN6ポート+WAN1ポート+余り |
|Anker USB充電器 2.4A x2ポート(合計4.8Aまで)|?円|家の中に転がってました|
|Anker USB充電器 2.4A x2ポート(2.4A Perポート)|?円|家の中に転がってました|
### ケーブル類
| 商品名 | 価格 | 備考 |
|:-----------:|:------------:|:------------:|
| ダイソー フラットLANケーブル(CAT6)1m | 110円 x7 | 大規模店にしか無いかも |
| ダイソー USB-A to microUSB-Bケーブル1m | 110円 x3 | Max2.4A|
| ダイソー 結束バンド|110円|無くてもいいけどスパゲティになります|
#### 総額いくら?
88887円+?です。デスクトップPC1台用意した方が安いですね。でもロマンだから()

## 組んでみよう
### ケース
8段もあってファンもそれなりにでかい、割とごついやつです。普通のタワーでもいいんですが、JetsonNanoが入らないので別でつなげることになったり、小型ファンを各段に取り付けたらうるさそうだなぁと思ってこちらになりました。レビューしてくださっている動画があるのでそちらも参考にさせてもらいました。
<iframe width="500" height="400" src="https://www.youtube.com/embed/heMIVPdOnkA" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

#### 注意点
##### microSDスロットの延長ボードがあります
組み終えた後でもmicroSDが差し替えできるように、ボードが付属しています。
読み書き速度が落ちそうっていう意見も見受けられたので使うか使わないかは利用者次第です。
##### 茶色のフィルムは剥がせます(めんどくさいけれど)
全然違う段ボール色のものが来た!とか書いてありましたが、それは傷防止のフィルムであって、剥がせます。ただ、文字の部分とか細かいのはうまく剥がせなくてかなり労力がかかります。ある程度は妥協しましょう。(Amazonレビュー参考)
##### JetsonNanoは1台、もしくは段数/2台まで
RaspberryPi3~4とJetsonNanoに対応と書いてありますが、JetsonNanoについては、ヒートシンクがついていると最上段にしか入らないので実質1台までと思ったほうがいいです。2段分の高さを開ければそこ以外にも入るようですが、ちょっと損した気分になります。(Amazonレビュー参考)
##### Rock64も入る
Rock64は実はサイズがRaspberryPi3Bと同じなのでネジ穴ピッタリに入ります。microSDスロットがラズパイと違ってロック式なので、延長ボードが入り切らず不安ですが、動作するようです。
##### 組み換えはめんどくさい
一度組み上げてからは一旦分解しないとボードが足せないのでまとめて付けちゃう方が良いです。
##### ネジセットひっくり返さない
ほんの少しだけサイズの違うナットが5本あります(確か)。うっかり反対側から開いて、全部混ざっちゃって泣いたので取り扱いに注意してください。
#### ラズパイの場合のファンのピン配置参考
![3850731.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/b652e5b6-e50c-1eac-a805-1c5a2d3dc1a5.jpeg)
組み上げ後の画像なのでわかりづらいですが、ファンを正面として左側から見た画像です。2つまとまっているピンがファンへの給電、まとまっていないピン2つがLEDの給電です。
### USB(転送)ケーブルの配線
![Ey9BaSaUcAIIE8Q.jfif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/e3da9b24-e9da-1359-d027-50ee42f4e252.jpeg)

この構成の中で、USB3.0のポートがあるのは、JetsonNano/Rock64/RaspberryPi4Bです。
RaspberryPi3Bに繋ぐとUSB2.0の転送速度になるので上記3台に接続します。
### LANケーブルの配線
指定したスイッチハブは小型なのでクラスタ1段の高さに収まるようになっています。
クラスタに入りきった方がコンパクトでいいかと思ったんですが、LANケーブル7本が多すぎて
1段に入り切らないので諦めて外付けにしました。
### microUSB(給電)ケーブルの配線
![EzG7uihVUAUS9LT.jfif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/33e40fdf-1465-24f6-8b52-902e38308db2.jpeg)
今回microUSBで給電するのは、JetsonNano/RaspberryPi3Bの4台です。
それぞれ横から差しましょう。少し繋ぎにくいですがちゃんと入ります。
### AC電源の配線
![EzGF5WAVkAEzhr_.jfif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/c688075d-1b30-4c63-ebe7-0927723870fc.jpeg)
今回AC電源で給電するのは、RaspberryPi4B/Rock64/外付けHDD/スイッチングハブ/USB充電器の8台です。後から構成変えれないスパゲティにならないように束ねてうまいこと繋ぎましょう。

## タコ足配線と総消費電力
タコ足配線、ご存知でしょうか?　許容アンペア/許容ワット数を超えてしまい、設計上危険な状態になってしまうことです。明らかに大量の電源を1本の電源タップに繋いでいるので、動かしても大丈夫なのかを計算しておきました。
### 電気契約の許容限界について
これ以上超えるとブレーカーが落ちてしまう、というものです。
今回は北陸電力30Aで契約していましたので自宅内の総消費アンペアは30Aまでです。
### 電源タップの許容限界について
これ以上超えると設計上危ない、または電源タップのブレーカーが落ちるというものです。今回使った電源タップでは15A/1500Wまでと記載されています。
### コンセントの許容限界について
普通、1コンセントに付き2つの差込口がありますが、その差込口の電気系統は共通です。詳細が不明だったので、1コンセントは15A/1500Wが限界として考えました。

### 許容限界になっていないか計算方法
#### 消費電力を求める
V(ボルト) × A(アンペア) = W(消費電力) 
#### 消費アンペアを求める
W(消費電力)÷V(ボルト) = A(アンペア)
#### どの数字を見ればいいか?
![3852078.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/96d8d222-d2ca-5346-c0bc-e7a1aabe0a59.jpeg)
AC電源の裏側のInputと書かれている枠を見ましょう。Outputはコンバータを通ったあとの結果なのでそこのアンペアで計算したらダメです。(1敗) この場合、電源は最大0.7A、日本の電圧は100Vなので最大70Wを消費します。

### 計算結果
今回の電源タップは 最大アンペア9.8A、最大消費電力200Wとなっていました。同じコンセントにルーターやONUもささっているので、それらを含めると同一コンセントで11.9Aでした。電源タップの許容限界も、コンセントの許容限界も達していないので大丈夫そうです。
#### でも電気契約の許容限界が。
このクラスタで11.9A、普段使うPC2.5A、使うモニタ1.3A、冷蔵庫2.5A、電子レンジ13.5A、掃除機11.4A。常時使うものが11.9+2.5+1.3+2.5A=18.2Aで余裕が11.8Aしかありません。電子レンジを使うとブレーカーが落ちてしまいそうなので、電子レンジを使う時はPCやモニタの電源を一時的に切る必要がありそうです。

## 起動させてみた
![EzG7uQVVEAABB9K.jfif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/b27cafd2-287c-5588-34bf-e05eeec4faed.jpeg)
![EzG7uihVUAUS9LT.jfif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254984/69138914-bf60-8b69-b885-2c1e919698a8.jpeg)
全ボードがめっちゃ光ります。ワーキレー。綺麗だけじゃなくて、ちゃんと活用しないと無意味なので、次回はARMボードで動くKubernetes環境を構築します。いつになるかわからないですが次回もご期待ください。


## おまけ: 更に強化する場合
### RPi3Bに外付けイーサネット
RaspberryPi3BのGigabitイーサネット設計の都合上フルの速度が出ないので、USB経由で付け足すと理論上は4倍の転送速度が出るようになります。[(参考ページ)](https://raspberrypi.akaneiro.jp/archives/2486)3B、1台に付き1182円[(商品ページ)](https://www.amazon.co.jp/dp/B0784RHQDL)追加出費になるので、新規に用意するなら絶対4Bの方がいいです。
### JetsonNanoの給電
microUSB(5V/2.4A)でもできますが、フルに活用する場合はAC電源(5V/4A)の方が良いとされています。もし電圧不足でクラッシュすることがあればそちらに置き換えましょう。
### LANケーブルの変更
ダイソーの安物+フラットタイプなので、もしかしたら大量のノイズが乗ってしまい転送速度が落ちている可能性があります。あまりにも遅いようでしたら、もっとまともそうなケーブルに交換しましょう。
### ケーブルを束ねない
発火の原因にもなりかねないのでできれば束ねない方がいいです。
短いケーブルも少し割高ですが売っているので、予算があればそちらにしましょう。

## 参考にさせていただいた記事
[Raspberry Pi 4 でおうちKubernetesを作ろう（Raspbian Buster Lite対応版）](https://qiita.com/kentarok/items/6e818c2e6cf66c55f19a#raspberry-pi-4-%E3%81%AE%E8%80%83%E6%85%AE%E7%82%B9)