如何从 EKS pods 连接到 AWS RDS (mysql)

How to connect to AWS RDS (mysql) from EKS pods

假设我有一个来自 us-east-1 区域的 pod 试图访问 us-east-2 中的 MySQL 服务器,现在当我正在做 telnet aws-mysql-server 3306 时我超时了.

问题:如何从 EKS pods 连接到 AWS RDS (mysql)?

Separate Region 表示您正在使用单独的 VPC。您可以创建 VPC 对等以在 RDS 和 EKS 之间进行通信。首先看一下 VPC 对等 documentation,然后按照以下步骤操作。

  1. 导航到 VPC 控制台:https://console.aws.amazon.com/vpc/
  2. Select 对等连接并单击创建对等连接。
  3. 将详细信息配置为 - select EKS VPC 作为请求者,RDS VPC 作为接受者
  4. 点击创建对等连接
  5. Select 您刚刚创建的对等连接。单击操作 => 接受。再次,在确认对话框中,单击“是,接受”。

不要忘记导出 VPC 对等连接 ID

更新EKS集群VPC的路由table

aws ec2 create-route --route-table-id ${EKS_ROUTE_TABLE_ID} --destination-cidr-block xxx.xxx.0.0/24 --vpc-peering-connection-id ${VPC_PEERING_CONNECTION_ID} 

更新 RDS VPC 的路由 table

aws ec2 create-route --route-table-id ${RDS_ROUTE_TABLE_ID} --destination-cidr-block xxx.xxx.0.0/16 --vpc-peering-connection-id ${VPC_PEERING_CONNECTION_ID}

更新 RDS 实例的安全组

aws ec2 authorize-security-group-ingress --group-id ${RDS_VPC_SECURITY_GROUP_ID} --protocol tcp --port 3306 --cidr xxx.xxx.0.0/16