我部署的Spring引导应用程序尝试从Kubernetes Pod连接到外部SQL Server数据库。但是每次失败并显示错误
初始化池失败:与主机<>的TCP / IP连接,端口1443失败。
错误:“连接超时:没有更多信息。
验证连接属性。确保主机上正在运行SQL Server实例并在端口上接受TCP / IP连接。确保与端口的TCP连接没有被防火墙阻止。
我尝试执行到Pod中并成功ping数据库服务器而没有任何问题
以下是我尝试过的解决方案:
创建了服务和端点,并在配置文件中提供了DB IP,试图在Pod中启动应用程序
尝试在配置中使用Endpoint的内部IP代替DB IP,以查看内部IP已解析为DB IP
但是这两种情况都给出了相同的结果。以下是我用于创建服务和端点的Yaml。
---
apiVersion: v1
kind: Service
metadata:
name: mssql
namespace: cattle
spec:
type: ClusterIP
ports:
- port: 1433
---
apiVersion: v1
kind: Endpoints
metadata:
name: mssql
namespace: cattle
subsets:
- addresses:
- ip: <<DB IP>>
ports:
- port: 1433
如果我在此设置中有错或遗漏,请告诉我。
K8s设置的其他信息
答案 0 :(得分:1)
通过使用IP地址更新部署Yaml解决了该问题。由于所有服务器都在同一子网中,因此我不需要创建服务或端点来访问数据库。感谢您在帖子中的所有投入
答案 1 :(得分:0)
在这种情况下,无头服务非常有用。您无需定义端点即可将流量重定向到该ip。
kind: "Service"
apiVersion: "v1"
metadata:
namespace: "your-namespace"
name: "ftp"
spec:
type: ExternalName
externalName: your-ip