我想在AWS上安装kubernetes。为此,我根据AWS官方教程创建了一个包含3个节点(t2.small)的EKS集群。然后我想运行一个pod,其中包含一些与Postgres(不同VPC中的RDS)通信的应用程序。
但不幸的是,该应用程序没有连接到数据库。
我所拥有的:
-
-
RDS(Postgres)拥有自己的专有网络(CIDR:172.30.0.0/16)
-
从RDS VPC启动到EKS VPC的对等连接
-
-
更新RDS的路由表:添加目标为192.168.0.0/16的路由和步骤#3中的目标对等连接。
-
完成所有这些步骤后,我执行kubectl命令:
kubectl exec -it my-pod-app-6vkgm nslookup rds-vpc.unique_id.us-east-1.rds.amazonaws.com
nslookup: can't resolve '(null)': Name does not resolve
Name: rds-vpc.unique_id.us-east-1.rds.amazonaws.com
Address 1: 52.0.109.113 ec2-52-0-109-113.compute-1.amazonaws.com
然后我连接到3个节点中的一个并执行一个命令:
getent hosts rds-vpc.unique_id.us-east-1.rds.amazonaws.com
52.0.109.113 ec2-52-0-109-113.compute-1.amazonaws.com rds-vpc.unique_id.us-east-1.rds.amazonaws.com
更新:
Service
:
apiVersion: v1
kind: Service
metadata:
name: postgres-service
spec:
type: ExternalName
externalName: rds-vpc.unique_id.us-east-1.rds.amazonaws.com
所以我在EKS中创建了这个服务,然后尝试引用
postgres-service
作为数据库URL,而不是直接的RDS主机地址。
此修复程序不起作用:(