既存の開発クラスタを 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 を通過できるようになりました。