首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从EKS Pod读取RDS实例?

如何从EKS Pod读取RDS实例?
EN

Stack Overflow用户
提问于 2020-12-22 12:39:27
回答 2查看 1.3K关注 0票数 1

目标

我的目标是从AWS EKS集群中运行的吊舱连接到RDS (Postgres)数据库。我使用Terraform来提供服务,但不一定要寻找Terraform代码解决方案。

我试过的

我已经创建了数据库(减少了密码、username...etc等设置)。像这样:

代码语言:javascript
运行
复制
resource "aws_db_instance" "rds-service" {
  name                  = "serviceDB"
  engine                = "postgres"
  db_subnet_group_name  = aws_db_subnet_group.service_subnet_group.name
  }

然后创建一个安全组,以允许通信量。

代码语言:javascript
运行
复制
resource "aws_security_group" "db" {
  name   = "service-rds-access"
  vpc_id = module.vpc.vpc_id

  ingress {
    description = "Postgres from VPC"
    from_port   = 5432
    to_port     = 5432
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

它使用了我创建的子网组(注意到RDS只部署在私有子网上,并且我使用的子网是子网的子集,用于在EKS上部署服务)。

代码语言:javascript
运行
复制
resource "aws_db_subnet_group" "service_subnet_group" {
  name       = "service-subnet-group"
  subnet_ids = [module.vpc.subnet_a_private_id, module.vpc.subnet_b_private_id]
}

什么不起作用

在尝试从Pod连接时,我无法到达RDS。我还尝试过将一个shell放入荚中,并尝试手动连接到RDS实例,如下所示:

运行psql --versionpsql (PostgreSQL) 11.9,然后当我试图通过psql进行身份验证时,如下所示:

代码语言:javascript
运行
复制
psql --host=$HOST_NAME --port=5432 --username=$USER_NAME --password --dbname=postgres

我有(编辑是我的):

代码语言:javascript
运行
复制
psql: could not connect to server: Connection timed out
    Is the server running on host "<hostname>.amazonaws.com" <IP> and accepting
    TCP/IP connections on port 5432?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-22 13:34:22

您可以使用下列选项查找根本原因;

  1. 使用VPC可达性分析仪:使用源类型、网络接口和源创建和分析路径,作为部署豆荚的EC2/节点的网络接口Id。此外,选择目标类型作为网络接口,选择目标作为RDS DB实例的网络接口Id。将目标端口设置为5432,保持协议为TCP。然后执行路径分析。如果您有多个用于荚的EC2/节点,我假设这些EC2/节点具有相同的设置。

注*:完成此路径分析只需几分钟。

  1. 如果启用了VPC流日志,则可以跟踪vpc流日志以检查哪些aws资源拒绝网络流量。有关VPC流日志的信息,请参考AWS的文档。

此外,还可以查看AWS的EC2网络接口和RDS实例的VPC流量日志。

票数 1
EN

Stack Overflow用户

发布于 2020-12-22 15:14:12

由于阿米德的提示,我在调试这个问题上有了更多的可见性。我错过了将我创建的vpc_security_group_ids附加到RDS资源。因此,添加vpc_security_group_ids = [aws_security_group.db.id]为我解决了这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65408905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档