gpt4 book ai didi

java - 无法从 kubernetes pod 内部连接到外部数据库

转载 作者:行者123 更新时间:2023-11-29 15:36:26 27 4
gpt4 key购买 nike

我正在尝试将 kubernetes pod 内的 spring-boot api 连接到外部数据库(一台单独的机器,但在本地网络内),但是在运行时,我收到 SQLNonTransientConnectionException,UknownHostException:mysql-svc,api 无法连接到数据库,但每当我使用 kubectl exec -it 从 pod 内部 ping 数据库地址时,我都可以成功 ping 它,有人遇到过与我相同的错误吗?

这是我的 application.properties 连接 uri 和 kubernetes 对象:

spring.datasource.url=jdbc:mysql://mysql-svc/test?autoReconnect=true

---
apiVersion: v1
kind: Service
metadata:
name: mysql-svc
spec:
type: ClusterIP
ports:
- port: 3306
targetPort: 3306
---
apiVersion: v1
kind: Endpoints
metadata:
name: mysql-svc
subsets:
- addresses:
- ip: 10.0.123.28
ports:
- port: 3306
name: mysql-svc

最佳答案

经过几个小时的挖掘和重新配置,我终于让它工作了,感谢 kubernetes 组的 Xenwar 指出了 externalIP 属性,事实证明我需要将我的应用程序指向外部 IP,在本例中是数据库,这里是服务对象:

apiVersion: v1
kind: Service
metadata:
name: db-con
spec:
selector:
app: api2
ports:
- name: http
protocol: TCP
port: 3306
targetPort: 3306
externalIPs:
- 10.0.123.28

关于java - 无法从 kubernetes pod 内部连接到外部数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58205141/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com