执行 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 存储库中。 然后,该专用存储库会用作新部署的映像源。
必备条件
- 任何受支持的 Linux 发行版上的 Docker 引擎或用于 Mac/Windows 的 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-service-proxy
- mssql-control-watchdog
- mssql-controller
- mssql-dns
- mssql-hadoop
- mssql-mleap-serving-runtime
- mssql-mlserver-r-runtime
- mssql-mlserver-r-runtime
- mssql-monitor-collectd
- mssql-monitor-elasticsearch
- mssql-monitor-fluentbit
- mssql-monitor-grafana
- mssql-monitor-influxdb
- mssql-monitor-grafana
- 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 文档。
使用 curl 从 Bash 或 PowerShell 下载脚本:
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
在具有 Internet 访问权限的计算机上,下载以下包含 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
在具有 Internet 连接和 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 大数据群集。