Tutorial: Implementación de clústeres de macrodatos de SQL Server en modo de AD en Azure Kubernetes Service (AKS)

En este artículo se explica cómo implementar un clúster de macrodatos de SQL Server en el modo de autenticación de Active Directory con una arquitectura de referencia. La arquitectura de referencia amplía la instancia local de Active Directory Domain Services (AD DS) a Azure. Puede implementarla en el Centro de arquitectura de Azure con bloques de creación de Azure.

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.

Requisitos previos

Antes de implementar un clúster de macrodatos de SQL Server, debe realizar lo siguiente:

Creación de una subred de AKS

  1. Establecimiento de variables de entorno

    export REGION_NAME=< your Azure Region >
    export RESOURCE_GROUP=<your resource group >
    export SUBNET_NAME=aks-subnet
    export VNet_NAME= adds-vnet
    export AKS_NAME= <your aks cluster name>
    
  2. Creación de una subred de AKS

    SUBNET_ID=$(az network vnet subnet show \
     --resource-group $RESOURCE_GROUP \
     --vnet-name $VNet_NAME \
     --name $SUBNET_NAME \
     --query id -o tsv)
    

La siguiente captura de pantalla muestra cómo se planean las subredes que se encuentran en la red virtual de la arquitectura.

Diagram of the AKS cluster with AD and SQL Server Big Data Cluster.

Creación de un clúster privado de AKS

Puede usar el siguiente comando para implementar un clúster privado de AKS. Si no necesita un clúster privado, quite el parámetro --enable-private-cluster del comando. Para obtener información sobre otros requisitos, vea Tutorial: Implementación de un clúster de Azure Kubernetes Service (AKS).

az aks create \
    --resource-group $RESOURCE_GROUP \
    --name $AKS_NAME \
    --load-balancer-sku standard \
    --enable-private-cluster \
    --network-plugin azure \
    --vnet-subnet-id $SUBNET_ID \
    --docker-bridge-address 172.17.0.1/16 \
    --dns-service-ip 10.3.0.10 \
    --service-cidr 10.3.0.0/24 \
    --node-vm-size Standard_D13_v2 \
    --node-count 2 \
    --generate-ssh-keys

Después de implementar un clúster de AKS, conéctese al clúster de AKS.

Comprobación de la entrada de DNS inverso para el controlador de dominio

Antes de iniciar la implementación de Clústeres de macrodatos de SQL Server en el modo de AD en el clúster de AKS, compruebe que el propio controlador de dominio tiene un registro A y un registro PTR (entrada de DNS inverso) registrados en el servidor DNS.

Para comprobar esta configuración, ejecute el comando nslookup o ejecute el script de PowerShell para confirmar si tiene configurada una entrada de DNS inverso (registro PTR).

Creación del perfil de implementación del clúster de macrodatos

El siguiente comando crea un perfil de implementación:

azdata bdc config init --source kubeadm-prod  --target bdc-ad-aks

Los siguientes comandos se usan para establecer los parámetros de un perfil de implementación.

control.json

azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.storage.data.className=default"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.storage.logs.className=default"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.endpoints[1].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.endpoints[0].dnsName=controller.contoso.com"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.spec.endpoints[1].dnsName=proxys.contoso.com"

# security settings 
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.ouDistinguishedName=OU\=bdc\,DC\=contoso\,DC\=com"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.dnsIpAddresses=[\"192.168.0.4\"]"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.domainControllerFullyQualifiedDns=[\"ad1.contoso.com\"]"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.domainDnsName=contoso.com"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.clusterAdmins=[\"bdcadminsgroup\"]"
azdata bdc config replace -p bdc-ad-aks/control.json -j "$.security.activeDirectory.clusterUsers=[\"bdcusersgroup\"]"

bdc.json

azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[0].dnsName=master.contoso.com"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[1].dnsName=mastersec.contoso.com"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[1].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.gateway.spec.endpoints[0].dnsName=gateway.contoso.com"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.gateway.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.appproxy.spec.endpoints[0].dnsName=approxy.contoso.com"
azdata bdc config replace -p bdc-ad-aks/bdc.json -j "$.spec.resources.appproxy.spec.endpoints[0].serviceType=NodePort"

Inicio de la implementación

El siguiente comando inicia una implementación de clúster de macrodatos:

azdata bdc create --config-profile bdc-ad-aks --accept-eula yes