我在Kubernetes(minikube)中有一个dotnet核心Pod,需要访问本地SQL Server(测试服务器)。 它在容器中工作,但当我将其放入吊舱中时。它无法在我的计算机上运行sql服务器
但是我可以从Pod ping我的SQL Server
这是日志中的错误
An error occurred using the connection to database
> 'ArcadiaAuthenServiceDB' on server '192.168.2.68'.
> System.Data.SqlClient.SqlException (0x80131904): A network-related or
> instance-specific error occurred while establishing a connection to
> SQL Server. The server was not found or was not accessible. Verify
> that the instance name is correct and that SQL Server is configured to
> allow remote connections. (provider: TCP Provider, error: 40 - Could
> not open a connection to SQL Server)
ping
root@authenservice-dpm-57455f59cf-7rqvz:/app# ping 192.168.2.68
PING 192.168.2.68 (192.168.2.68) 56(84) bytes of data.
64 bytes from 192.168.2.68: icmp_seq=1 ttl=127 time=0.449 ms
64 bytes from 192.168.2.68: icmp_seq=2 ttl=127 time=0.361 ms
64 bytes from 192.168.2.68: icmp_seq=3 ttl=127 time=0.323 ms
64 bytes from 192.168.2.68: icmp_seq=4 ttl=127 time=0.342 ms
^C
--- 192.168.2.68 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3064ms
rtt min/avg/max/mdev = 0.323/0.368/0.449/0.053 ms
root@authenservice-dpm-57455f59cf-7rqvz:/app#
我在容器中的连接字符串
"DefaultConnection": "Server=mssql-s; Database=ArcadiaAuthenServiceDB; MultipleActiveResultSets=true;User Id=pbts;Password=pbts"
我尝试在Kubernetes中创建服务端点,但是没有运气。
谢谢。
编辑 这是Service.yml文件
apiVersion: v1
kind: Service
metadata:
name: mssql-s
namespace: default spec:
ports:
- port: 1433
---
apiVersion: v1
kind: Endpoints
metadata:
name: mssql-s
namespace: default subsets:
- addresses:
- ip: 192.168.2.68
ports:
- port: 1433
–--
编辑 我检查SQL Server是否也监听1433
PS C:\Windows\system32> netstat -aon | findstr 1433
TCP 0.0.0.0:1433 0.0.0.0:0 LISTENING 5028
TCP [::]:1433 [::]:0 LISTENING 5028
有什么我可以解决的问题吗?
答案 0 :(得分:1)
感谢您的所有答复。 今天我找到了解决方案。它与k8无关,而与防火墙设置有关。 我添加了入站规则以允许端口1433。并且