🔧

MicroK8sの1.32/stableの挙動が怪しい

に公開

MicroK8sのhaクラスタのノード追加を行おうとした際に色々トラブったので備忘録的にメモ

  • 運用当時のクラスタのバージョンはv1.32.3

新たに追加したノードがk8s上で認識されない

MicroK8sのノードの追加は既存ノードでmicrok8s add-nodeを実行し、表示されたコマンドを新規ノードで実行するだけでできる簡単仕様、のはずでした
しかし、新規ノード側でコマンドを実行し、正常に接続された旨のメッセージが表示されてもkubenetes側にノードが認識されませんでした
一応microk8s status上ではdatastore欄に表示されていたためmicrok8s側には認識されていたようです
leave後joinする再加入を試したり、新規ノード同士で試したりもしましたがいずれもうまくいかず、検証のために既存のノードをleaveさせたところそれすら認識しなくなりました

原因はよくわかっていませんがmicrok8s add-nodeを実行する既存ノードと新規ノードのバージョンを1.31/stable(v1.31.7)に下げたところ無事認識されるようになりました

1.31/1.32にが共存すると1.32のノードが落ちる


上記対応をして1.31と1.32のノードが共存するようになると、急に1.32を実行するノードがNotReady状態になるようになりました
具体的にはKubeletが停止しているというエラーでした

Conditions:
  Type                 Status    LastHeartbeatTime                 LastTransitionTime                Reason              Message
  ----                 ------    -----------------                 ------------------                ------              -------
  NetworkUnavailable   False     Mon, 21 Apr 2025 19:16:46 +0900   Mon, 21 Apr 2025 19:16:46 +0900   CalicoIsUp          Calico is running on this node
  MemoryPressure       Unknown   Wed, 23 Apr 2025 02:50:21 +0900   Wed, 23 Apr 2025 02:52:21 +0900   NodeStatusUnknown   Kubelet stopped posting node status.
  DiskPressure         Unknown   Wed, 23 Apr 2025 02:50:21 +0900   Wed, 23 Apr 2025 02:52:21 +0900   NodeStatusUnknown   Kubelet stopped posting node status.
  PIDPressure          Unknown   Wed, 23 Apr 2025 02:50:21 +0900   Wed, 23 Apr 2025 02:52:21 +0900   NodeStatusUnknown   Kubelet stopped posting node status.
  Ready                Unknown   Wed, 23 Apr 2025 02:50:21 +0900   Wed, 23 Apr 2025 02:52:21 +0900   NodeStatusUnknown   Kubelet stopped posting node status.

が、関連する情報が見つからなかったため、残るすべてのノードを1.31に下げることで対応しました

microk8s resetが出来ない

これは1.32に限った話ではないかもしれませんが、microk8s leaveの後にmicrok8s resetが実行できないことがあります
この場合は、snap remove microk8s --purgesnap install microk8s --classic --channel=1.31/stableで再インストールすることで対応しました

Discussion