微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql – 从AWS中的Kubernetes集群访问Postgres RDS

我的Kubernetes集群设置具有在AWS上的开发和测试环境中运行的n层Web应用程序.对于生产环境,选择了postgres RDS,以确保定期备份.在创建postgres RDS实例时,为db-subnet选择了kubernetes-vpc,以便在试运行期间保持网络简单.
此外,选择的安全组与kubernetes-minions相同.

以下是服务和端点yaml:

apiVersion: v1
kind: Service
Metadata: 
  labels: 
    name: pgsql-rds
  name: pgsql-rds
spec: 
  ports: 
    - port: 5432
      protocol: TCP
      targetPort: 5432

apiVersion: v1
kind: Endpoints
Metadata:
  name: pgsql-rds
subsets:
- addresses:
  - ip: 52.123.44.55
  ports:
  - port: 5432
    name: pgsql-rds
    protocol: TCP

创建Web应用程序服务和部署时,它无法连接到RDS实例.
日志如下:

java.sql.sqlException:分配连接时出错.原因:无法分配连接,因为:连接到pgsql-rds:5432拒绝.检查主机名和端口是否正确以及postmaster是否接受TCP / IP连接.

我错过了什么?任何解决问题的指针都表示赞赏.

解决方法

这与DNS解析有关.当您使用RDS dns名称INSIDE相同的VPC时,它将被解析为私有IP.当您在互联网或其他VPC上使用相同的DNS名称时,您将获得RDS实例的公共IP.

这是一个问题,因为除非您将RDS实例公开给公共Internet,否则从另一个VPC中无法使用负载平衡功能.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐