Freigeben über


Schnellstart: Erstellen eines regionsübergreifenden Clusters mit Azure Managed Instance for Apache Cassandra

Azure Managed Instance for Apache Cassandra ist ein vollständig verwalteter Service für reine Open-Source Apache Cassandra-Cluster. Der Dienst ermöglicht außerdem, konfigurationen abhängig von den spezifischen Anforderungen jeder Workload außer Kraft zu setzen, um maximale Flexibilität und Kontrolle zu gewährleisten.

In diesem Schnellstart wird veranschaulicht, wie Sie die Azure CLI-Befehle zum Konfigurieren eines regionsübergreifenden Clusters verwenden.

Voraussetzungen

  • Dieser Artikel erfordert die Azure CLI-Version 2.30.0 oder höher. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
  • Verwenden Sie ein virtuelles Azure-Netzwerk mit Konnektivität zu Ihrer selbst gehosteten oder lokalen Umgebung. Weitere Informationen zum Verbinden lokaler Umgebungen mit Azure finden Sie unter Verbinden eines lokalen Netzwerks mit Azure.

Einrichten der Netzwerkumgebung

Da alle Rechenzentren, die mit diesem Dienst ausgestattet sind, in dedizierten Subnetzen unter Verwendung der VNet-Einschleusung verwendet werden müssen, konfigurieren Sie vor der Bereitstellung ein entsprechendes Netzwerkpeering. Für diesen Schnellstart erstellen Sie einen Cluster mit zwei Rechenzentren in separaten Regionen: „USA, Osten“ und „USA, Osten 2“. Erstellen Sie zunächst die virtuellen Netzwerke für jede Region.

  1. Melden Sie sich beim Azure-Portal an.

  2. Erstellen einer Ressourcengruppe mit dem Namen cassandra-mi-multi-region:

    az group create --location eastus2 --name cassandra-mi-multi-region
    
  3. Erstellen Sie das erste virtuelle Netzwerk in Ost-US 2 mit einem dedizierten Subnetz:

    az network vnet create \
      --name vnetEastUs2 \
      --location eastus2 \
      --resource-group cassandra-mi-multi-region \
      --address-prefix 10.0.0.0/16 \
      --subnet-name dedicated-subnet
    
  4. Erstellen Sie das zweite virtuelle Netzwerk in Ost-US, auch mit einem dedizierten Subnetz:

     az network vnet create \
       --name vnetEastUs \
       --location eastus \
       --resource-group cassandra-mi-multi-region \
       --address-prefix 192.168.0.0/16 \
       --subnet-name dedicated-subnet
    

    Wir fügen explizit verschiedene IP-Adressbereiche hinzu, um sicherzustellen, dass keine Fehler mit Peering auftreten.

  5. Führen Sie ein Peering zwischen dem ersten virtuellen Netzwerk und dem zweiten virtuellen Netzwerk durch:

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet1ToMyVnet2 \
      --vnet-name vnetEastUs2 \
      --remote-vnet vnetEastUs \
      --allow-vnet-access \
      --allow-forwarded-traffic
    
  6. Um die beiden virtuellen Netzwerke zu verbinden, erstellen Sie ein weiteres Peering zwischen dem zweiten virtuellen Netzwerk und dem ersten:

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet2ToMyVnet1 \
      --vnet-name vnetEastUs \
      --remote-vnet vnetEastUs2 \
      --allow-vnet-access \
      --allow-forwarded-traffic
    

    Wenn Sie weitere Regionen hinzufügen, erfordert jedes virtuelle Netzwerk Peering von ihm zu allen anderen virtuellen Netzwerken und von allen anderen virtuellen Netzwerken zu ihm.

  7. Überprüfen Sie die Ausgabe des vorherigen Befehls. Stellen Sie sicher, dass der Wert von peeringState jetzt Connectedist. Sie können dieses Ergebnis auch überprüfen, indem Sie den folgenden Befehl ausführen:

    az network vnet peering show \
      --name MyVnet1ToMyVnet2 \
      --resource-group cassandra-mi-multi-region \
      --vnet-name vnetEastUs2 \
      --query peeringState
    
  8. Wenden Sie einige spezielle Berechtigungen auf beide virtuelle Netzwerke an. Azure Managed Instance for Apache Cassandra erfordert diese Berechtigungen. Führen Sie den folgenden Befehl aus. Ersetzen Sie <SubscriptionID> durch Ihre Abonnement-ID:

    az role assignment create \
      --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \
      --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \
      --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2
    
    az role assignment create     \
      --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \
      --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \
      --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs
    

    Die assignee- und role-Werte im vorherigen Befehl sind feste Werte. Geben Sie diese Werte genau wie im Befehl dargestellt ein.

Wenn beim Ausführen von az role assignment create Fehler auftreten, haben Sie möglicherweise keine Berechtigung zum Ausführen. Erkundigen Sie sich bei Ihrem Administrator nach den Berechtigungen.

Erstellen eines regionsübergreifenden Clusters

  1. Stellen Sie die Clusterressource bereit. Ersetzen Sie <Subscription ID> durch Ihre Abonnement-ID. Die Bereitstellung kann 5 bis 10 Minuten dauern.

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    location='eastus2'
    delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet'
    initialCassandraAdminPassword='myPassword'
    
     az managed-cassandra cluster create \
       --cluster-name $clusterName \
       --resource-group $resourceGroupName \
       --location $location \
       --delegated-management-subnet-id $delegatedManagementSubnetId \
       --initial-cassandra-admin-password $initialCassandraAdminPassword \
       --debug
    
  2. Nachdem die Clusterressource erstellt wurde, können Sie ein Rechenzentrum erstellen. Erstellen Sie zunächst ein Rechenzentrum in „USA, Osten 2“. Ersetzen Sie <SubscriptionID> durch Ihre Abonnement-ID. Diese Aktion kann bis zu 10 Minuten dauern.

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    dataCenterName='dc-eastus2'
    dataCenterLocation='eastus2'
    delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet'
    
     az managed-cassandra datacenter create \
        --resource-group $resourceGroupName \
        --cluster-name $clusterName \
        --data-center-name $dataCenterName \
        --data-center-location $dataCenterLocation \
        --delegated-subnet-id $delegatedManagementSubnetId \
        --node-count 3
    
  3. Erstellen Sie ein Rechenzentrum in „USA, Osten“. Ersetzen Sie <SubscriptionID> durch Ihre Abonnement-ID:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    dataCenterName='dc-eastus'
    dataCenterLocation='eastus'
    delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs/subnets/dedicated-subnet'
    virtualMachineSKU='Standard_D8s_v4'
    noOfDisksPerNode=4
    
     az managed-cassandra datacenter create \
       --resource-group $resourceGroupName \
       --cluster-name $clusterName \
       --data-center-name $dataCenterName \
       --data-center-location $dataCenterLocation \
       --delegated-subnet-id $delegatedManagementSubnetId \
       --node-count 3
       --sku $virtualMachineSKU \
       --disk-capacity $noOfDisksPerNode \
       --availability-zone false
    

    Sie können den Wert für --sku aus den folgenden verfügbaren Produktstufen auswählen:

    • Standard_E8s_v4
    • Standard_E16s_v4
    • Standard_E20s_v4
    • Standard_E32s_v4
    • Standard_DS13_v2
    • Standard_DS14_v2
    • Standard_D8s_v4
    • Standard_D16s_v4
    • Standard_D32s_v4

    Beachten Sie auch, dass --availability-zone auf false festgelegt ist. Um Verfügbarkeitszonen zu aktivieren, legen Sie sie auf true. Verfügbarkeitszonen erhöhen den Verfügbarkeitsgrad der Service-Level-Vereinbarung (SLA) für den Dienst. Weitere Informationen finden Sie unter Service level agreements for Azure Managed Instance for Apache Cassandra.

    Verfügbarkeitszonen werden in allen Regionen nicht unterstützt. Bereitstellungen schlagen fehl, wenn Sie eine Region auswählen, in der Verfügbarkeitszonen nicht unterstützt werden. Unterstützte Regionen finden Sie unter Azure-Regionen mit Verfügbarkeitszonen.

    Die erfolgreiche Bereitstellung von Verfügbarkeitszonen unterliegt auch der Verfügbarkeit von Computeressourcen in allen Zonen in der jeweiligen Region. Bereitstellungen können fehlschlagen, wenn die ausgewählte Produktebene oder Kapazität nicht in allen Zonen verfügbar ist.

  4. Nachdem das zweite Rechenzentrum erstellt wurde, rufen Sie den Knotenstatus ab, um zu überprüfen, ob alle Cassandra-Knoten erfolgreich aufgetreten sind:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster status\
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Verwenden Sie dann CQLSH, um eine Verbindung mit Ihrem Cluster herzustellen. Verwenden Sie die folgende CQL-Abfrage, um die Replikationsstrategie in jedem Schlüsselbereich zu aktualisieren, um alle Rechenzentren im gesamten Cluster einzuschließen (Systemtabellen werden automatisch aktualisiert):

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    
  6. Wenn Sie einem Cluster, der bereits Daten enthält, ein Rechenzentrum hinzufügen, müssen Sie rebuild ausführen, um die historischen Daten zu replizieren. Gehen Sie in diesem Fall davon aus, dass das dc-eastus2 Rechenzentrum bereits Daten enthält. Führen Sie in der Azure CLI den folgenden Befehl aus: nodetool rebuild, um diesen auf jedem Knoten in Ihrem neuen dc-eastus Rechenzentrum auszuführen. Ersetzen Sie <ip address> durch die IP-Adresse des Knotens.

    az managed-cassandra cluster invoke-command \
      --resource-group $resourceGroupName \
      --cluster-name $clusterName \
      --host <ip address> \
      --command-name nodetool --arguments rebuild="" "dc-eastus2"=""
    

    Erlauben Sie Anwendungsclients nicht, in das neue Rechenzentrum zu schreiben, bevor Sie Keyspace-Replikationsänderungen anwenden. Andernfalls funktioniert der Neuaufbau nicht. Anschließend müssen Sie eine Supportanfrage erstellen, damit unser Team repair für Sie ausführen kann.

Problembehandlung

Wenn beim Anwenden von Berechtigungen für Ihr virtuelles Netzwerk mithilfe der Azure CLI ein Fehler auftritt, können Sie dieselbe Berechtigung manuell über das Azure-Portal anwenden. Ein Beispiel für einen solchen Fehler ist „Der Benutzer oder Dienstprinzipal in der Graphdatenbank für e5007d2c-4b13-4a74-9b6a-605d99f03501 kann nicht gefunden werden“. Weitere Informationen finden Sie unter Hinzufügen von Azure Cosmos DB-Dienstprinzipalen über das Azure-Portal.

Die Azure Cosmos DB-Rollenzuweisung wird nur für Bereitstellungszwecke verwendet. Azure Managed Instanced for Apache Cassandra hat keine Back-End-Abhängigkeiten von Azure Cosmos DB.

Bereinigen von Ressourcen

Wenn Sie diesen verwalteten Instanzcluster nicht weiterhin verwenden werden, führen Sie die folgenden Schritte aus, um ihn zu löschen:

  1. Wählen Sie im Azure-Portal im Menü auf der linken Seite die Option Ressourcengruppen aus.
  2. Wählen Sie in der Liste die Ressourcengruppe aus, die Sie für diese Schnellstartanleitung erstellt haben.
  3. Wählen Sie im Ressourcengruppenbereich Übersicht die Option Ressourcengruppe löschen aus.
  4. Geben Sie im nächsten Bereich den Namen der zu löschenden Ressourcengruppe ein, und wählen Sie dann "Löschen" aus.

Nächster Schritt

In dieser Schnellstartanleitung haben Sie erfahren, wie Sie mithilfe der Azure CLI und der azure Managed Instance für Apache Cassandra einen Multi-Region-Cluster erstellen. Sie können nun mit der Nutzung des Clusters beginnen.