Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Important
Die Big Data Cluster von Microsoft SQL Server 2019 werden eingestellt. Der Support für SQL Server 2019 Big Data Cluster endete am 28. Februar 2025. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und den Big Data-Optionen auf der Microsoft SQL Server-Plattform.
Abgehenden Datenverkehr von Big Data-Clustern können Sie mit dem Azure Kubernetes Service (AKS) einschränken. Der Dienst stellt einen Standard-SKU-Load-Balancer bereit. Dies ist standardmäßig für den Ausgang eingerichtet und verwendet. Jetzt erfüllt das Standardsetup möglicherweise nicht alle Szenarien und Anforderungen. Wenn z. B. öffentliche IPs nicht zulässig sind oder zusätzliche Hops für den Ausgang erforderlich sind. Sie können eine benutzerdefinierte Route (UDR)- Tabelle definieren, wenn der Cluster öffentliche IPs verbietet und sich hinter einer virtuellen Netzwerkanwendung (Network Virtual Appliance, NVA) befindet.
AKS-Cluster verfügen über uneingeschränkten ausgehenden Internetzugriff. Dies dient zu Verwaltungs- und Betriebszwecken. Arbeitsknoten in einem AKS-Cluster müssen auf bestimmte Ports und vollqualifizierte Domänennamen (FQDNs) zugreifen. Im Folgenden sind Beispiele dafür aufgeführt:
- Wenn der Cluster während der Sicherheitsupdates des Betriebssystems des Workerknotens basissystemcontainerimages aus der Microsoft Container Registry (MCR) abrufen muss.
- Wenn GPU-aktivierte AKS-Workerknoten auf Endpunkte von Nvidia zugreifen müssen, um einen Treiber zu installieren.
- Wenn Kunden AKS in Verbindung mit Azure-Diensten verwenden, z. B. Azure-Richtlinie für Compliance auf Unternehmensniveau, Azure Monitoring (mit Containereinblicken).
- Wenn ein Dev Space aktiviert ist und andere ähnliche Szenarien.
Note
Wenn Sie einen Big Data-Cluster (BDC) in privatem Azure Kubernetes Service (AKS)-Cluster bereitstellen, gibt es keine eingehenden Abhängigkeiten, mit Ausnahme derjenigen, die in diesem Artikel erwähnt werden. Sie finden alle ausgehenden Abhängigkeiten unter Kontrolle des ausgehenden Datenverkehrs für Cluster-Knoten im Azure Kubernetes Service (AKS).
In diesem Artikel wird beschrieben, wie SIE BDCs in AKS privatem Cluster mit erweiterten Netzwerken und UDR bereitstellen. Außerdem wird die weitere Integration von BDC in Unternehmensnetzwerkumgebungen untersucht.
Wie man den ausgehenden Netzwerkverkehr mit der Azure-Firewall einschränkt
Azure Firewall stellt ein Azure Kubernetes Service-FQDN-Tag (AzureKubernetesService) bereit, um die Konfiguration zu vereinfachen.
Vollständige Informationen zum FQDN-Tag finden Sie unter "Einschränken des Ausgehenden Datenverkehrs mithilfe der Azure-Firewall".
Die folgende Abbildung zeigt, wie der Datenverkehr in einem privaten AKS-Cluster eingeschränkt wird.
Entwickeln Sie die grundlegende Architektur für einen Big Data-Cluster mit Azure Firewall:
- Erstellen der Ressourcengruppe & VNet
- Erstellen und Einrichten der Azure-Firewall
- Erstellen einer benutzerdefinierten Routentabelle
- Einrichten von Firewallregeln
- Dienstprinzipal (Service Principal) erstellen
- Erstellen eines privaten AKS-Clusters
- Erstellen eines BDC-Bereitstellungsprofils
- Deploy BDC
Erstellen Sie die Ressourcengruppe und das VNet
Definieren Sie einen Satz von Umgebungsvariablen, um Ressourcen zu erstellen.
export REGION_NAME=<region> export RESOURCE_GROUP=private-bdc-aksudr-rg export SUBNET_NAME=aks-subnet export VNET_NAME=bdc-vnet export AKS_NAME=bdcaksprivateclusterErstellen der Ressourcengruppe
az group create -n $RESOURCE_GROUP -l $REGION_NAMEErstellen des VNET
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)
Erstellen und Einrichten der Azure-Firewall
Definieren Sie einen Satz von Umgebungsvariablen zum Erstellen von Ressourcen.
export FWNAME=bdcaksazfw export FWPUBIP=$FWNAME-ip export FWIPCONFIG_NAME=$FWNAME-config az extension add --name azure-firewallErstellen eines dedizierten Subnetzes für die Firewall
Note
Sie können den Firewallnamen nach der Erstellung nicht mehr ändern.
az network vnet subnet create \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name AzureFirewallSubnet \ --address-prefix 10.3.0.0/24 az network firewall create -g $RESOURCE_GROUP -n $FWNAME -l $REGION_NAME --enable-dns-proxy true az network public-ip create -g $RESOURCE_GROUP -n $FWPUBIP -l $REGION_NAME --sku "Standard" az network firewall ip-config create -g $RESOURCE_GROUP -f $FWNAME -n $FWIPCONFIG_NAME --public-ip-address $FWPUBIP --vnet-name $VNET_NAME
Azure führt für Datenverkehr automatisch das Routing zwischen Azure-Subnetzen, virtuellen Netzwerken und lokalen Netzwerken durch.
Erstellen einer benutzerdefinierten Routentabelle
Sie können eine UDR-Tabelle mit einem Hop zu Azure Firewall erstellen.
export SUBID= <your Azure subscription ID>
export FWROUTE_TABLE_NAME=bdcaks-rt
export FWROUTE_NAME=bdcaksroute
export FWROUTE_NAME_INTERNET=bdcaksrouteinet
export FWPUBLIC_IP=$(az network public-ip show -g $RESOURCE_GROUP -n $FWPUBIP --query "ipAddress" -o tsv)
export FWPRIVATE_IP=$(az network firewall show -g $RESOURCE_GROUP -n $FWNAME --query "ipConfigurations[0].privateIpAddress" -o tsv)
# Create UDR and add a route for Azure Firewall
az network route-table create -g $RESOURCE_GROUP --name $FWROUTE_TABLE_NAME
az network route-table route create -g $RESOURCE_GROUP --name $FWROUTE_NAME --route-table-name $FWROUTE_TABLE_NAME --address-prefix 0.0.0.0/0 --next-hop-type VirtualAppliance --next-hop-ip-address $FWPRIVATE_IP --subscription $SUBID
az network route-table route create -g $RESOURCE_GROUP --name $FWROUTE_NAME_INTERNET --route-table-name $FWROUTE_TABLE_NAME --address-prefix $FWPUBLIC_IP/32 --next-hop-type Internet
Festlegen von Firewallregeln
# Add FW Network Rules
az network firewall network-rule create -g $RESOURCE_GROUP -f $FWNAME --collection-name 'aksfwnr' -n 'apiudp' --protocols 'UDP' --source-addresses '*' --destination-addresses "AzureCloud.$REGION_NAME" --destination-ports 1194 --action allow --priority 100
az network firewall network-rule create -g $RESOURCE_GROUP -f $FWNAME --collection-name 'aksfwnr' -n 'apitcp' --protocols 'TCP' --source-addresses '*' --destination-addresses "AzureCloud.$REGION_NAME" --destination-ports 9000
az network firewall network-rule create -g $RESOURCE_GROUP -f $FWNAME --collection-name 'aksfwnr' -n 'time' --protocols 'UDP' --source-addresses '*' --destination-fqdns 'ntp.ubuntu.com' --destination-ports 123
# Add FW Application Rules
az network firewall application-rule create -g $RESOURCE_GROUP -f $FWNAME --collection-name 'aksfwar' -n 'fqdn' --source-addresses '*' --protocols 'http=80' 'https=443' --fqdn-tags "AzureKubernetesService" --action allow --priority 100
Sie können einen UDR einem AKS-Cluster zuordnen, in dem Sie zuvor einen BDC bereitgestellt haben, indem Sie den folgenden Befehl verwenden:
az network vnet subnet update -g $RESOURCE_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME --route-table $FWROUTE_TABLE_NAME
Erstellen und Konfigurieren des Service Principal (SP)
In diesem Schritt müssen Sie den Dienstprinzipal erstellen und dem virtuellen Netzwerk Berechtigungen zuweisen.
Sehen Sie sich das folgende Beispiel an:
# Create SP and Assign Permission to Virtual Network
az ad sp create-for-rbac -n "bdcaks-sp"
APPID=<your service principal ID >
PASSWORD=< your service principal password >
VNETID=$(az network vnet show -g $RESOURCE_GROUP --name $VNET_NAME --query id -o tsv)
# Assign SP Permission to VNET
az role assignment create --assignee $APPID --scope $VNETID --role "Network Contributor"
RTID=$(az network route-table show -g $RESOURCE_GROUP -n $FWROUTE_TABLE_NAME --query id -o tsv)
az role assignment create --assignee $APPID --scope $RTID --role "Network Contributor"
Erstellen eines AKS-Clusters
Sie können nun den AKS-Cluster mit dem ausgehenden Typ userDefinedRouting erstellen.
az aks create \
--resource-group $RESOURCE_GROUP \
--location $REGION_NAME \
--name $AKS_NAME \
--load-balancer-sku standard \
--outbound-type userDefinedRouting \
--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 \
--service-principal $APPID \
--client-secret $PASSWORD \
--node-vm-size Standard_D13_v2 \
--node-count 2 \
--generate-ssh-keys
Erstellen eines Big Data Cluster-Bereitstellungsprofils
Sie können einen Big Data-Cluster mit einem benutzerdefinierten Profil erstellen:
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 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
Kann ich Firewalls von Drittanbietern verwenden, um den Datenverkehr einzuschränken?
Sie können Firewalls von Drittanbietern verwenden, um den ausgehenden Datenverkehr mit einem bereitgestellten privaten BDC- und AKS-Cluster einzuschränken. Um ein Beispiel anzuzeigen, besuchen Sie Azure Marketplace-Firewalls. Firewalls von Drittanbietern können in privaten Bereitstellungslösungen mit kompatibleren Konfigurationen verwendet werden. Die Firewall sollte die folgenden Netzwerkregeln bereitstellen:
- Zeigen Sie alle erforderlichen ausgehenden Netzwerkregeln und FQDNs für AKS-Cluster an. Diese URL enthält auch alle HTTP/HTTPS-Wildcard-Endpunkte und Abhängigkeiten. Diese können mit Ihrem AKS-Cluster variieren, je nach einer Reihe von Qualifikatoren und Ihren tatsächlichen Anforderungen.
- Azure Global erforderliche Netzwerkregeln /FQDN/Anwendungsregeln, die hier erwähnt werden.
- Optionale, empfohlene FQDN- und Anwendungsregeln für AKS-Cluster, die hier erwähnt werden.
Überprüfen Sie, wie Sie einen Big Data-Cluster in AKS privatem Cluster verwalten , und dann besteht der nächste Schritt darin, eine Verbindung mit einem Big Data-Cluster herzustellen.
Siehe Automatisierungsskripts für dieses Szenario im SQL Server Samples-Repository auf GitHub.