アドテクスタジオ CIA の青山真也 (@amsy810) です。
今回は 3 日間クッキングということで「Kubernetes のラズペリーパイ包み “サイバーエージェント風”」を作りたいと思います。
この記事は 3 days インターンシップ「おうち Kubernetes とコンテナ技術 入門ゼミ」の振り返りブログです。
一家に一台おうち Kubernetes の時代はすぐそこに
スマホが爆発的に普及したように、一家に一台 Kubernetes クラスタがある時代はもう目前です。
手のひらサイズのおうち Kubernetes。
おしゃれインテリアとしても女子ウケ間違い無し (?)。
カフェなどで突然 Kubernetes の検証をしなくてはいけなくなった場合も、電源さえあればどこでも利用可能です。重量も 703g なので持ち運びにも非常に便利です。
そんな「おうち Kubernetes」をぜひ皆さん構築しましょう。
材料(1クラスタ分)
では、まず材料です。
Raspberry Pi 3 Model B | 3 個 |
ヒートシンク | 3 セット |
microSD カード (16 GB) | 3 枚 |
4 段積層式 Raspberry Pi 3 ケース | 1 個 |
6 ポート 50W USB 充電器 | 1 個 |
2.4A microUSB ケーブル | 5 本 |
コンパクト無線親機 (WMR-433W-BK) | 1 個 |
microUSB 給電 スイッチングハブ (LAN-SW05PSBE) | 1 個 |
0.3m LAN ケーブル | 3 本 |
0.15m LAN ケーブル | 1 本 |
3M 強力両面テープ | 少々 |
結束テープ | 少々 |
六角スペーサー | 適量 |
CyberAgent のステッカー | プライスレス |
今回は鮮度が高いまますぐに届く Amazon 産とヨドバシ.com 産の材料を使いました。メイン食材のラズペリーパイについては RS コンポーネンツから購入しました。クラスタに彩りを添える CyberAgent のステッカーについては産地直送で取り寄せです。
さて鮮度が非常に高いまま到着しました。朝自席に来たときはダンボールの山が積まれた状態でしたが、一旦1つの大きな箱に詰め込みました。
今回は 12 人前の材料を用意しました。 なかなかこの量の Raspberry Pi を用意することも無いかと思います。圧巻の光景ですね。
作り方
さて、いよいよ作っていきたいと思います。 物理的構築自体はだいたい 1 時間ほどで完了するかと思います。
1.Raspberry Pi を開封します。
一番高い部品なので、壊さないよう丁寧に空けましょう。
2.Raspberry Pi にヒートシンクを取り付けます。
ヒートシンクに付いている両面テープを剥がし、大小 1 つずつ取り付けましょう。 方向はお好みで。
3.4 段積層式のケースの 下 3 段に Raspberry Pi を取り付けていきます。
執筆時点では買い占めてしまったため、在庫がありません。注意して下さい。
まず、アクリル板の保護シートを外します。 ここが一番たいへんな作業です。15 分位かかります。噂によると一回水につけて下ごしらえをしておくと剥がしやすいそうです。
4.各段に事前に Raspberry Pi を取り付けます。
[ネジ] > [アクリル板] > [スペーサー] > [Raspberry Pi] > [ナット] となるように取り付けていきます。
まず、[ネジ] > [アクリル板] > [スペーサー] となるように取り付けます。
その上から Raspberry Pi を置くようにします。
最後にナットを借り付けします。ドライバーでしっかりと締めましょう。
3台とも取り付けてから、段を組んでいくようにします。
5.一番下の段を組み上げます。
6.同様の手順で 2 段目を組み上げます。
7.同様の手順で 3 段目を組み上げます。
8.最上段に USB 充電器を取り付けます。 ケースの形状や USB 充電器の高さによっては六角スペーサーを利用して下さい。
配線時の方向を意識しながら設置してください。今回はこの方向で設置しました。また、ズレ防止のため必要に応じて両面テープなどで接着して下さい。
9.最上段を取り付けます。
10.最上段にスイッチングハブとコンパクト無線親機を取り付けます。
USB 充電器と同様に両面テープをつけ、
段になるように設置します。この際も配線を意識しながら設置してください。
11.次にケーブリングを行っていきます。
0.3m の LAN ケーブルで Raspberry Pi と スイッチングハブをつなぎ、0.15m の LAN ケーブルでスイッチングハブとコンパクト無線親機間をつなぎます。 microUSB ケーブルで Raspberry Pi、スイッチングハブ、コンパクト無線親機の電源供給をして下さい。 インフラエンジニアには綺麗に配線するという職業病が発症していることかと思います。頑張って下さい。
背面から見るとこんな感じです。
表面から見るとこんな感じになっています。
12.最後に NW の設定を行います。
まず、PC からコンパクト無線親機に繋いでください。 ブラウザで https://192.168.13.1/ にアクセスし、コンパクト無線親機と上流の無線親機と接続します。
- User: admin
- Password: 上記に記載の暗号化キー PIN
今回の構成はこのような形です。このコンパクト無線親機は上流の接続に無線・有線どちらでも利用することが可能になっています。
13.microSD カード経由でブートします。
今回は Raspbian の OS イメージを利用しました。学生の皆さんに配る際には、Kubernetes などのバイナリと systemd のスクリプトだけは配置した状態で配布しました。ARM 用のバイナリを利用する点に注意してください。
- Kubernetes バイナリ
- https://storage.googleapis.com/kubernetes-release/release/v1.8.8/kubernetes-server-linux-arm.tar.gz
- Flanneld バイナリ
- https://github.com/coreos/flannel/releases/download/v0.9.1/flannel-v0.9.1-linux-arm.tar.gz
以上でクラスタを構築するための準備は完了しました。
材料(論理的)
次に論理的な材料です。
kube-apiserver | 1〜3 プロセス |
kube-controller-manager | 1〜3 プロセス |
kube-scheduler | 1〜3 プロセス |
kubelet | 3 プロセス |
kube-proxy | 3 プロセス |
flanneld | 3 プロセス |
docker daemon | 3 プロセス |
etcd | 1〜3 プロセス |
やる気 | 少々 |
作り方 (論理的)
今回は v1.8.8 を利用してクラスタを構築しました。Kubernetes のアーキテクチャやコンセプトを理解しながら構築するために kubeadm などの構築ツールは使わず、バイナリを systemd 経由で起動する方法で構築してもらっています。ちなみに作業中はみんなもくもくと作業していました。
私も質問対応をするかたわら、ずっと検証してみたかった metallb の検証をしていました。導入も非常に簡単で、おうち Kubernetes にとっては必需品とも言えるので、ぜひ皆さん試してみて下さい。
今回は論理的構築の細かい話はしません。ぜひ皆さんも自分で構築してみるか、ぜひ弊社へお越しください。kubeadm を利用すれば比較的簡単に自分で構築することも可能です。
まとめ
当初は 3 日間で構築できるとは思っていませんでしたが、なんと 12 名の学生全員が Kubernetes を構築することができました。初日は Docker と Kubernetes 初心者だった方もいましたが、入門講義を少し行っただけで習得してくれました。metallb を使った “type: LoadBalancer”、マルチマスタ構成、HPA 機能の調査、Secure Cluster の対応、RBAC/ABAC の調査、Rook を使った PV の調査、Dashboardの有効化など、様々な課題に取り組むことができた人も多かったです。皆さんがワクワクしている顔で作業している光景は、私としても非常にワクワクしました。
第2回目も絶賛企画中ですので、ご興味のある方は是非ご連絡ください。
Let’s enjoy Kubernetes!