環境
- Ubuntu 20.04
- Kubernetes v1.24
Kubernetesの設定にミスった、istioがうまく動かなくなった。。。etc等で泣く泣く初期化するも、そもそも正常に初期化できておらず再インストール後もつまずくケースが多い。
実は 「kubeadm reset」だけだとうまく初期化できないケースもあるので完全に初期化する方法をメモ
Kubernetes完全初期化コマンド
コピペで出来るようにした
kubeadm reset --force systemctl stop kubelet rm -rf /etc/kubernetes/ rm -rf ~/.kube/ rm -rf /var/lib/kubelet/ rm -rf /var/lib/cni/ rm -rf /etc/cni/ rm -rf /var/lib/etcd/ iptables -F && iptables -X
で サーバー再起動
以下エラーパターン
Unmounting mounted directories in "/var/lib/kubelet"で止まる
ここで延々止まってしまうパターン
# kubeadm reset --force [preflight] Running pre-flight checks W0727 23:16:11.210479 2357 removeetcdmember.go:84] [reset] No kubeadm config, using etcd pod spec to get data directory [reset] No etcd config found. Assuming external etcd [reset] Please, manually reset etcd to prevent further issues [reset] Stopping the kubelet service [reset] Unmounting mounted directories in "/var/lib/kubelet"
ip netns list | cut -d' ' -f 1 | xargs -n1 ip netns delete; crictl rmp -af
failed to stop running pod, cni plugin not initializedでエラー
kubeadm reset自体は実行できるが以下のようなログが出るときはおそらくpodが生き残ったままなので正常に初期化できていない
, error: exit status 1, 7f261f7372ce55dffaddaa71a8d347b04409e398519c9e6f572c05a1cebd6fd2: output: time="2022-07-27T23:03:37+09:00" level=fatal msg="stopping the pod sandbox \"7f261f7372ce55dffaddaa71a8d347b04409e398519c9e6f572c05a1cebd6fd2\": rpc error: code = Unknown desc = failed to destroy network for sandbox \"7f261f7372ce55dffaddaa71a8d347b04409e398519c9e6f572c05a1cebd6fd2\": cni plugin not initialized"
その場合はkubeadmでは同しようもないので「crictl」コマンドで掃除する
全pod削除 削除対象がいない場合はなぜかシンタックスエラー扱いになるが問題ない
crictl --runtime-endpoint unix:///run/containerd/containerd.sock rmp --all --force
全コンテナ削除
crictl --runtime-endpoint unix:///run/containerd/containerd.sock rm --all --force
全イメージ削除
crictl --runtime-endpoint unix:///run/containerd/containerd.sock rmi --prune
で再度Kubernetes完全初期化コマンドを実行してサーバー再起動