dotnet core pod in Kubernetes connect to local SQL Server

9/28/2018

I have a dotnet core pod in Kubernetes(minikube) that need to access to local SQL Server(Testing Server). it work in the container but when i put it in to pod. it can't fine sql server on my machine

but i can ping from pod to my SQL Server

here is the error from log

 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# 

my Connection String in Container

"DefaultConnection": "Server=mssql-s; Database=ArcadiaAuthenServiceDB; MultipleActiveResultSets=true;User Id=pbts;Password=pbts"

I try to Created Service End-point in Kubernetes but no luck.

Thank you.

EDIT Here The Service.yml File

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 
     –--

EDIT I check that SQL Server is Listen to 1433 as well

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

Is there anything i can do to solve this problem?

-- Peeradis Sa-nguanTrakul
.net-core
kubernetes
minikube
sql-server

1 Answer

10/3/2018

Thank you for all your reply. Today i found solution. it not about k8s but it about Firewall Setting. I add Inbound rule to allow port 1433. And That it

-- Peeradis Sa-nguanTrakul
Source: StackOverflow