Проблема может быть в том, что вы поставили услугу. ClusterIP позволяет вам подключаться между модулями внутри кластера.
Чтобы подключиться к внешнему сервису, вам просто нужно изменить определение вида сервиса на NodePort .
Попробуйте изменить определение сервиса:
#Service created in an attempt to contact external SQL Server DB
apiVersion: v1
kind: Service
metadata:
name: ext-sql-service
spec:
type: NodePort
ports:
- port: 1433
targetPort: 1433
и выполнить команду:
$ kubectl apply -f your_service_definition_file_name.yaml
Не забудьте выполнить эту команду в правильном пространстве имен, где настроено ваше развертывание.
Плохая практика - накладывать переменную среды на контейнер. И при «запуске Docker» передайте эту переменную среды VALUE в контейнер.
Конечно, в контексте выполнения команды docker
$ docker run -d -p 1433:1433 --name sql -v "c:/Temp/DockerShared:/host_mount" -e SA_PASSWORD="aPasswordPassword" -e ACCEPT_EULA=Y mcr.microsoft.com/mssql/server:2017-latest
Размещение видимого пароля в БД небезопасно. Используйте секреты Kubernetes.
Более подробную информацию вы можете найти здесь: kubernetes-secret .