GCP GKE VPC ネイティブ クラスタ IP エイリアスはどのように実装されますか?

GCP GKE VPC ネイティブ クラスタ IP エイリアスはどのように実装されますか?

GCP/GKE VPC ネイティブ ネットワークは、各ポッドへのエイリアス IP 割り当てをどのように実装しますか?

例えばGoogle Kubernetes Engine – ネットワーキング各ポッドには、サブネットのセカンダリ IP CIDR 範囲 (例: 10.4.1.1) からの IP が割り当てられます。

ここに画像の説明を入力してください

Linux インスタンスの各ポッドには、veth I/F があります。pod(i) の各 veth(i) は、ポッドが実行される Linux ボックスのネットワーク インターフェイスにどのようにリンクされますか? 各ポッド (veth) には、Linux ボックスに接続された独自のネットワーク インターフェイスがありますか、それともすべてのポッドと veth インターフェイスが単一の eth0 を共有しますか?

ここに画像の説明を入力してください

によるとGoogle Cloud 上の Kubernetes ネットワークLinux ボックスの単一の eth0 がポッド間で共有されていることを示します。次に、単一の eth0 には、複数のセカンダリ エイリアス IP アドレスが関連付けられています。では、Linux ボックスはどのようにしてパケットを各エイリアス IP に分離し、対応するポッド/veth にルーティングできるのでしょうか。エイリアス IP を veth にマップするために iptable を使用しているのでしょうか。

ここに画像の説明を入力してください

GKE ドキュメントVM ネットワーク インターフェースで定義されたエイリアス IP 範囲詳細はありません。

ここに画像の説明を入力してください

答え1

ポッドの各 veth は、ポッドが実行される Linux ボックスのネットワーク インターフェイスにどのようにリンクされますか?

GKEはネットワーク名前空間接続するポッドのノードの eth0 と veth を接続します。

各ポッド (veth) には Linux ボックスに接続された独自のネットワーク インターフェイスがありますか、それともすべてのポッドと veth インターフェイスが単一の eth0 を共有しますか?

すべての veth はブリッジ (cbr0) を介して単一の eth0 インターフェースに接続されます。概略図

Linux ボックスはどのようにして各エイリアス IP へのパケットを分離し、対応するポッド/veth にルーティングするのでしょうか? エイリアス IP を veth にマッピングするために iptable を使用しているのでしょうか?

kubeプロキシトラフィックを適切なポッドにルーティングするために、ノード上の iptable を編集します。

詳細はこちらをご覧ください記事そしてこのスタックオーバーフロー 答え

関連情報