0
0

Kubernetesクラスタ上で、CNIがネットワークの不具合解決メモ

Posted at

概要

Kubernetes内のflannelがネットワークインターフェースを作成できなくなったので、解決手段のメモを残す

原因を調べる

対象のノードにsshでログインして、ip aコマンドを実行して、flannel.1がないのでflannelが悪さしているとあたりをつけた。

失敗した方法について

flannelのPodを削除して再起動

以下のコマンドで対象のノードで動いているflannelのpodを調べてdeleteコマンドでそのpodを削除する。

kubectl -n kube-flannel get pod -o wide

上記を実行してもネットワークインターフェースが作成されない

成功した方法

以下のコマンドで、k8sクラスタから切り離す

sudo kubeadm reset

切り離し後、cniフォルダを削除

sudo rm -fr /var/lib/cni
sudo rm -fr /etc/cni/net.d

上記のあと、control-planeから登録を削除する

以下のコマンドで、kubeadmjoinするためのコマンドを作成する

echo sudo kubeadm join $(hostname -I|awk '{print $1}'):6443 --token $(kubeadm token list |sed -n 2P|awk '{print $1}') --discovery-token-ca-cert-hash sha256:$(openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //')

作成した、コマンドでk8sクラスタに再接続することでflannel.1のネットワークインターフェースが作成したので、対象のnodeを再起動すると、cni0も作成されることを確認したので一応復旧ができた。

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