メインコンテンツへスキップ

k3sのクラスタが大崩壊を起こしたときの復旧メモ

·23 文字·1 分
技術 K3s Proxmox
目次

先日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を指定して追加していくだけです。

https://docs.k3s.io/ja/datastore/ha-embedded