[2021/3/31 追記]
32 bit のイメージで作業を進めてしまったところ Docker のインストールでどんづまったので 64 bit でやり直すことにしました。
(64 bit: aarch64)
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos-altarch/7.9.2009/isos/aarch64/images/
(32 bit: armhfp(armv7l))
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos-altarch/7.9.2009/isos/armhfp/
※ 以下の記事で利用したもの。
これは何?
タイトルの通り、Raspberry Pi を使った Kubernetes の環境構築の作業記録です。 解説と言えるほどのものにはならないと思うのでご注意ください。
基本的には ↑ の本の Appendix にならいつつ、Raspberry Pi 4 model B/4 GB + 3 model B+ * 3 台の計 4 台で環境を構築していきたいと思います。
調達
Raspberry Pi 本体の調達ですが、Amazon の Raspberry Pi 販売ページを色々みてもどの商品がどのような商流で手元に届くのかいまいちよくわからなかったので、KSY 社の HP から購入しました。
Pi 3 model B が在庫切れだったことと、せっかくなので Pi 4 model B も触ってみたかったことから上記の構成としました。
Pi 4 model B はまずマスター ノードとして構築します。
将来的にはワーカー ノードにして、ワーカー ノードのスペックが一様でない環境のお勉強にも使えたらな、という感じです。
他に、以下を購入しました。
・Cat 6 UTP (1 m) * 4 -- 100 均で購入
・USB (type-A) to USB (micro-B/Type-C 兼用) 充電・転送ケーブル (1 m) * 4 -- 100 均で購入
・16 GB microSD * 4 -- 電気屋さんで購入 (各 870 円)
・100 BASE-TX/8 ポート スイッチング ハブ -- 電気屋さんで購入 (1600 円)
Raspberry Pi の電源供給は手持ちのケーブルやアダプタを組み合わせました。すっきりさせたい場合は USB ポート付きの電源タップなどを買うといいのかも。
ホスト OS の準備
ホスト OS と言う呼び方が正しいのかまずわかってないんですが、Raspberry Pi を走らせる OS のことを指しています。 前述の『入門 Kubernetes』では HypriotOS (https://blog.hypriot.com/) が紹介されていますが、私は AWS のお勉強も兼ねたいという考えから CentOS7 を導入したいと思います (Amazon Linux 2 が CentOS 7 に似てると聞いて)。ググってみると色々とうまくいったりいかなかったりするようですが、とりあえずこちらの "CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-4-2009-sda.raw.xz" から試してみようと思います。
microSD カードへの書き込みには Sillicon Linux 様の DD for Windows (Ver.0.9.9.8) を利用させていただきます。
うまくいくでしょうか。
結果として、4 枚の SD カードへのイメージ書き込みすべてにおいて 1 回以上の BSoD が発生しました。
エラーもまちまちで、私の環境では以下が観測されました。
IRQL_NOT_LESS_OR_EQUAL
PAGE_FAULT_IN_NONPAGED_AREA (失敗した内容: fvevol.sys)
PFN_LIST_CORRUPT
どうやら書き込み自体はできているらしく、気にしていたら Windows は使っていられないので、この事象の調査はいつか (いつ?) やることにして次に行きたいと思います。
メモ:
Surface の microSD カード スロットを使って書き込みを行いました。
1 枚目の書き込みで BSoD が起きた後、OS (Windows) を 19042.867 から 19042.870 (※) にアップデートしましたが、そのことによる挙動の変化は確認できませんでした。
(※) 噂の「印刷時に BSoD が発生することがある」という事象の修正が取り込まれた以降のバージョン。ただし、同事象発生時のエラーは APC_INDEX_MISMATCH とのこと。
に続く。