6

既存の開発クラスタを 1.13.6-gke.13 から 1.14.6-gke.13 にアップグレードしたところ、ポッドが Google Cloud VPN 経由で社内ネットワークに到達できなくなりました。実稼働クラスター (まだ 1.13) は、同じ VPC ネットワークと VPN トンネルを共有しており、引き続き正常に動作しています。唯一の変更点は、開発クラスターで管理ノードとノード プールを 1.14 にアップグレードしたことです。

開発クラスターのポッドにシェルを開き、アクセスが必要な社内サーバーの IP アドレスに ping を実行しようとしました。応答がありません。本番クラスターのポッドで同じことを行うと、期待どおりに機能します。

クラスタ内のノードに ssh 接続し、社内ネットワークに ping を実行できました。したがって、ネットワークの問題があるのはポッドだけです。

クラスター内の公開されているサービスへのアクセスは、引き続き期待どおりに機能しています。健康チェックもOK。

アップデート:

最新の 1.13 バージョンを使用して新しいノード プールを作成し、1.14 プールからポッドを排出しました。ポッドは 1.13 プールで再び実行されています。1.14で何かが間違いなく起きています。これが新しい設定オプションによる問題なのか、単なるバグなのかはまだわかりません。

解像度:

IP マスカレードについては、https: //cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent で説明しています。私の解決策は、各クラスタのポッド サブネットを、GCP 上の VPN Cloud Router のアドバタイズされたネットワークのリストに追加することでした。これで、ポッド ネットワークが VPN を通過できるようになりました。

4

1 に答える 1

9

GKE 1.13.x までは、宛先が 10.0.0.0/8 の範囲にない限り、必要でなくても、クラスタの同じ VPC 上であっても、GKE は Pod をマスカレードして外部 IP に到達しようとしていました。

1.14.x バージョン以降、このルールはデフォルトでクラスターに追加されなくなりました。これは、マスカレード ルールが削除されたため、任意のエンドポイントに到達しようとしているポッドが、ノード IP ではなくポッド IP で表示されることを意味します。

POD の IP 範囲を含めるために、Cloud VPN を再作成してみてください。

于 2019-10-09T23:41:46.620 に答える