Compartir a través de


Implementación de BDC en un clúster privado de Azure Kubernetes Service (AKS)

Important

Los clústeres de macrodatos de Microsoft SQL Server 2019 se retiran. La compatibilidad con clústeres de macrodatos de SQL Server 2019 finalizó a partir del 28 de febrero de 2025. Para obtener más información, consulte la entrada de blog del anuncio y las opciones de macrodatos en la plataforma de Microsoft SQL Server.

En este artículo se explica cómo implementar clústeres de macrodatos de SQL Server en un clúster privado de Azure Kubernetes Service (AKS). Esta configuración admite el uso restringido de direcciones IP públicas en el entorno de red empresarial.

Una implementación privada proporciona las siguientes ventajas:

  • Uso restringido de direcciones IP públicas
  • El tráfico de red entre los servidores de aplicaciones y los grupos de nodos de clúster permanece solo en la red privada.
  • Configuración personalizada para los tráficos de salida obligatorios para ajustarse a requisitos específicos

En este artículo se muestra cómo usar un clúster privado de AKS para restringir el uso de la dirección IP pública mientras se han aplicado las cadenas de seguridad respectivas.

Implementación de un clúster de macrodatos privado con un clúster privado de AKS

Para empezar, cree un clúster privado de AKS para asegurarse de que el tráfico de red entre el servidor de API y los grupos de nodos permanece solo en la red privada. El plano de control o el servidor de API tiene direcciones IP internas en un clúster privado de AKS.

En esta sección se muestra cómo implementar un clúster de macrodatos en un clúster privado de Azure Kubernetes Service (AKS) con redes avanzadas (CNI).

Creación de un clúster de AKS privado con redes avanzadas


export REGION_NAME=<your Azure region >
export RESOURCE_GROUP=< your resource group name >
export SUBNET_NAME=aks-subnet
export VNET_NAME=bdc-vnet
export AKS_NAME=< your aks private cluster name >
 
az group create -n $RESOURCE_GROUP -l $REGION_NAME
 
az network vnet create \
    --resource-group $RESOURCE_GROUP \
    --location $REGION_NAME \
    --name $VNET_NAME \
    --address-prefixes 10.0.0.0/8 \
    --subnet-name $SUBNET_NAME \
    --subnet-prefix 10.1.0.0/16
 

SUBNET_ID=$(az network vnet subnet show \
    --resource-group $RESOURCE_GROUP \
    --vnet-name $VNET_NAME \
    --name $SUBNET_NAME \
    --query id -o tsv)
 
echo $SUBNET_ID
## will be displayed something similar as the following: 
/subscriptions/xxxx-xxxx-xxx-xxxx-xxxxxxxx/resourceGroups/your-bdc-rg/providers/Microsoft.Network/virtualNetworks/your-aks-vnet/subnets/your-aks-subnet

Creación de un clúster privado de AKS con redes avanzadas (CNI)

Para poder seguir el paso siguiente, debe aprovisionar un clúster de AKS con Standard Load Balancer con la característica de clúster privado habilitada. El comando tendrá un aspecto similar al siguiente:

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.2.0.10 \
    --service-cidr 10.2.0.0/24 \
    --node-vm-size Standard_D13_v2 \
    --node-count 2 \
    --generate-ssh-keys

Después de una implementación correcta, puede ir al <MC_yourakscluster> grupo de recursos y encontrará que kube-apiserver es un punto de conexión privado. Por ejemplo, consulte la sección siguiente.

Conexión a un clúster de AKS

az aks get-credentials -n $AKS_NAME -g $RESOURCE_GROUP

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

Después de conectarse a un clúster de AKS, puede empezar a implementar BDC y puede preparar la variable de entorno e iniciar una implementación:

azdata bdc config init --source aks-dev-test --target private-bdc-aks --force

Generar y configurar el perfil de implementación personalizada de BDC:

azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.docker.imageTag=2019-CU6-ubuntu-16.04"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.storage.data.className=default"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.storage.logs.className=default"

azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.endpoints[1].serviceType=NodePort"

azdata bdc config replace -c private-bdc-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/bdc.json -j "$.spec.resources.gateway.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/bdc.json -j "$.spec.resources.appproxy.spec.endpoints[0].serviceType=NodePort"

Despliegue de un clúster privado de macrodatos de SQL Server con alta disponibilidad

En caso de implementar un clúster de macrodatos de SQL Server (SQL-BDC) con alta disponibilidad (HA), estará usando el perfil de implementación aks-dev-test-ha. Después de una implementación correcta, puede usar el mismo kubectl get svc comando y verá que se crea un servicio adicional master-secondary-svc . Debe configurar ServiceType como NodePort. Otros pasos serán similares a los mencionados en la sección anterior.

En el siguiente ejemplo, se establece ServiceType como NodePort.

azdata bdc config replace -c private-bdc-aks /bdc.json -j "$.spec.resources.master.spec.endpoints[1].serviceType=NodePort"

Implementación de BDC en un clúster privado de AKS

export AZDATA_USERNAME=<your bdcadmin username>
export AZDATA_PASSWORD=< your bdcadmin password>

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

Comprobación del estado de implementación

La implementación tardará unos minutos y puede usar el siguiente comando para comprobar el estado de implementación:

kubectl get pods -n mssql-cluster -w

Comprobación del estado del servicio

Use el siguiente comando para comprobar los servicios. Compruebe que están en buen estado sin direcciones IP externas:

kubectl get services -n mssql-cluster

Vea cómo administrar el clúster de macrodatos en el clúster privado de AKS y, a continuación, el siguiente paso es conectarse a un clúster de macrodatos de SQL Server.

Consulte los scripts de automatización para este escenario en el repositorio de muestras de SQL Server en GitHub.