【发布时间】:2019-10-28 06:59:09
【问题描述】:
我需要知道如何将我的 Kubernetes 集群连接到在 Kubernetes 集群外部的 docker 映像中运行的外部 SQL Server 数据库。
我的集群中目前有两个 pod 正在运行,每个 pod 中都有一个从 asp.net 核心应用程序创建的不同图像。有一个完全独立的(在 Kubernetes 之外,但在我的机器 localhost,1433 上本地运行)托管 SQL Server 数据库的 docker 映像。我需要 Kubernetes pod 中的应用程序能够访问和操作该数据库。我已经尝试创建一个 YAML 文件并配置不同的端口,但我不知道如何让它工作,或者如何在设置后测试它是否真的工作。我需要确切的步骤/命令来创建能够将连接从集群中的图像路由到数据库并返回的服务。
-
Docker SQL Server 创建(提升的 powershell/docker 桌面):
docker pull mcr.microsoft.com/mssql/server:2017-latest 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 -
definitions.yaml
#Pods in the cluster apiVersion: v1 kind: Pod metadata: name: pod-1 labels: app: podnet type: module spec: containers: - name: container1 image: username/image1 --- apiVersion: v1 kind: Pod metadata: name: pod-2 labels: app: podnet type: module spec: containers: - name: container2 image: username/image2 --- #Service created in an attempt to contact external SQL Server DB apiVersion: v1 kind: Service metadata: name: ext-sql-service spec: ports: - port: 1433 targetPort: 1433 type: ClusterIP --- apiVersion: v1 kind: Endpoints metadata: name: ext-sql-service subsets: - addresses: - ip: (Docker IP for DB Instance) ports: - port: 1433
理想情况下,我希望我的 kubernetes 集群中的应用程序能够操作我已经设置的 SQL Server(在集群外部但在我的机器上本地运行)。
【问题讨论】:
-
你能从本地机器上的 sql management studio 连接到 dockered mssql 服务器吗?容器需要在同一个网络上才能看到彼此。
-
@ChetanRanpariya 是的,我可以在 sql server mgmt studio 中连接到它服务器名称:localhost,1433。这不意味着它们在同一个网络上......因为数据库是一个 docker图片?我需要确切的说明才能完成这项工作,我缺少什么?
标签: sql-server powershell docker kubernetes