Share via


快速入門:使用 Helm 圖表將 SQL Server Linux 容器部署至 Kubernetes

適用於:SQL Server - Linux

本快速入門會逐步引導您使用 Helm 圖表,從 Windows 用戶端機器將 Linux 上的 SQL Server 容器部署至 Azure Kubernetes Service (AKS)。

AKS 是用來部署及管理容器叢集的受控 Kubernetes 服務。 Helm 是開放原始碼的封裝工具,可協助您安裝和管理 Kubernetes 應用程式的生命週期。

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,您可以建立免費帳戶

  • 建立 AKS 叢集

  • 下載並檢閱本快速入門的範例 Helm 圖表。 此範例圖表包含許多自訂 SQL Server 部署的設定選項。

安裝用戶端工具

在 Windows 用戶端機器上,您將需要下列工具。

  • 適用於 Windows 的 Azure CLI
  • 適用於 Windows 的 Helm

如果想要使用不同的用戶端作業系統,則必須選取該平台適用的套件。

使用 Az PowerShell 模組安裝 kubectl

您將使用 kubectl 與 Kubernetes 叢集互動。 如需詳細資訊,請參閱 az aks install-cli

若要安裝 kubectl,請從 Windows 命令提示字元執行下列命令:

az aks install-cli

提示

您可以將 kubectl 新增至本機 PATH 環境變數,如此就不需要每次都輸入完整路徑。

將 kubectl 連線至 AKS 叢集

  1. 您必須合併 AKS 叢集的內容,以便 kubectlhelm 命令在該 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 執行個體,例如 SQL Server Management Studio (SSMS)、Azure Data Studio 或 sqlcmd

例如,如果您使用 SSMS 連線至 SQL Server 執行個體,則可以使用下列設定:

  • 伺服器名稱:使用 mssql-latest-deploy 服務的 External-IP 位址。 在此範例中為 20.40.0.145
  • 認證:從下拉式清單中選取 [SQL Server 驗證]。
  • 登錄:使用 sa,這是系統管理員帳戶。
  • 密碼:sa 密碼符合您在 sa_password 設定選項中 (位於 Helm 圖表的 values.yaml 檔案中) 提供的值。

連線之後,您將能夠在物件總管中展開 SQL Server 執行個體。

Screenshot showing the Object Explorer connected to the database instance.

清除資源

如果您不打算繼續使用 AKS 叢集,請記得刪除您的叢集