web-dev-qa-db-ja.com

Kubernetesの静的発信IP

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

29
Shouichi

ポッドから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 delete-access-config {{ VM_DEFAULT-POOL_INSTANCE }} --access-config-name external-nat

前に作成した外部静的IPを追加します。

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

Podがデフォルトプールノードに接続されていない場合、nodeSelectorで選択することを忘れないでください。

nodeSelector:
    cloud.google.com/gke-nodepool: {{ NODE_NAME }} 
14
Luc Charpentier

私はいくつかの研究を行い、いくつかのことを発見しました。

私たちが探しているのは「出力IP」またはNAT-as-a-Serviceと呼ばれ、どちらもGKEではまだ利用できません。

いずれの場合でも、2つの異なるオプションがあります。

  1. NAT Gateway VMこれは、出口プロキシとして機能します。これについては、ニースの記事を参照してください(- google cloud NATゲートウェイ
  2. コンテナクラスタに静的IPを割り当てますVMインスタンス

それが役に立てば幸い!

6
Michele Orsi

新しいノードごとに、事前定義されたプールからIPアドレスを割り当てるポッドであるkubeipを使用できます。

0
Marcin Bilski