K8s の一般的なトラブルシューティングと解決策

1. k8s クラスター内のノードを頻繁に再起動すると、次の問題が発生する場合があります。

1. ポッド情報を確認すると、「open /run/flannel/subnet.env: no such file or directory」というエラーが見つかりました。

マスター ノードを含む各ノードに /run/flannel/subnet.env があるかどうかを確認します。内容は次のようになります。

FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true

このファイルがないノードがある場合は、コピーを作成して再度デプロイすると、このエラーは報告されなくなります。

2. サービスをデプロイすると、サービスを公開できず、サービス間の呼び出しがブロックされることがわかります。

まず ifconfig を実行して次のノードのネットワーク状態を確認します。
ここに画像の説明を挿入します
ゲートウェイが 2 つあることがわかります。ネットワークに問題がある場合は、まず 2 つのネットワーク セグメントに一貫性があるかどうかを確認できます。

K8s をデプロイするときに、flannel ネットワーク プラグインまたは calico プラグインを使用しますが、サービスのデプロイ後に頻繁に再起動が発生したり、長時間実行した後にサービスが見つからないことがあります。以下の方法で。

建议:在生产场景中,建议提前规划好k8s的网络,如果中途更换网络插件,产生的影响会比较大。

ネットワーク プラグインを再デプロイします。置き換えないことをお勧めします。以前のプラグインは引き続き使用できます。再デプロイするだけで済みます。

最初のステップは、マスター ノード上のフランネルを削除することです。
kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
2 番目のステップは、ノードノード上にフランネル ネットワークによって残されたファイルをクリーンアップすることです。
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/
rm -f /etc/cni/net.d/*

上記の操作を実行した後、 kubelet を再起動し、以前にデプロイされたすべてのアプリケーションを再起動すると、サービスが検出できることがわかります。ちょっとした裏技でもありますが、とにかく問題は解決しました。

おすすめ

転載: blog.csdn.net/bacawa/article/details/129122366