无法用Minikube本地连接到sql server容器



我正在尝试在本地测试一些微服务。net Core with Minikube。我有两个微服务,它们相互通信,并通过clusterIP与一个带有mssql的容器通信。它工作得很好,但我不能从SQL管理工作室直接连接到mssql。

下面是mssql的部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mssql-deployment
spec:
replicas: 1
selector:
matchLabels:
app: mssql
template:
metadata:
labels:
app: mssql
spec:
containers:
- name: mssql
image: mcr.microsoft.com/mssql/server:2017-latest
ports:
- containerPort: 1433
env:
- name: MSSQL_PID
value: "Express"
- name: ACCEPT_EULA
value: "Y"
- name: SA_PASSWORD
valueFrom: 
secretKeyRef:
name: mssql
key: SA_PASSWORD
volumeMounts:
- mountPath: /var/opt/mssql/data
name: mssqldb
volumes:
- name: mssqldb
persistentVolumeClaim:
claimName: mssql-claim
---
apiVersion: v1
kind: Service
metadata: 
name: mssql-clusterip-service
spec:
type: ClusterIP
selector:
app: mssql
ports: 
- name: mssql
protocol: TCP
port: 1433
targetPort: 1433
---
apiVersion: v1
kind: Service
metadata: 
name: mssql-loadbalancer
spec:
type: LoadBalancer
selector:
app: mssql
ports: 
-  protocol: TCP
port: 1433
targetPort: 1433

我也尝试过NodePort,但我无法通过"localhost, 1433"访问它知道怎么从外部访问吗?

感谢

从外部世界访问应用程序有不同的方式。如果你使用LoadBalancer类型的服务,那么你可以执行以下步骤从外部访问你的应用程序(仅适用于minikube):

  1. 在不同的终端上运行以下命令:
minikube tunnel
  1. 获取服务
kubectl get svc

输出如下:

$ kubectl get svc
NAME                 TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
kubernetes           ClusterIP      10.96.0.1       <none>          443/TCP          20m
mssql-loadbalancer   LoadBalancer   10.102.149.78   10.102.149.78   1433:30373/TCP   16s
  1. 在浏览器中打开(确保没有代理设置)
http://REPLACE_WITH_EXTERNAL_IP:1443

你也可以使用端口转发机制来访问你的应用,如:

kubectl port-forward service/<your service> 1443:1443

裁判:https://minikube.sigs.k8s.io/docs/handbook/accessing/

我也看了Les jackson的教程)并且有同样的问题需要做:

minikube ip

以Admin角色在cmd中写入,您将获得minikube ip,之后:

kubectl get svc
NAME                      TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
mssql-clusterip-srv       ClusterIP      10.98.79.121     <none>        1433/TCP         46m
mssql-loadbalancer        LoadBalancer   10.110.176.240   <pending>     1433:32509/TCP   46m

这里你有你的loadBalancer服务,你需要使用外部端口连接到Sql Server(外部端口在我的情况下是32509,这篇文章将重定向到1433端口)

服务器名称将是:your_minikube_ip, loadBalancer_external_port

我希望它对你有用

相关内容

  • 没有找到相关文章

最新更新