執行 SQL Server 巨量資料叢集的離線部署

重要

Microsoft SQL Server 2019 巨量資料叢集附加元件將會淘汰。 SQL Server 2019 巨量資料叢集的支援將於 2025 年 2 月 28 日結束。 平台上將完全支援含軟體保證 SQL Server 2019 的所有現有使用者,而且軟體將會持續透過 SQL Server 累積更新來維護,直到該時間為止。 如需詳細資訊,請參閱公告部落格文章Microsoft SQL Server 平台上的巨量資料選項

本文描述如何執行 SQL Server 2019 巨量資料叢集的離線部署。 巨量資料叢集必須能夠存取 Docker 存放庫以從中提取容器映像。 離線安裝是將所需映像放入私人 Docker 存放庫的一種安裝方式。 該私人存放庫接著會用作新部署的映像來源。

Prerequisites

警告

必須在部署設定檔 control.json 檔案中將參數 imagePullPolicy 設定為 "Always"

將映像載入私人存放庫

下列步驟描述如何從 Microsoft 存放庫提取巨量資料叢集容器映像,然後將其推送至您的私人存放庫。

提示

下列步驟說明此程序。 不過,若要簡化工作,您可以使用自動化的指令碼來取代以手動執行這些命令。

  1. 重複下列命令以提取巨量資料叢集容器映像。 將 <SOURCE_IMAGE_NAME> 取代為每個映像名稱。 將 <SOURCE_DOCKER_TAG> 取代為巨量資料叢集版本的標籤,例如 2019-CU12-ubuntu-20.04

    docker pull mcr.microsoft.com/mssql/bdc/<SOURCE_IMAGE_NAME>:<SOURCE_DOCKER_TAG>
    
  2. 登入目標私人 Docker 登錄。

    docker login <TARGET_DOCKER_REGISTRY> -u <TARGET_DOCKER_USERNAME> -p <TARGET_DOCKER_PASSWORD>
    
  3. 使用下列命令,為每個映像標記本機映像:

    docker tag mcr.microsoft.com/mssql/bdc/<SOURCE_IMAGE_NAME>:<SOURCE_DOCKER_TAG> <TARGET_DOCKER_REGISTRY>/<TARGET_DOCKER_REPOSITORY>/<SOURCE_IMAGE_NAME>:<TARGET_DOCKER_TAG>
    
  4. 將本機映像推送至私人 Docker 存放庫:

    docker push <TARGET_DOCKER_REGISTRY>/<TARGET_DOCKER_REPOSITORY>/<SOURCE_IMAGE_NAME>:<TARGET_DOCKER_TAG>
    

警告

當將巨量資料叢集映像推送至私人存放庫之後,請勿修改這些映像。 使用修改過映像來執行部署將導致不支援的巨量資料叢集設定。

巨量資料叢集容器映像

離線安裝需要下列巨量資料叢集容器映像:

  • mssql-app-service-proxy
  • mssql-control-watchdog
  • mssql-controller
  • mssql-dns
  • mssql-hadoop
  • mssql-mleap-serving-runtime
  • mssql-mlserver-py-runtime
  • mssql-mlserver-r-runtime
  • mssql-monitor-collectd
  • mssql-monitor-elasticsearch
  • mssql-monitor-fluentbit
  • mssql-monitor-grafana
  • mssql-monitor-influxdb
  • mssql-monitor-kibana
  • mssql-monitor-telegraf
  • mssql-security-knox
  • mssql-security-support
  • mssql-server-controller
  • mssql-server-data
  • mssql-ha-operator
  • mssql-ha-supervisor
  • mssql-service-proxy
  • mssql-ssis-app-runtime

自動化指令碼

您可以使用自動化的 Python 指令碼來自動提取所有必要容器映像,並將其推送至私人存放庫。

注意

Python 是使用指令碼的必要條件。 如需如何安裝 Python 的詳細資訊,請參閱 Python 文件

  1. 從 Bash 或 PowerShell 下載包含 Curl 的指令碼:

    curl -o push-bdc-images-to-custom-private-repo.py "https://raw.githubusercontent.com/Microsoft/sql-server-samples/master/samples/features/sql-big-data-cluster/deployment/offline/push-bdc-images-to-custom-private-repo.py"
    
  2. 然後,使用下列其中一項命令來執行指令碼:

    Windows:

    python push-bdc-images-to-custom-private-repo.py
    

    Linux:

    sudo python push-bdc-images-to-custom-private-repo.py
    
  3. 遵循提示輸入 Microsoft 存放庫和您的私人存放庫資訊。 指令碼完成之後,所有必要映像都應該位於您的私人存放庫中。

  4. 請遵循這裡的指示,以了解如何自訂 control.json 部署設定檔來使用您的容器登錄和存放庫。 請注意,您必須在部署前設定 DOCKER_USERNAMEDOCKER_PASSWORD 環境變數,以允許存取您的私人存放庫。

離線安裝工具

巨量資料叢集部署需要幾項工具,包括 Python、Azure Data CLI (azdata) 和 kubectl。 遵循下列步驟,在離線伺服器上安裝這些工具。

離線安裝 python

  1. 在能存取網際網路的電腦上,下載下列其中一個包含 Python 的壓縮檔案:

    作業系統 下載
    Windows https://go.microsoft.com/fwlink/?linkid=2074021
    Linux https://go.microsoft.com/fwlink/?linkid=2065975
    OSX https://go.microsoft.com/fwlink/?linkid=2065976
  2. 將壓縮檔案複製到目標機器,並將其解壓縮至您選擇的資料夾。

  3. (僅適用於 Windows) 在該資料夾中執行 installLocalPythonPackages.bat,並將相同資料夾的完整路徑傳遞為參數。

    installLocalPythonPackages.bat "C:\python-3.6.6-win-x64-0.0.1-offline\0.0.1"
    

離線安裝 azdata

  1. 在能存取網際網路並具有 Python 的電腦上執行下列命令,將所有 Azure Data CLI (azdata) 封裝下載至目前的資料夾。

    pip download -r https://aka.ms/azdata
    
  2. 將下載的套件和 requirements.txt 檔案複製到目標電腦。

  3. 在目標電腦上執行下列命令,並指定您將先前檔案複製到其中的資料夾。

    pip install --no-index --find-links <path-to-packages> -r <path-to-requirements.txt>
    

離線安裝 kubectl

若要將 kubectl 安裝至離線電腦,請遵循下列步驟。

  1. 使用 Curlkubectl 下載至您選擇的資料夾。 如需詳細資訊,請參閱使用 Curl 安裝 kubectl 二進位

  2. 將資料夾複製到目標電腦。

從私人存放庫部署

若要從私人存放庫部署,請使用部署指南中所述的步驟,但使用可指定您私人 Docker 存放庫資訊的自訂部署設定檔。 下列 Azure Data CLI (azdata) 命令會示範如何在名為 control.json 的自訂部署設定檔中變更 Docker 設定:

azdata bdc config replace --config-file custom/control.json --json-values "$.spec.docker.repository=<your-docker-repository>"
azdata bdc config replace --config-file custom/control.json --json-values "$.spec.docker.registry=<your-docker-registry>"
azdata bdc config replace --config-file custom/control.json --json-values "$.spec.docker.imageTag=<your-docker-image-tag>"

部署會提示您提供 Docker 使用者名稱和密碼,或您也可以在 DOCKER_USERNAMEDOCKER_PASSWORD 環境變數中指定。

後續步驟

如需巨量資料叢集部署的詳細資訊,請參閱如何在 Kubernetes 上部署 SQL Server 巨量資料叢集