Postgresql 使用kubernetes群集作为路由器从Tableau访问Postgres主机

Postgresql 使用kubernetes群集作为路由器从Tableau访问Postgres主机,postgresql,kubernetes,tableau-api,Postgresql,Kubernetes,Tableau Api,情景: 表格应用 云端的树梢 Kubernetes在另一个云上运行基于Alpine image的应用程序(与Postgres不同的云) 我需要的是什么样的服务: 使用Kubernetes作为路由器从Tableau访问Postgres; 所以我需要从tableau向我的Kubernetes集群发送一个请求,我的Kubernetes集群需要将请求重定向到我的Postgres主机,Postgres必须回复到我的Kubernetes集群,然后我的Kubernetes集群必须从Postgres

情景:

  • 表格应用

  • 云端的树梢

  • Kubernetes在另一个云上运行基于Alpine image的应用程序(与Postgres不同的云)

我需要的是什么样的服务:

  • 使用Kubernetes作为路由器从Tableau访问Postgres; 所以我需要从tableau向我的Kubernetes集群发送一个请求,我的Kubernetes集群需要将请求重定向到我的Postgres主机,Postgres必须回复到我的Kubernetes集群,然后我的Kubernetes集群必须从Postgres向tableau发送de-answer
重要限制:

  • Tableau可以访问我的kubernetes群集,但不能直接访问我的Postgres主机

  • 我的kubernetes群集可以访问我的Postgres主机


下一步 现在,我可以使用Thomas answer,使用以下代码使其工作:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  ports:
    - port: 5432
      targetPort: 5432
      nodePort: 30004
---
apiVersion: v1
kind: Endpoints
metadata:
  name: my-service 
subsets:
  - addresses:
      - ip: **111.111.111.111** ** < need change this to hostname
    ports:
      - port: 5432



您可以通过创建不带选择器的服务类型对象,然后手动为此对象创建端点来实现这一点。服务需要通过
节点端口
负载平衡器
向外部公开类型:

apiVersion:v1 种类:服务 元数据: 名称:我的服务#服务的名称必须与端点的名称匹配 规格: 类型:节点端口 端口: -港口:80 目标港:80 节点端口:30007 服务不直接链接到播客。在端点之间有另一个对象。因此,您可以手动定义它们

apiVersion:v1 种类:端点 元数据: 名称:我的服务#te端点的名称必须与服务的名称匹配 子集: -地址: -ip:172.217.212.100#这是服务将向其转发连接的端点的ip。 端口: -港口:80 既然你要公开你的博士后,就必须采取某种安全措施来保证它的安全


更多阅读请访问。

谢谢,这解决了我的问题。太好了!你会考虑吗?我有另一个问题,如果你能检查它,请参阅我的版本。你可以使用类型将服务映射到外部DNS。但是如何?我需要创建第三个服务并与前一个绑定?
subsets:
  - addresses:
      - ip: mypostgres.com
    ports:
      - port: 5432