Googleクラウド(GKE)でk8sクラスターを実行し、aws(RDS)でMySQLサーバーを実行します。ポッドは、特定のIPからの接続のみを許可するRDSに接続する必要があります。静的IPを持つように発信トラフィックを構成するにはどうすればよいですか?
ポッドから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 }}
私はいくつかの研究を行い、いくつかのことを発見しました。
私たちが探しているのは「出力IP」またはNAT-as-a-Serviceと呼ばれ、どちらもGKEではまだ利用できません。
いずれの場合でも、2つの異なるオプションがあります。
それが役に立てば幸い!
新しいノードごとに、事前定義されたプールからIPアドレスを割り当てるポッドであるkubeipを使用できます。