一度構築した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
から再度実行すれば先ほどは削除できなかったポッドを全て削除することができます。