如何从 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,然后按照以下步骤操作。
- 导航到 VPC 控制台:https://console.aws.amazon.com/vpc/
- Select 对等连接并单击创建对等连接。
- 将详细信息配置为 - select EKS VPC 作为请求者,RDS VPC 作为接受者
- 点击创建对等连接
- 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
假设我有一个来自 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,然后按照以下步骤操作。
- 导航到 VPC 控制台:https://console.aws.amazon.com/vpc/
- Select 对等连接并单击创建对等连接。
- 将详细信息配置为 - select EKS VPC 作为请求者,RDS VPC 作为接受者
- 点击创建对等连接
- 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