Uso de un script de Python para implementar un clúster de macrodatos de SQL Server en Azure Kubernetes Service (AKS)

Se aplica a: SQL Server 2019 (15.x)

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 tutorial se usa un script de implementación de Python de ejemplo para implementar Clústeres de macrodatos de SQL Server 2019 (versión preliminar) en Azure Kubernetes Service (AKS).

Sugerencia

AKS es solo una opción para hospedar Kubernetes para el clúster de macrodatos. Para obtener información sobre otras opciones de implementación y sobre cómo personalizarlas, vea Cómo implementar Clústeres de macrodatos de SQL Server en Kubernetes.

La implementación del clúster de macrodatos predeterminada que se usa aquí consta de una instancia maestra de SQL, una instancia de grupo de proceso, dos instancias de grupo de datos y dos instancias de grupo de almacenamiento. Los datos se conservan con volúmenes persistentes de Kubernetes que usan las clases de almacenamiento predeterminadas de AKS. La configuración predeterminada que se usa en este tutorial es adecuada para entornos de desarrollo y pruebas.

Prerrequisitos

Iniciar sesión en su cuenta

El script usa la CLI de Azure para automatizar la creación de un clúster de AKS. Antes de ejecutar el script, debe iniciar sesión en su cuenta de Azure con la CLI de Azure al menos una vez. Ejecute el siguiente comando desde el símbolo del sistema. Para obtener más información, consulte Inicio de sesión con la CLI de Azure.

az login

Descargue el script de implementación

En este tutorial se automatiza la creación del clúster de macrodatos en AKS con un script de Python: deploy-sql-big-data-aks.py. Si ya ha instalado Python para azdata, debería poder ejecutar el script correctamente en este tutorial.

En un símbolo del sistema de Windows PowerShell o Bash de Linux, ejecute el siguiente comando para descargar el script de implementación de GitHub.

curl -o deploy-sql-big-data-aks.py "https://raw.githubusercontent.com/Microsoft/sql-server-samples/master/samples/features/sql-big-data-cluster/deployment/aks/deploy-sql-big-data-aks.py"

Ejecutar el script de implementación

Siga estos pasos para ejecutar el script de implementación en un símbolo del sistema de Windows PowerShell o Linux bash. Este script creará un servicio AKS en Azure y, a continuación, implementará un clúster de macrodatos de SQL Server 2019 en AKS. También puede modificar el script con otras variables de entorno para crear una implementación personalizada.

  1. Ejecute el script con el siguiente comando:

    python deploy-sql-big-data-aks.py
    

    Nota

    Si tiene python3 y python2 en el equipo cliente y en la ruta de acceso, tiene que ejecutar el comando con python3: python3 deploy-sql-big-data-aks.py.

  2. Cuando se le solicite, escriba la siguiente información:

    Value Descripción
    Id. de suscripción a Azure Identificador de suscripción de Azure que se usará para AKS. Puede enumerar todas las suscripciones y sus identificadores ejecutando az account list desde otra línea de comandos.
    Grupo de recursos de Azure Nombre del grupo de recursos de Azure que se va a crear para el clúster de AKS.
    Región de Azure La región de Azure del nuevo clúster de AKS (westus de forma predeterminada).
    Tamaño de la máquina Tamaño de la máquina que se va a usar para los nodos del clúster de AKS (Standard_D16s_v3 de forma predeterminada).
    Nodos de trabajo El número de nodos de trabajo en el clúster de AKS (valor predeterminado 1).
    Nombre del clúster El nombre del clúster de AKS y del clúster de macrodatos. El nombre del clúster de macrodatos debe estar formado solo por caracteres alfanuméricos en minúsculas y sin espacios (valor predeterminadosqlbigdata).
    Contraseña Contraseña del controlador, puerta de enlace de HDFS/Spark e instancia maestra (valor predeterminado MySQLBigData2019).
    Nombre de usuario Nombre de usuario del controlador (valor predeterminado: admin).

    Importante

    Es posible que el tamaño de máquina predeterminado Standard_D16s_v3 no esté disponible en todas las regiones de Azure. Si selecciona un tamaño de máquina diferente, asegúrese de que el número total de discos que se pueden conectar a través de los nodos del clúster es mayor o igual que 24. Cada notificación de volumen persistente en el clúster requiere un disco conectado. Actualmente, el clúster de macrodatos requiere 24 notificaciones de volumen persistentes.

    Ejecute el siguiente comando para identificar los tipos de máquina virtual disponibles.

    az vm list-sizes --query "sort_by(@,&name)[?contains(name,'Standard_D16s')]" -l westus2 -o table
    

    Nota

    La cuenta sa de SQL Server está deshabilitada durante la implementación del clúster de macrodatos. En la instancia maestra de SQL Server se aprovisiona un nuevo inicio de sesión de sysadmin con el mismo nombre especificado para la entrada Nombre de usuario y la contraseña correspondiente a la entrada Contraseña. Se usan los mismos valores Nombre de usuario y Contraseña para aprovisionar un usuario administrador de controlador. En los clústeres implementados antes de SQL Server CU5 2019, el único usuario compatible con la puerta de enlace (Knox) es root y la contraseña es la misma que la anterior.

    A partir de SQL Server 2019 (15.x) CU 5, al implementar un nuevo clúster con autenticación básica todos los puntos de conexión incluida la puerta de enlace utilizan AZDATA_USERNAME y AZDATA_PASSWORD. Los puntos de conexión de los clústeres que se actualizan a CU 5 continúan usando root como nombre de usuario para conectarse al punto de conexión de puerta de enlace. Este cambio no se aplica a las implementaciones que utilizan la autenticación de Active Directory. Consulte Credenciales para acceder a los servicios a través del punto de conexión de puerta de enlace en las notas de la versión.

  3. El script se iniciará mediante la creación de un clúster de AKS con los parámetros especificados. Este paso tarda varios minutos.

Supervisar el estado

Después de que el script cree el clúster de AKS, continúa para establecer las variables de entorno necesarias con la configuración que ha especificado anteriormente. A continuación, llame a azdata para implementar el clúster de macrodatos en AKS.

La ventana de comandos de cliente generará el estado de implementación. Durante el proceso de implementación, debería ver una serie de mensajes en los que está esperando el pod del controlador:

2018-11-15 15:42:02.0209 UTC | INFO | Waiting for controller pod to be up...

Después de 10 o 20 minutos, se le notificará que el pod del controlador se está ejecutando:

2018-11-15 15:50:50.0300 UTC | INFO | Controller pod is running.
2018-11-15 15:50:50.0585 UTC | INFO | Controller Endpoint: https://111.111.111.111:30080

Importante

La implementación completa puede tardar mucho tiempo debido al tiempo necesario para descargar las imágenes de contenedor de los componentes del clúster de macrodatos. Pero no debería tardar muchas horas. Si tiene problemas con la implementación, vea Supervisión y solución de problemas de Clústeres de macrodatos de SQL Server.

Inspeccionar el clúster

En cualquier momento durante la implementación, puede usar kubectl o azdata para inspeccionar el estado y los detalles sobre el clúster de macrodatos en ejecución.

Usar kubectl

Abra una nueva ventana de comandos para usar kubectl durante el proceso de implementación.

  1. Ejecute el siguiente comando para obtener un resumen del estado de todo el clúster:

    kubectl get all -n <your-big-data-cluster-name>
    

    Sugerencia

    Si no ha cambiado el nombre del clúster de macrodatos, el valor predeterminado del script es sqlbigdata.

  2. Inspeccione los servicios de Kubernetes y sus puntos de conexión internos y externos con el siguiente comando de kubectl:

    kubectl get svc -n <your-big-data-cluster-name>
    
  3. También puede inspeccionar el estado de los pods de Kubernetes con el siguiente comando:

    kubectl get pods -n <your-big-data-cluster-name>
    
  4. Obtenga más información sobre un pod específico con el siguiente comando:

    kubectl describe pod <pod name> -n <your-big-data-cluster-name>
    

Sugerencia

Para obtener detalles sobre cómo supervisar y solucionar problemas de una implementación, vea Supervisión y solución de problemas de Clústeres de macrodatos de SQL Server.

Conectarse al clúster

Cuando finalice el script de implementación, la salida le notificará que se ha realizado correctamente:

2018-11-15 16:10:25.0583 UTC | INFO | Cluster state: Ready
2018-11-15 16:10:25.0583 UTC | INFO | Cluster deployed successfully.

El clúster de macrodatos de SQL Server ahora está implementado en AKS. Ahora puede usar Azure Data Studio para conectarse al clúster. Para obtener más información, vea Conectarse a un clúster de macrodatos de SQL Server con Azure Data Studio.

Limpieza

Si está probando Clústeres de macrodatos de SQL Server en Azure, debe eliminar el clúster de AKS cuando termine para evitar cargos inesperados. No quite el clúster si desea seguir utilizándolo.

Advertencia

En los pasos siguientes se anula el clúster de AKS, que también quita el clúster de macrodatos de SQL Server. Si tiene bases de datos o datos de HDFS que desea conservar, haga una copia de seguridad de los datos antes de eliminar el clúster.

Ejecute el siguiente comando de la CLI de Azure para quitar el clúster de macrodatos y el servicio AKS en Azure (reemplace <resource group name> por el grupo de recursos de Azure que ha especificado en el script de implementación):

az group delete -n <resource group name>