Bereitstellen von BDC in einem privaten Azure Kubernetes Service-Cluster (AKS-Cluster)

Wichtig

Das Microsoft SQL Server 2019-Big Data-Cluster-Add-On wird eingestellt. Der Support für SQL Server 2019-Big Data-Clusters endet am 28. Februar 2025. Alle vorhandenen Benutzer*innen von SQL Server 2019 mit Software Assurance werden auf der Plattform vollständig unterstützt, und die Software wird bis zu diesem Zeitpunkt weiterhin über kumulative SQL Server-Updates verwaltet. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und unter Big Data-Optionen auf der Microsoft SQL Server-Plattform.

In diesem Artikel wird erläutert, wie Big Data-Cluster in SQL Server in einem privaten Azure Kubernetes Service-Cluster (AKS-Cluster) bereitgestellt werden. Diese Konfiguration unterstützt die eingeschränkte Verwendung von öffentlichen IP-Adressen in einer Unternehmensnetzwerkumgebung.

Eine private Bereitstellung bietet die folgenden Vorteile:

  • Eingeschränkte Verwendung öffentlicher IP-Adressen
  • Der Netzwerkdatenverkehr zwischen Anwendungsservern und Clusterknotenpools erfolgt nur im privaten Netzwerk.
  • Benutzerdefinierte Konfiguration für den obligatorischen ausgehenden Datenverkehr zur Erfüllung bestimmter Anforderungen

In diesem Artikel wird erläutert, wie ein privater AKS-Cluster verwendet wird, um die Verwendung öffentlicher IP-Adressen bei gleichzeitiger Anwendung entsprechender Sicherheitszeichenfolgen einzuschränken.

Bereitstellen eines privaten Big Data-Clusters mit einem privaten AKS-Cluster

Erstellen Sie zunächst einen privaten AKS-Cluster, um sicherzustellen, dass der Netzwerkdatenverkehr zwischen dem API-Server und den Knotenpools ausschließlich im privaten Netzwerk erfolgt. Die Steuerungsebene oder der API-Server verfügt über interne IP-Adressen in einem privaten AKS-Cluster.

In diesem Abschnitt wird beschrieben, wie Sie einen Big Data-Cluster in einem privaten Azure Kubernetes Service-Cluster (AKS-Cluster) mit erweiterten Netzwerkeinstellungen (CNI) bereitstellen.

Erstellen eines privaten AKS-Clusters mit erweiterten Netzwerkeinstellungen


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

Erstellen eines privaten AKS-Clusters mit erweiterten Netzwerkeinstellungen (CNI)

Um zum nächsten Schritt zu gelangen, müssen Sie einen AKS-Cluster mit Load Balancer Standard bereitstellen, für den die Funktion für private Cluster aktiviert ist. Der von Ihnen auszuführende Befehl sieht wie folgt aus:

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

Nach einer erfolgreichen Bereitstellung können Sie zur Ressourcengruppe <MC_yourakscluster> wechseln. Sie werden feststellen, dass kube-apiserver ein privater Endpunkt ist. Der folgende Abschnitt dient als Beispiel.

Herstellen einer Verbindung mit einem AKS-Cluster

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

Erstellen eines Bereitstellungsprofils für den Big Data-Cluster

Nachdem Sie eine Verbindung mit einem AKS-Cluster hergestellt haben, können Sie mit der BDC-Bereitstellung beginnen, und Sie können die Umgebungsvariable vorbereiten und eine Bereitstellung initiieren:

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

Generieren und Konfigurieren eines benutzerdefinierten BDC-Bereitstellungsprofils:

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"

Bereitstellen eines privaten Big Data-Clusters in SQL Server mit Hochverfügbarkeit

Wenn Sie einen Big Data-Cluster in SQL Server (SQL-BDC) mit Hochverfügbarkeit bereitstellen, verwenden Sie das Bereitstellungsprofil aks-dev-test-ha. Nach einer erfolgreichen Bereitstellung können Sie denselben kubectl get svc-Befehl verwenden. Es wird ein zusätzlicher master-secondary-svc-Dienst erstellt. Sie müssen ServiceType als NodePort konfigurieren. Andere Schritte ähneln den im vorigen Abschnitt erwähnten Schritten.

Im folgenden Beispiel wird ServiceType auf NodePort festgelegt:

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

Bereitstellen von BDC in einem privaten AKS-Cluster

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

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

Überprüfen des Bereitstellungsstatus

Die Bereitstellung dauert einige Minuten. Sie können den Bereitstellungsstatus mithilfe des folgenden Befehls überprüfen:

kubectl get pods -n mssql-cluster -w

Überprüfen des Dienststatus

Verwenden Sie den folgenden Befehl, um die Dienste zu überprüfen. Vergewissern Sie sich, dass alle Dienste fehlerfrei ausgeführt werden (ohne externe IP-Adressen):

kubectl get services -n mssql-cluster

Erfahren Sie, wie Sie einen Big Data-Cluster in einem privaten AKS-Cluster verwalten. Der nächste Schritt besteht darin, eine Verbindung mit einem SQL Server-Big Data-Cluster herzustellen.

Die Automatisierungsskripts für dieses Szenario finden Sie im Repository für SQL Server-Beispiele auf GitHub.