web-dev-qa-db-ja.com

特定のネットワークに単一の送信IPを作成する

私は、GCPでOUTBOUNDトラフィックに単一の外部IPアドレスを割り当てる最善の方法を決定しようとしています。私の使用例:静的IPをサードパーティに提供して、第三者がホワイトリストに登録できるようにする必要があります。これにより、インスタンスがAPIにアクセスできるようになります。将来的にGCEインスタンスを追加または削除する可能性があるため、変更される可能性のある複数の静的IPをそれらに与えたくありません。

同様の質問 here が見つかりましたが、それが私のユースケースに対応しているかどうかはわかりませんでした。

標準のGCPネットワークを設定しています。 VPNはなく、すべてのVMに一意の外部IPがあります。 VMにSSH接続できるようにする必要があるので、私は実際にこの方法が好きです。しかし、VMからインターネットまで、トラフィックがすべて単一のIPから送信されているように見せたいのですが。私の頭に浮かび、ドキュメントのヒントがすぐに思い浮かぶのは、NATインスタンスを作成し、それを介して送信トラフィックをルーティングすることです。そのアプローチに関するいくつかの問題:

  1. NAT専用のボックスをセットアップして維持する必要がある
  2. HAではありません。そのインスタンスまたはアベイラビリティーゾーンが停止すると、他のインスタンスはトラフィックを外部にルーティングできなくなります
  3. 将来的に構成を再作成する必要がある場合、あまり再現性がないようです

具体的には、このプロジェクトでGKE/Kubernetesを使用しています。このユースケースを実現するためのベストプラクティスは、HA、メンテナンスが少なく、繰り返し可能なものですか?

13
rob-cng

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

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

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

また、これはマネージドソフトウェアベースのNATであるため、帯域幅と可用性には影響しません。

ただし、インスタンスにSSHで接続できるようにするには、要塞ホストが必要です。

4
Parag

これは、NAT)を実行する単一のインスタンスを介してすべてのトラフィックをルーティングすることで実行できます。Googleはこれを行うためのガイドを https://cloud.google .com/compute/docs/networking#natgateway

4
David