15

Google Cloud(GKE)でk8sクラスタを実行し、aws(RDS)でMySQLサーバを実行します。ポッドは、特定のIPからの接続のみを許可するRDSに接続する必要があります。静的IPを持つように発信トラフィックを設定するにはどうすればよいですか?Kubernetesの静的発信IPアドレス

+0

コードがk8なしで別のVMで実行されていたとします。接続を受け入れるようにRDSを構成するにはどうすればよいでしょうか? – iamnat

+0

グローバルIPを持つNATサーバを追加し、NAT経由でインターネットに接続する他のサーバ(Webサーバなど)を設定します。 – Shouichi

+0

Hm ..これまではこれまで使ったことはありませんが、RDSに接続するVM上でWebサーバーを実行していた場合、RDSはVMのパブリックIPからの着信接続を認識します。つまり、WebサーバーがRDSに接続する(そのノードのパブリックIPを使用できるようにする)クラスタ上の特定のノードで「プロキシ」サーバーを実行しているか、またはそのノードのすべてのIPをホワイトリストに登録することができますRDSのクラスタそれは理にかなっていますか? – iamnat

答えて

2

で外部IPを指すサービスを設定することができ、私はいくつかの研究をしたと私は物事のカップルを発見しました。

私たちが探しているものは、「出力IP」またはNAT-as-a-Serviceと呼ばれ、GKEではまだ利用できません。我々は二つの異なるオプションがありますいずれにせよ

  1. 出口プロキシとして機能するNATゲートウェイのVMを作成します。ここではそのことについて話して素晴らしい記事(google cloud NAT gateway
  2. がある

はそれが役に立てば幸いコンテナクラスタVMインスタンスに静的IPアドレスを割り当てます!

+0

これを確実にするために、これ(https://kubernetes.io/docs/tutorials/services/source-ip/)が上記のニーズに対応していないでしょうか? –

+0

mmhh @ Zed_Bladeとは思わない:サービスは常に外部から来て、ポッドから提供される要求の問題です。もう一方の問題は、外部からのトラフィックのNATです。 –

+0

同じディスカッション[こちら](https://groups.google.com/forum/#!topic/kubernetes-users/zNytc8GVB5s) [NATゲートウェイ](https://cloud.google.com/compute/docs/networking#natgateway)は今のところ行く方法です。 – Carlos

7

ポッドからsftpサーバに接続するのと同じ問題がありました。 は、この問題を解決するには、まずあなたは、外部IPアドレスを作成する必要があります。

gcloud compute addresses create {{ EXT_ADDRESS_NAME }} --region {{ REGION }} 

はその後、私はあなたのポッドはデフォルト・プールのノードのクラスタに割り当てられていることとします。

gcloud compute instances list | awk '{ print $1 }' | grep default-pool 

VMインスタンスの消去デフォルトの外部IP:あなたのポッド場合

gcloud compute instances add-access-config {{ VM_DEFAULT-POOL_INSTANCE }} --access-config-name external-nat --address {{ EXT_ADDRESS_IP }} 

gcloud compute instances delete-access-config {{ VM_DEFAULT-POOL_INSTANCE }} --access-config-name external-nat 

前に作成した外部の静的IPを追加 は、デフォルト・プールのノード名を抽出しますがdefault-poolノードに接続されていない場合は、nodeSelectorを使用してノードプールを選択することを忘れないでください。

nodeSelector: 
    cloud.google.com/gke-nodepool: {{ NODE_NAME }} 
+1

何らかの理由で 'add-access-config'コマンドに' zone'と 'network-interface'パラメータが必要です。それ以外は魅力的に働いた。 – defectus

+0

こんにちは、あなたの答えをありがとう! 1つのことは私にとってはあまり明確ではありません。このアプローチでは、ポッドは常に1つのノードでのみ実行されますか? – Shouichi

+0

これはdefault-poolで、基本的な設定です。この場合、1つのノードで1つのポッドしか実行されません。 –

関連する問題