快速入门:使用 Helm 图表将 SQL Server Linux 容器部署到 Kubernetes

适用于:Linux 上的 SQL Server

本快速入门将引导你完成以下步骤:使用 Helm 图表将 Linux 上的 SQL Server 容器从 Windows 客户端计算机部署到 Azure Kubernetes 服务 (AKS)。

AKS 是用于部署和管理容器群集的托管 Kubernetes 服务。 Helm 是一种开放源打包工具,有助于安装和管理 Kubernetes 应用程序的生命周期。

先决条件

  • 一份 Azure 订阅。 如果没有 Azure 订阅,可以创建一个免费帐户

  • 创建 AKS 群集

  • 下载并查看本快速入门的示例 Helm 图表 。 此示例图表包含许多用于自定义 SQL Server 部署的配置选项。

安装客户端工具

在 Windows 客户机上,需要以下工具。

如果想要使用不同的客户端操作系统,则需要为该平台选择相应的包。

使用 Az PowerShell 模块安装 kubectl

使用 kubectl 与 Kubernetes 群集进行交互。 有关详细信息,请参阅 az aks install-cli

要安装 kubectl,请在 Windows 命令提示符下运行以下命令:

az aks install-cli

Tip

可以将 kubectl 添加到本地 环境变量,这样便不必每次都键入完整路径。

将 kubectl 连接到 AKS 群集

  1. 需要合并 AKS 群集的上下文,以便 kubectl 或 helm 命令在该特定 AKS 群集上运行。

    要合并,请运行连接到 AKS 群集一文中所述的命令:

    az aks get-credentials --resource-group <resourcegroupname> --name <aks clustername>
    

    应会看到以下输出,其中 <clustername> 是提供的群集,并且 <username> 是本地 Windows 用户帐户:

    Merged "<clustername>" as current context in C:\Users\<username>\.kube.config
    
  2. 通过运行 kubectl get nodes 确认合并成功。 输出应显示你的 AKS 群集中的节点。

    NAME                    STATUS   ROLES   AGE    VERSION
    <aks-node>-vmss000000   Ready    agent   141d   v1.16.13
    <aks-node>-vmss000001   Ready    agent   141d   v1.16.13
    

查看示例 Helm 图表

现在,可以通过 Helm 图表在 AKS 群集上部署 SQL Server。

本快速入门提供了示例“原样”示例“原样”Helm 图表。 此示例仅供参考。 请记住查看 readme 文件以了解符合配置要求的配置值。

如果您想要以 StatefulSet 模式部署 SQL Server(这是部署 SQL Server 的推荐模式),则可以改为查看基于 StatefulSet 的“按原样提供”的 Helm 图表部署示例

  1. 下载示例 Helm 图表

  2. 切换到下载示例图表的目录,并根据需要修改 values.yaml 文件。

将 SQL Server 部署到 AKS 群集

使用以下命令部署 SQL Server。 部署名称是可自定义的,因此可将 mssql-latest-deploy 更改为所需的任何内容。

helm install mssql-latest-deploy . --set ACCEPT_EULA.value=Y --set MSSQL_PID.value=Developer

在上面的示例中,图表及其文件位于当前目录中,用句点 (.) 表示。 如果需要,可以指定图表的路径。

如果成功,则将看到类似的输出:

NAME: mssql-latest-deploy
LAST DEPLOYED: Wed Apr 06 21:36:19 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1

验证 SQL Server 部署

部署到 Kubernetes 群集可能需要几分钟时间。 若要验证部署是否成功,请运行以下命令:

kubectl get all

如果成功,则将看到类似的输出:

NAME                                      READY   STATUS    RESTARTS   AGE
pod/mssql-latest-deploy-7f8c7f5bc-9grmg   1/1     Running   0          2m56s

NAME                          TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
service/kubernetes            ClusterIP      10.0.0.1       <none>        443/TCP          141d
service/mssql-latest-deploy   LoadBalancer   10.0.247.220   20.40.0.145   1433:30780/TCP   2m56s

NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/mssql-latest-deploy   1/1     1            1           2m56s

NAME                                            DESIRED   CURRENT   READY   AGE
replicaset.apps/mssql-latest-deploy-7f8c7f5bc   1         1         1       2m56s

连接到在 AKS 上运行的 SQL Server

可以使用任何熟悉的SQL Server客户端工具连接到SQL Server实例, 例如 sqlcmdSQL Server Management Studio (SSMS)MSSQL 扩展(适用于 Visual Studio Code)。

例如,如果使用 SSMS 连接到 SQL Server 实例,可以使用以下设置:

  • 服务器名称:mssql-latest-deploy 服务使用 External-IP 地址。 在此示例中,它是 20.40.0.145
  • 身份验证:从下拉列表中选择“SQL Server 身份验证”。
  • 登录:使用 ,这是系统管理员帐户sa
  • 密码:sa密码与您在 Helm Chart 的 values.yaml 文件中 MSSQL_SA_PASSWORD 配置选项里提供的值一致。

连接后,可以在对象资源管理器中展开 SQL Server 实例。

显示已连接到数据库实例的对象资源管理器的屏幕截图。

清理资源

如果不打算继续使用 AKS 群集,请记住删除群集