同じ AWS VPC 共有サブネットで 2 つの kubernetes クラスターを実行したい状況があります。これは、weave CNI プラグインが他のクラスター内のノードを検出しているように見えることを除いて、問題なく機能しているようです。これらのノードは、「IP 割り当てが異なるピアによってシードされました」という理由で拒否されます。それらは異なるクラスターです。weave が代替クラスター内のマシンを見つけないようにする方法はありますか。実行するweave --local status ipam
とweave --local status targets
、各クラスターの予想されるターゲットと IPAM が表示されます。
Weave Pod は、代替クラスターからのノードの接続と拒否の無限ループにあります。これは CPU を食いつぶし、クラスタに影響を与えています。kube-utils
Weave Pod 内で実行すると、各クラスターの正しいノードが返されます。kubernetes は、利用可能なピアを認識している必要があるようです。クラスターが認識しているピアを使用することはできますか。
さらに調査した結果、両方のクラスターでマシンをスケールアップおよびスケールダウンしたことが問題であると考えています。その過程で、IP アドレスは 1 つのクラスターから次のクラスターに再利用されました。たとえば、クラスタ A がノードをスケールダウンしたとします。Weave は、失われたノードへの接続を試行し続けます。クラスタ B はスケールアップし、クラスタ A で最初に使用された IP を使用します。Weave はノードを見つけます。これにより、ウィーブは他のクラスターノードを「発見」しました。他のクラスタから 1 つのノードが検出されると、すべてのノードが検出されます。
2.4.0 から 2.4.1 にアップグレードして、ips の再利用に関連するいくつかの修正がこの問題を緩和するかどうかを確認しました。