0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kubernetesノードのコントロールプレーンを変更しようとしたらcrictlからpodを削除できなくて困った

Posted at

一度構築したKubernetesクラスタをリセットして再構築したくなることありませんか?
Kubernetesのトラブルを真面目に解決しようとすると数日吹き飛ぶことはママあると思っています。
そういう時は、「バルス」、いわゆる破滅の呪文でラピュタもといKubernetesクラスタを吹き飛ばして、再構築してしまうほうが早いです。
幸い、私はKubernetesの構築をAnsibleで行っているので、再構築は待っているだけでできます。

しかしながら、たまに破滅の呪文が正常に動作しないことがあります。
具体的な手順は以下の通りです

  • kubeadmをリセットする
  • systemdのデーモンをリロードする
  • kubeletを停止する
  • crictl rmp -afで全てのポッドを削除する
  • kubeletをスタートする

本来、crictl rmp -afはエラーを無視して、podを削除するコマンドですが、現実にはpodの削除に失敗する場合があります。

そういう時は、以下のコマンドが有効です。

ip route flush proto bird
ip link list | grep cali | awk '{print $2}' | cut -c 1-15 | xargs -I {} ip link delete {}
modprobe -r ipip

本当は参考にしたissueがあったのですが、見失ってしまいました。
この後はcrictl rmp -afから再度実行すれば先ほどは削除できなかったポッドを全て削除することができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?