#sql-server #kubernetes #minikube
Вопрос:
я пытаюсь локально протестировать некоторые микросервисы .NET Core с помощью Minikube. У меня есть 2 микросервиса, которые взаимодействуют друг с другом и с контейнером mssql с помощью ClusterIP. Все работает нормально, но я не могу напрямую подключиться к mssql из среды SQL Management Studio.
Здесь развертывание 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».
Есть какие-нибудь идеи о том, как я могу получить доступ к нему извне?
Спасибо
Ответ №1:
Существует другой способ доступа к вашему приложению из внешнего мира. Если вы используете службу LoadBalancer
типов, вы можете выполнить следующие действия для доступа к вашему приложению извне(только для мини-куба).:
- Выполните приведенную ниже команду в другом терминале:
minikube tunnel
- Получите услуги
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
- откройте в своем браузере (убедитесь, что прокси-сервер не установлен)
http://REPLACE_WITH_EXTERNAL_IP:1443
Вы также можете использовать механизм переадресации портов для доступа к вашему приложению, например:
kubectl port-forward service/<your service> 1443:1443
Ссылка: https://minikube.sigs.k8s.io/docs/handbook/accessing/
Комментарии:
1. Привет @user1477747 Помог ли вам этот ответ?