Partager via


Déployer un contrôleur de domaine secondaire dans un cluster privé Azure Kubernetes Service (AKS)

Important

Le module complémentaire Clusters Big Data Microsoft SQL Server 2019 sera mis hors service. La prise en charge de la plateforme Clusters Big Data Microsoft SQL Server 2019 se terminera le 28 février 2025. Tous les utilisateurs existants de SQL Server 2019 avec Software Assurance seront entièrement pris en charge sur la plateforme, et le logiciel continuera à être maintenu par les mises à jour cumulatives SQL Server jusqu’à ce moment-là. Pour plus d’informations, consultez le billet de blog d’annonce et les Options Big Data sur la plateforme Microsoft SQL Server.

Cet article explique comment déployer des clusters Big Data SQL Server sur un cluster privé Azure Kubernetes Service (AKS). Cette configuration prend en charge l’utilisation restreinte d’adresses IP publiques dans un environnement réseau d’entreprise.

Un déploiement privé offre les avantages suivants :

  • Utilisation restreinte des adresses IP publiques
  • Le trafic réseau entre les serveurs d’applications et les pools de nœuds de cluster reste sur le réseau privé
  • Configuration personnalisée pour le trafic de sortie obligatoire en fonction des exigences spécifiques

Cet article montre comment utiliser un cluster privé AKS pour restreindre l’utilisation de l’adresse IP publique lorsque les chaînes de sécurité respectives ont été appliquées.

Déployer un cluster Big Data privé avec un cluster privé AKS

Pour commencer, créez un cluster AKS privé pour vous assurer que le trafic réseau entre le serveur d’API et les pools de nœuds reste sur le réseau privé uniquement. Le plan de contrôle ou le serveur d’API a des adresses IP internes dans un cluster privé AKS.

Cette section vous montre comment déployer un cluster Big Data dans un cluster privé Azure Kubernetes Service (AKS) avec mise en réseau avancée (CNI).

Créer un cluster privé AKS avec mise en réseau avancée


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

Créer un cluster privé AKS avec mise en réseau avancée (CNI)

Pour pouvoir passer à l’étape suivante, vous devez approvisionner un cluster AKS avec Standard Load Balancer et la fonctionnalité de cluster privé activée. Votre commande ressemble à ce qui suit :

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

Une fois le déploiement réussi, vous pouvez accéder au groupe de ressources <MC_yourakscluster> et vous constaterez que kube-apiserver est un point de terminaison privé. Par exemple, consultez la section suivante.

Se connecter à un cluster AKS

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

Générer un profil de déploiement de cluster Big Data

Après vous être connecté à un cluster AKS, vous pouvez commencer à déployer le BDC et vous pouvez préparer la variable d’environnement et lancer un déploiement :

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

Générer et configurer le profil de déploiement personnalisé du 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"

Déployer un cluster privé Big Data SQL Server avec une haute disponibilité

Si vous déployez un cluster Big Data SQL Server (SQL-BDC) avec une haute disponibilité, vous utiliserez le profil de déploiement aks-dev-test-ha. Une fois le déploiement réussi, vous pouvez utiliser la même commande kubectl get svc et un service master-secondary-svc supplémentaire est créé. Vous devez configurer ServiceType comme NodePort. Les autres étapes sont similaires à celles mentionnées dans la section précédente.

L'exemple suivant affecte la valeur NodePort à ServiceType :

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

Déployer un BDC dans un cluster privé AKS

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

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

Vérifier l’état du déploiement

Le déploiement prend quelques minutes, et vous pouvez utiliser la commande suivante pour vérifier l’état du déploiement :

kubectl get pods -n mssql-cluster -w

Vérifier l’état du service

Utilisez la commande ci-dessous pour vérifier les services. Vérifiez leur intégrité sans adresses IP externes :

kubectl get services -n mssql-cluster

Découvrez comment gérer un cluster Big Data dans un cluster privé AKS, puis l’étape suivante consiste à se connecter à un cluster Big Data SQL Server.

Consultez les scripts d’automatisation pour ce scénario dans le Référentiel d’exemples SQL Server sur GitHub.