Raspberry PiでKubernetesクラスタを組む(その3: k8sクラスタ構築編)
その2が2022年の夏なのでもう3年近く放置していたRaspberryPiでk8s、なんとなくそろそろ手を付けるかと思ったので再開することにした。
なんで放置したかというと、kubeadm init
は正常に終了するもののapiserverが無限再起動編に突入して正常に稼働しなくて心が折れたというのがある。
その2が2022年の夏なのでもう3年近く放置していたRaspberryPiでk8s、なんとなくそろそろ手を付けるかと思ったので再開することにした。
なんで放置したかというと、kubeadm init
は正常に終了するもののapiserverが無限再起動編に突入して正常に稼働しなくて心が折れたというのがある。
ただurandomの面々と飯を食った後にフラッと秋葉原のヨドバシに寄ったところ、そこにRyzen 7 9800X3Dが置いてあったのが全ての発端でした。
どこにもないと言われつつなんか普通にポンと置かれていて、うわ、どうしよ、いやでも椅子が欲しいしな……などと悩んでその場は買わずに帰ったんですが、翌日「いややっぱ欲しいな」と思い、あともうそこで行ってなければ諦めがつくと思って行ってみたらまだあったんですね。即座に店員さんに声を掛けて購入しました。その後秋葉原のパーツショップを一巡りしてマザーやメモリを調達して帰宅しました(ちなみに後日やっぱSSDも折角だしアップグレードしよ、と思ってSN850XとSN7100を購入)。
まとめる程のこともそんなないんですが、なんか書いとけ的なノリでちょっと振り返って書いてみます。
例によってCTFはSECCONにしか出てないです(urandomとしては)。SECCON CTFがQRコードを煮たり焼いたりする(※煮てはない、多分)インターネットクイズ大会だったのも今は昔、すっかりガチのCTFになって久しいですが、そうなってくると普段から真面目に取り組んでないとまぁ解けないですね。昨今はとりあえずChatGPTなりなんなりに放り投げたら何とかなるという風潮もありますが、何もわからんままLLMにぶん投げても何もわからん回答が返ってくるだけなので依然として人間側がきちんと理解する必要があります。毎度のことながら、些細な違和感だったり、題意を何となく察したりみたいなとこは案外行けてて、問題はそこから正解に持ち込むだけの知識量とか気合いなような気がします。
Raspberry Pi 5が(3月くらいに)届いてたので適当にセットアップした記録。——を書いて力尽きていたのを7月に入って続きを書き始めた記事です。
同じような記事は山ほどあるだろうけど……。
今回買ったものではありませんが、電源は5V4Aを供給できるTSI-PI046-5V4Aを(Raspberry Pi 4から使い回して)使用しています。
ミドルレンジとはいえせっかくディスクリートのGPU積んでるのに何もしてない(ゲームはしてる)のはもったいない、ということでひとつ試しにStable Diffusionを動かしてみることにした。
CPU | Intel Core i5-12600KF (6+4C/16T) |
メモリ | crucial DDR4-3200 32GB (16GBx2) |
GPU | Radeon RX 6600 XT (ASRock AMD Radeon RX 6600 XT Challenger D 8GB OC) |
SSD | WD My Passport 1TB |
ソフトウェア類は以下の通り。
去年の9月からKeychron K8 Proを使っています。スイッチはGateron G Pro 赤軸を選びました。ここで始めて赤軸を使ったのですが、「悪くないんだけどやっぱり自分はクリッキーかタクタイルだな」と思ってスイッチを探し、今回はDurock T1 Shrimpを選びました。元々青軸大好きマンなんですが、音の問題があって今回はタクタイルを選択しました。スイッチは遊舎工房さんのオンラインショップで購入しました。K8 Proは87キーなので、35個入りを3つで合計105個、送料抜きで10,395円(99円/個)でした。なお、これを書いている時点で完売となっています。
サーバー運用といえばまず監視である(?)。Kubernetesクラスタを立ち上げる前に、まずRaspberry Piの監視体制を組んでみることにした。
構成については『ラズパイk8s用の監視システム(Node Exporter + Prometheus + InfluxDB + Grafana)』を参考にした。ダッシュボードはインターネットからアクセスしたいが、インターネットからLANへのアクセスは可能な限りしたくないということで、InfluxDBとGrafanaは元から契約していたVPS上に構築することにした。
Kubernetesがイケイケの技術と言われてから早数年が経ち、とりあえずコンテナ乗っけとけみたいな感覚でアプリが船の上に乗せられる時代になったが、業務では社内で提供されるPaaSか、諸々の要件の問題で昔ながらの仮想マシンを使うことがほとんどだった。このままではk8sのkの字も分からないまま死んでしまうという危惧を抱き、自前で組んでみることにした。
前の記事で引っ越し記録を書くと言って結局4ヶ月ほど放置してしまったけど一応記録。
元々 tech.aquarite.info
はOctopressで生成したものをGitHub Pagesに乗っけていて、 aquarite.info
は手書きのHTMLを契約しているVPSでホストしていた。まず手書きで全部管理するのが超絶しんどい、ぶっちゃけ分ける理由があんまりない、などの理由でこれらを統合することにした。
これと同時に、Octopressはとうに更新が止まっていること、Octopressのリポジトリをcloneしてきてそこに手を加えるスタイルがやっぱり気持ち悪いといった理由でOctopressから別のstatic site generatorに移ろうと考えていた。で、色々と調べてみたがHugoにした。
結構前にスマートメーターに切り替わり、このタイミングで電力消費量なんかを取れないかと調べてみてBルートサービスなるものがあることを知った。
スマートメーターとWi-SUNなる規格で通信して情報を取得できるが、このモジュールがなかなか高価で尻込みしていた。しかし、最近どうもブレーカーが落ちる頻度が上がってきた感じがあったので、電力使用量をモニタリングしてみようと思ったものである。