執行 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
- 任何支援的 Linux 發行版本或適用於 Mac/Windows 的 Docker 上的 Docker 引擎。 根據 SQL Server 巨量資料叢集版本資訊上經測試的組態來驗證引擎版本。如需詳細資訊,請參閱安裝 Docker。
警告
必須在部署設定檔 control.json 檔案中將參數 imagePullPolicy
設定為 "Always"
。
將映像載入私人存放庫
下列步驟描述如何從 Microsoft 存放庫提取巨量資料叢集容器映像,然後將其推送至您的私人存放庫。
提示
下列步驟說明此程序。 不過,若要簡化工作,您可以使用自動化的指令碼來取代以手動執行這些命令。
重複下列命令以提取巨量資料叢集容器映像。 將
<SOURCE_IMAGE_NAME>
取代為每個映像名稱。 將<SOURCE_DOCKER_TAG>
取代為巨量資料叢集版本的標籤,例如 2019-CU12-ubuntu-20.04。docker pull mcr.microsoft.com/mssql/bdc/<SOURCE_IMAGE_NAME>:<SOURCE_DOCKER_TAG>
登入目標私人 Docker 登錄。
docker login <TARGET_DOCKER_REGISTRY> -u <TARGET_DOCKER_USERNAME> -p <TARGET_DOCKER_PASSWORD>
使用下列命令,為每個映像標記本機映像:
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>
將本機映像推送至私人 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 文件。
從 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"
然後,使用下列其中一項命令來執行指令碼:
Windows:
python push-bdc-images-to-custom-private-repo.py
Linux:
sudo python push-bdc-images-to-custom-private-repo.py
遵循提示輸入 Microsoft 存放庫和您的私人存放庫資訊。 指令碼完成之後,所有必要映像都應該位於您的私人存放庫中。
請遵循這裡的指示,以了解如何自訂
control.json
部署設定檔來使用您的容器登錄和存放庫。 請注意,您必須在部署前設定DOCKER_USERNAME
和DOCKER_PASSWORD
環境變數,以允許存取您的私人存放庫。
離線安裝工具
巨量資料叢集部署需要幾項工具,包括 Python、Azure Data CLI (azdata
) 和 kubectl。 遵循下列步驟,在離線伺服器上安裝這些工具。
離線安裝 python
在能存取網際網路的電腦上,下載下列其中一個包含 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 將壓縮檔案複製到目標機器,並將其解壓縮至您選擇的資料夾。
(僅適用於 Windows) 在該資料夾中執行
installLocalPythonPackages.bat
,並將相同資料夾的完整路徑傳遞為參數。installLocalPythonPackages.bat "C:\python-3.6.6-win-x64-0.0.1-offline\0.0.1"
離線安裝 azdata
在能存取網際網路並具有 Python 的電腦上執行下列命令,將所有 Azure Data CLI (
azdata
) 封裝下載至目前的資料夾。pip download -r https://aka.ms/azdata
將下載的套件和
requirements.txt
檔案複製到目標電腦。在目標電腦上執行下列命令,並指定您將先前檔案複製到其中的資料夾。
pip install --no-index --find-links <path-to-packages> -r <path-to-requirements.txt>
離線安裝 kubectl
若要將 kubectl 安裝至離線電腦,請遵循下列步驟。
使用 Curl 將 kubectl 下載至您選擇的資料夾。 如需詳細資訊,請參閱使用 Curl 安裝 kubectl 二進位。
將資料夾複製到目標電腦。
從私人存放庫部署
若要從私人存放庫部署,請使用部署指南中所述的步驟,但使用可指定您私人 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_USERNAME
和 DOCKER_PASSWORD
環境變數中指定。
後續步驟
如需巨量資料叢集部署的詳細資訊,請參閱如何在 Kubernetes 上部署 SQL Server 巨量資料叢集。