You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在K8s集群中通过Service域名连接Postgres Pod并保留指定端口

配置步骤

1. 配置Postgres对应的K8s Service

你需要先保证Postgres的Service端口配置符合要求,以下是参考配置示例:

apiVersion: v1
kind: Service
metadata:
  name: postgis-db # 自定义Service名称,后续域名会用到这个名称
  namespace: default # 替换成你Postgres实际部署的命名空间
spec:
  type: ClusterIP # 集群内访问用ClusterIP即可,若需要外部同时访问可改为NodePort/LoadBalancer
  ports:
    - port: 6006 # 集群内访问的端口,直接保留你要求的6006即可
      targetPort: 5432 # 替换成Postgres容器实际监听的端口,默认值为5432
      # 如果你需要外部也能通过6006访问,且Service类型为NodePort,可补充以下配置
      # nodePort: 6006 # 注意需提前调整kube-apiserver的--service-node-port-range参数包含6006,K8s默认端口范围为30000-32767
  selector:
    app: postgres # 替换成你Postgres Pod对应的标签,确保Service能正确匹配到后端Pod

2. 修改Postgres连接地址

将原来连接地址中的IP替换为K8s Service的内部域名即可,域名通用格式为[Service名称].[命名空间].svc.cluster.local。
示例:如果你上述Service名称为postgis-db,部署在default命名空间,替换后的连接地址为:

postgis://postgres:postgres@postgis-db.default.svc.cluster.local:6006/orderrs

注意事项

  • 只有和Postgres Service处于同一K8s集群内的微服务,才能解析到该内部域名
  • 若微服务和Postgres部署在同一个命名空间,可简化域名直接使用Service名称,例如postgis://postgres:postgres@postgis-db:6006/orderrs
  • 部署后可在微服务所在Pod中执行nslookup postgis-db.default.svc.cluster.local验证域名是否能正常解析

内容的提问来源于stack exchange,提问作者Denn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:45:03