GKEの送信接続の安定したパブリックIPまたはIP範囲


20

Google Kubernetes Engineを使用してオンデマンドポッドを実行しています。各ポッドは、ノードポートサービスを使用してインターネットに公開されています。

GKEで、送信接続の単一のIPまたはIP範囲を取得し、サードパーティのAPIにそれらをホワイトリストに登録する方法を探しています。

GKEノードIPは、ノードが自動スケーリングするとき、またはノードをアップグレードするときに管理できません。送信IPの一貫性を維持する方法が必要です。

KubernetesノードにシンプルなNATゲートウェイを使用してみました(ここの例を使用)。これにより、アウトバウンド接続がNATゲートウェイにルーティングされますが、ポッド(ノードポートサービス)へのインバウンドトラフィックが遮断されます。 NATゲートウェイ。

  • GoogleクラウドリージョンのデフォルトのIP範囲はありますか?

  • GKEが静的IPの事前予約済みリストからノード外部IPを選択する方法を提供する場合(または)

  • ポッドからの送信トラフィックを表す単一の静的IPまたはIP範囲を実現する他の方法はありますか

私はこのような同様の質問を見つけましたが、ポッドは外部接続可能であるべきで、NATを使用すると中断するため、私の問題には対応していません。

回答:


6

Google Cloudは、マネージドNATゲートウェイサービスであるCloud NATを提供するようになりました。

このゲートウェイはGKEクラスタで使用できます。GKEクラスタは、その内部のすべてのポッドに安定したパブリック出力IPを提供し、サードパーティのサービスプロバイダによるホワイトリストへの登録を可能にします。

GKEとクラウドNATを使用するための実装例は、ここで提供される- https://cloud.google.com/nat/docs/gke-example


クラスタはプライベートである必要がありますか?
Gajus、

3
はい、クラスターはプライベートである必要がありますが、マスターはパブリックにすることができます。サービスのいずれかを公開する必要がある場合は、ロードバランサーによって公開できます。
Parag

@Paragクラスタをプライベートにする必要はありますか?ノードIPがパブリックの場合に使用できる方法があります。
Suhas Chikkanna

1
@SuhasChikkanna CloudNATなし。ノードに外部IPが必要で、単一の送信IPも必要な場合は、Squidを使用して独自のNATゲートウェイインスタンスを作成し、内部サーバーをインスタンスに直接ルーティングする条件付きルーティングを使用できますが、外部からのトラフィックはすべてNATを介して。これにより、選択したIPソースからノードにアクセスできるようにしながら、ユーザーに単一の送信IPが提供されます。
Parag

@Paragいいね!間違いなくそれを試してみます。
どうも

1

あなたはこの解決策を試すことができます:

https://cloud.google.com/solutions/using-a-nat-gateway-with-kubernetes-engine

通常の状況では、Google Kubernetes Engineノードは、ノードクラスタに関連付けられているインターネットゲートウェイを介してすべての下りトラフィックをルーティングします。次に、インターネットゲートウェイ接続は、ノードクラスタに関連付けられたCompute Engineネットワークによって定義されます。クラスタ内の各ノードには、一時的な外部IPアドレスがあります。自動スケーリング中にノードが作成および破棄されると、新しいノードのIPアドレスが自動的に割り当てられます。

デフォルトゲートウェイの動作は、通常の状況でうまく機能します。ただし、以下の目的で、エフェメラル外部IPアドレスの割り当て方法を変更する必要がある場合があります。

  • 一貫した外部IPアドレスをサードパーティサービスに提供します。
  • Google Kubernetes Engineクラスタからの下りトラフィックを監視してフィルタリングします。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.