我有一个运行在物理服务器 A(内网 IP 192.168.200.10)上的 Kubernetes 集群(K8s)和一个运行在另一台物理服务器 B(内网 IP 192.168.200.20)上的 PostgreSQL 数据库。我在 K8s 中运行的 Java 应用容器(pod)如何能够连接到服务器 B 中的 PostgreSQL 数据库?
操作系统:Ubuntu v16.04 Docker 18.09.7 Kubernetes v1.15.4 Calico v3.8.2 Pod 基础镜像:openjdk:8-jre-alpine
我已尝试按照此示例创建服务和端点
kind: Service
apiVersion: v1
metadata:
name: external-postgres
spec:
ports:
- port: 5432
targetPort: 5432
---
kind: Endpoints
apiVersion: v1
metadata:
name: external-postgres
subsets:
- addresses:
- ip: 192.168.200.20
ports:
- port: 5432
并且我的 JDBC 连接字符串为: jdbc:postgresql://external-postgres/MY_APPDB ,但它不起作用。pod 无法使用所述内部 IP 或 ping external-postgres 服务名称 ping 服务器 B 或 telnet 数据库。我不希望使用“hostNetwork:true”或通过公共 IP 连接服务器 B。
非常感谢任何建议。谢谢。