我正在部署一个简单的 Web 应用程序。我将其分为 3 个 pod:前端、后端和 postgres db。我成功地将前端和后端部署到 google kubernetes 服务,并且它们按预期工作。但对于我的 postgresql 数据库服务器,我使用了以下 yaml。 postgres 镜像是我使用 dockerhub 中的标准 postgres 镜像创建的。我创建了一些表,插入了一些数据并推送到 DockerHub。我的后端无法连接到我的数据库。我想我可能需要更改我的 Java 连接代码。不确定是否使用 localhost。它在我本地的 Eclipse Jee 和 Tomcat 上运行没有任何问题。
//my pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: postgres-app-pod
labels:
name: postgres-app-pod
app: demo-geo-app
spec:
containers:
- name: postgres
image: myrepo/example:v1
ports:
- containerPort: 5432
//my service.yaml
apiVersion: v1
kind: Service
metadata:
name: db
labels:
name: db-service
app: demo-geo-app
spec:
ports:
- port: 5432
targetPort: 5432
selector:
name: postgres-pod
app: demo-geo-app
//from my java backend, I access my db server this way.
String dbURL = "jdbc:postgresql://localhost:5432/Location?user=postgres&password=mysecretpassword";
最佳答案
有两个问题需要解决。
- 服务选择器键:值应与 Pod 标签匹配
- 将 localhost 替换为 postgresql 服务 DNS
关于java - 如何在 google kubernetes 中访问 postgresql pod/服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57038977/