Realización de una implementación sin conexión de un clúster de macrodatos de SQL Server

Importante

El complemento Clústeres de macrodatos de Microsoft SQL Server 2019 se va a retirar. La compatibilidad con Clústeres de macrodatos de SQL Server 2019 finalizará el 28 de febrero de 2025. Todos los usuarios existentes de SQL Server 2019 con Software Assurance serán totalmente compatibles con la plataforma, y el software se seguirá conservando a través de actualizaciones acumulativas de SQL Server hasta ese momento. Para más información, consulte la entrada de blog sobre el anuncio y Opciones de macrodatos en la plataforma Microsoft SQL Server.

En este artículo se explica cómo realizar una implementación sin conexión de Clústeres de macrodatos de SQL Server 2019. Los clústeres de macrodatos deben tener acceso a un repositorio de Docker desde el que extraer imágenes de contenedor. Una instalación sin conexión es aquella en la que las imágenes necesarias se encuentran en un repositorio privado de Docker. Ese repositorio privado se usa como origen de imágenes de una nueva implementación.

Prerequisites

Advertencia

El parámetro imagePullPolicy debe establecerse como en "Always" el archivo control.json del perfil de implementación.

Cargar imágenes en un repositorio privado

En los pasos siguientes se explica cómo extraer las imágenes de contenedor de clúster de macrodatos del repositorio de Microsoft y luego insertarlas en el repositorio privado.

Sugerencia

En los pasos siguientes se explica el proceso. Pero para simplificar la tarea, puede usar el script automatizado en lugar de ejecutar estos comandos manualmente.

  1. Extraiga las imágenes de contenedor de clúster de macrodatos mediante la repetición del siguiente comando. Reemplace <SOURCE_IMAGE_NAME> por cada nombre de imagen. Reemplace <SOURCE_DOCKER_TAG> por la etiqueta de la versión del clúster de macrodatos, como 2019-CU12-ubuntu-20.04.

    docker pull mcr.microsoft.com/mssql/bdc/<SOURCE_IMAGE_NAME>:<SOURCE_DOCKER_TAG>
    
  2. Inicie sesión en el registro de Docker privado de destino.

    docker login <TARGET_DOCKER_REGISTRY> -u <TARGET_DOCKER_USERNAME> -p <TARGET_DOCKER_PASSWORD>
    
  3. Etiquete las imágenes locales con el siguiente comando para cada imagen:

    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. Inserte las imágenes locales en el repositorio privado de Docker:

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

Advertencia

No modifique las imágenes del clúster de macrodatos una vez insertadas en el repositorio privado. Si realiza una implementación con imágenes modificadas, se producirá una configuración de clúster de macrodatos no admitida.

Imágenes de contenedor de clúster de macrodatos

Las siguientes imágenes de contenedor de clúster de macrodatos son necesarias para una instalación sin conexión:

  • 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

Script automatizado

Puede usar un script de Python automatizado que extraiga automáticamente todas las imágenes de contenedor necesarias y las inserte en un repositorio privado.

Nota:

Python es un requisito previo para usar el script. Para obtener más información sobre cómo instalar Python, vea la documentación de Python.

  1. En Bash o PowerShell, descargue el script con 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. Luego ejecute el script con uno de los siguientes comandos:

    Windows:

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

    Linux:

    sudo python push-bdc-images-to-custom-private-repo.py
    
  3. Siga los mensajes para especificar la información del repositorio de Microsoft y el repositorio privado. Una vez completado el script, todas las imágenes necesarias deben encontrarse en el repositorio privado.

  4. Siga estas instrucciones para obtener información sobre cómo personalizar el archivo de configuración de la implementación de control.json para usar el repositorio y el registro de contenedor. Tenga en cuenta que debe establecer las variables de entorno DOCKER_USERNAME y DOCKER_PASSWORD antes de la implementación para permitir el acceso a su repositorio privado.

Instalación de herramientas sin conexión

Las implementaciones de clústeres de macrodatos requieren varias herramientas, como Python, CLI de datos de Azure (azdata) y kubectl. Siga estos pasos para instalar estas herramientas en un servidor sin conexión.

Instalación de Python sin conexión

  1. En un equipo con acceso a Internet, descargue uno de los siguientes archivos comprimidos que contienen Python:

    Sistema operativo Descargar
    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. Copie el archivo comprimido en el equipo de destino y extráigalo en una carpeta de su elección.

  3. Solo para Windows, ejecute installLocalPythonPackages.bat desde esa carpeta y pase la ruta de acceso completa a la misma carpeta como un parámetro.

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

Instalación de azdata sin conexión

  1. En una máquina con acceso a Internet y Python, ejecute el comando siguiente para descargar todos los paquetes CLI de datos de Azure (azdata) en la carpeta actual.

    pip download -r https://aka.ms/azdata
    
  2. Copie los paquetes descargados y el archivo requirements.txt en la máquina de destino.

  3. Ejecute el siguiente comando en el equipo de destino y especifique la carpeta en la que ha copiado los archivos anteriores.

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

Instalación de kubectl sin conexión

Para instalar kubectl en un equipo sin conexión, siga estos pasos.

  1. Use curl para descargar kubectl en la carpeta que prefiera. Para obtener más información, vea Instalación del binario de kubectl mediante curl.

  2. Copie la carpeta en el equipo de destino.

Implementación desde un repositorio privado

Para implementar desde el repositorio privado, siga los pasos de la guía de implementación, pero use un archivo de configuración de implementación personalizado que especifique la información del repositorio privado de Docker. Los siguientes comandos de CLI de datos de Azure (azdata) muestran cómo cambiar la configuración de Docker de un archivo de configuración de la implementación personalizado denominado control.json:

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>"

La implementación le pedirá el nombre de usuario y la contraseña de Docker, aunque también puede especificarlos en las variables de entorno DOCKER_USERNAME y DOCKER_PASSWORD.

Pasos siguientes

Para obtener más información sobre las implementaciones de clústeres de macrodatos, vea Cómo implementar Clústeres de macrodatos de SQL Server en Kubernetes.