共用方式為


執行 SQL Server 巨量數據叢集的離線部署

Important

MICROSOFT SQL Server 2019 巨量數據叢集已淘汰。 SQL Server 2019 巨量數據叢集的支援已於 2025 年 2 月 28 日結束。 如需詳細資訊,請參閱 Microsoft SQL Server 平臺上的公告部落格文章和巨量數據選項。

本文說明如何執行 SQL Server 2019 巨量數據叢集的離線部署。 巨量數據叢集必須能夠存取用來提取容器映像的 Docker 存放庫。 離線安裝是指將必要的映像檔放入私人 Docker 存放庫的安裝方式。 然後,該私人存放庫會作為新部署的映像來源。

Prerequisites

Warning

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

將映像載入私人存放庫

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

Tip

下列步驟說明此程式。 不過,若要簡化工作,您可以使用 自動化腳本 ,而不是手動執行這些命令。

  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>
    

Warning

一旦巨量數據叢集映射推送至您的私人存放庫,請勿修改它們。 使用修改過的映像執行部署會導致不支援的巨量數據叢集設定。

巨量數據叢集容器映像

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

  • 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

Automated script

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

Note

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 的壓縮檔:

    Operating system Download
    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 offline

  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 環境變數中指定它們。

Next steps

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