HW構成
Raspberry Pi 4 Model B 8GB x3
NETGEAR GS305PP(PoE+)
開封
あ(撮り忘れた)
いざセットアップ
Raspberry Pi Imagerを使う。今回はOSイメージを書き込む際のオプションから事前にSSHを有効化し、ユーザーの設定、ロケールの設定を行った。
OSはUbuntuServer22.04LTS(64-bit)…
のはずだったが謎のエラーが頻発するためUbuntu Server20.04.4LTSへ変更。
Hello World
カーネル・サンダースを設定
ここで動作に必要なモジュールをLoad
containeredを入れる
コンテナを走らせるランタイム。Dockerの付属品なのでDocker Hubの手順に従う。その後初期設定まで済ませる
前提パッケージのインストール
Dockerの鍵を追加
リポジトリ追加
インストール
kubeadm入れる
とりあえずリファレンスにしたがう。先に前提となるNWやOSの挙動周りの設定をする。
なお、Kubernetesではswapを無効にする必要があるが、Raspberry Pi4では最初から無効になっていた。
ネットワーク周りの挙動の設定
ufwの設定
cgroupまわり
https://kuromt.hatenablog.com/entry/2019/01/03/233347を参考にして解決。
hosts設定
kubeadmインストール
その後、無事sudo kubeadm init
。
flannelの要求に従って--pod-network-cidr
を設定。
ネットワークアドオンにはflannelを採用した。
次にNodeを接続する。
その後のマスターノード
ここまできたらその他サービスの状態を確認する。
Crash LoopやPending、Errorなどが出てなければとりあえず大丈夫
ヨシ!!!
リモートアクセスしよう
SSHにはCloudflare Zero Trustで構築したセキュアなものを用いる。
- WebダッシュボードからTunnelを生成してコマンドをコピーしてインストール。
- ssh.k8sx.sushichan.liveのtunnelとapplicationを通す。
- 鍵ペアを作成して
authorized_key
する。その後パスワードログインを無効化。
MySQLコンテナ作成
基本的に公式チュートリアルを参考にしています。
とりあえずSecretを入れる
ボリューム割当
サービス作る
外部アクセス
で外部アクセス自体はできそうだが、screenで常時実行にしないといけないのだろうか???めんd