【问题标题】:Kubernetes: Have no access from EKS pod to RDS PostgresKubernetes:无法从 EKS pod 访问 RDS Postgres
【发布时间】:2019-05-03 10:58:59
【问题描述】:

我正在尝试在 AWS 上设置 kubernetes。为此,我根据官方 AWS 教程创建了一个具有 3 个节点 (t2.small) 的 EKS 集群。然后我想用一些与 Postgres(不同 VPC 中的 RDS)通信的应用程序运行一个 pod。

但不幸的是,该应用没有连接到数据库。

我有什么:

  1. 拥有自己的 VPC (CIDR: 192.168.0.0/16) 的 EKS 集群
  2. 具有自己的 VPC(CIDR:172.30.0.0/16)的 RDS (Postgres)
  3. 从 RDS VPC 启动到 EKS VPC 的对等连接
  4. 更新了 EKS 集群的 3 个公共子网的路由表:目标为 172.30.0.0/16 和目标的路由 - 添加了步骤 #3 中的对等连接。
  5. RDS 的路由表已更新:目标为 192.168.0.0/16 和目标的路由 - 添加了来自第 3 步的对等连接。
  6. 更新 RDS 安全组,添加新入站规则:允许来自 192.168.0.0/16 的所有流量

完成所有这些步骤后,我执行 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

为了从 pod 访问 RDS,我在 EKS 设置中遗漏了什么?

更新:

我尝试通过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 URL 而不是直接的 RDS 主机地址。

此修复不起作用:(

【问题讨论】:

  • 您是否尝试在对等连接中启用“dns 传播”?看起来您没有获得内部可路由的 dns?
  • @donkeyx 这是绝妙的建议!这对我有帮助:)所以请随意添加此评论作为对此问题的单独答案,我会投票并标记为正确的!
  • @Alex Fruzenshtein,您是否通过启动 DNS 传播功能解决了该问题?
  • @mk_sta 是的。在我的情况下,来自 k8s 集群的 pod 无法与 RDS 通信,只是因为未启用对等连接中的“dns 传播”

标签: amazon-web-services kubernetes amazon-eks


【解决方案1】:

您是否尝试在对等连接中启用“dns 传播”?看起来您没有获得内部可路由的 dns。您可以通过进入对等连接的设置并选中 dns 传播框来启用它。我通常对我控制的所有对等连接都执行此操作。

【讨论】:

  • 似乎这个 DNS 选项在创建 PC 后可用。
【解决方案2】:

我提供的here 的答案实际上也可能适用于您的情况。

这是关于使用Services without selectors。还要查看ExternalName 服务。

【讨论】:

  • 感谢您的提示!我明天再看看什么时候能恢复正常上网!
  • ExternalService 对我不起作用。看起来我只是将原始数据库地址映射到 Kubernetes 服务抽象:(
猜你喜欢
  • 1970-01-01
  • 2023-04-07
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 2021-06-24
  • 2020-04-12
相关资源
最近更新 更多