先日k3sのクラスタが暴走(?)し、VMがハング、なぜか同時にホストマシンのProxmoxの管理画面もフリーズし、無事クラスタの大崩壊が発生しました。監視基板ごと死んだのかアラート等が一切出ずメトリクス等も消えたため、原因は不明です。
それはさておき、こんな構成のk3sクラスタがあります。
- HA構成
- server(コントロールプレーン+Worker) 3台
- 内2台がRyzen機 残りがN150機
- 各k3sはProxmox上のVMに構築
今回はRyzen機に乗っている2つのk3sノードが死にました。残っている一つのクラスタからetcdとかをいい感じにする必要があります。
k3sのetcdスナップショットからの復元#
https://docs.k3s.io/ja/cli/etcd-snapshot
基本的におせっかい機能しかないk3sやmicrok8sですが、今回はそれに救われました。
生きているノードで以下を実行します。
k3s server --cluster-reset --cluster-reset-restore-path=/var/lib/rancher/k3s/server/db/snapshots/<スナップショットファイル>
とりあえずこれでk3sのetcdに関するエラーは直ると思います。
k3sのクラスター復旧#
これは普通にk3sのHA構成のときの新しいノード追加方法と同じで、serverを指定して追加していくだけです。