web-dev-qa-db-ja.com

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

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

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

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

単純なNAT Kubernetesノードへのゲートウェイ( here の例を使用)を使用してみましたが、これはアウトバウンド接続をNATゲートウェイ、NATゲートウェイでドロップオフされるため、ポッド(ノードポートサービス)への受信トラフィックを遮断します。

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

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

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

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

19
Parag

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

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

Cloudを使用するための実装例NATがここに提供されています- https://cloud.google.com/nat/docs/gke-example

6
Parag

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

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

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

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

  • 一貫した外部IPアドレスをサードパーティサービスに提供します。
  • Google Kubernetes Engineクラスタからの下りトラフィックを監視してフィルタリングします。
1
alphayax

このセットアップの最善の策は、LoadBalancerサービスまたはIngressリソースを使用してインバウンドリクエストを処理することです。規模が大きくても、すべてのポッドに単一の静的IPを割り当てることができます。次に、送信トラフィック用に提供した例を使用します。

各ノードに割り当てられる外部IPはエフェメラルであり、利用可能なGoogle IPの範囲内から選択されます。 Google IPのリストを見つける方法について説明している このスタックの投稿 を参照してください。

1
Patrick W