重要
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 for 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-app-service-proxy
- mssql-control-watchdog
- mssql-controller
- mssql-dns
- mssql-hadoop
- mssql-mleap-service-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 数据 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 offline
在具有 Internet 访问和 Python 的计算机上,运行以下命令,将所有 Azure 数据 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 大数据群集。