我正试图在AWS上设置kubernetes。根据正式的AWS教程,我为此创建了一个带有3个节点(t2.小国)的EKS集群。然后我想运行一个与Postgres (不同VPC中的RDS)通信的应用程序。
但不幸的是,应用程序没有连接到数据库。
我所拥有的:
在执行了所有这些步骤之后,我执行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
然后,我连接到三个节点中的一个,并执行一个命令:
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
我在EKS设置中错过了什么才能从吊舱访问RDS?
更新:
我试图用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
引用为DB,而不是直接的RDS主机地址。
此修复不起作用:(
发布于 2018-12-04 14:28:41
您是否尝试过在对等连接中启用"dns传播“?看起来您没有得到内部可路由的dns。您可以通过进入对等连接的设置并选中用于dns传播的框来启用它。我通常这样做将所有的窥视连接,我控制。
发布于 2018-12-01 09:37:57
我提供的答案这里实际上也适用于您的情况。
它是关于使用没有选择器的服务。还可以查看ExternalName服务。
https://stackoverflow.com/questions/53571908
复制相似问题