Quickstart: Een cluster met meerdere regio's maken met Azure Managed Instance voor Apache Cassandra

Azure Managed Instance voor Apache Cassandra biedt geautomatiseerde implementatie- en schaalbewerkingen voor beheerde opensource Apache Cassandra-datacenters. Deze service helpt u bij het versnellen van hybride scenario's en het verminderen van doorlopend onderhoud.

In deze quickstart wordt gedemonstreerd hoe u de Azure CLI-opdrachten gebruikt om een cluster met meerdere regio's in Azure te configureren.

Vereisten

  • Gebruik de bash-omgeving in Azure Cloud shell.

    Cloud Shell starten in een nieuw venster

  • Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren.

    • Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht AZ login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij de Azure CLI voor aanvullende aanmeldingsopties.

    • Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.

    • Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.

  • Voor dit artikel is versie 2.30.0 of hoger van Azure CLI vereist. Als u een Azure Cloud Shell, is de meest recente versie al geïnstalleerd.

  • Azure Virtual Network connectiviteit met uw zelf-hostende of on-premises omgeving. Zie het artikel over het verbinden van on-premises omgevingen met Azure Verbinding maken on-premises netwerk met Azure voor meer informatie.

De netwerkomgeving instellen

Omdat alle datacenters die met deze service zijn ingericht, moeten worden geïmplementeerd in toegewezen subnetten met behulp van VNet-injectie, moet u de juiste netwerk-peering configureren veerder de implementatie om ervoor te zorgen dat uw cluster met meerdere regio's goed werkt. We gaan een cluster maken met twee datacenters in afzonderlijke regio's: VS - oost en VS - oost 2. Eerst moeten we de virtuele netwerken voor elke regio maken.

  1. Meld u aan bij de Azure-portal.

  2. Maak een resourcegroep met de naam cassandra-mi-multi-region

    az group create -l eastus2 -n cassandra-mi-multi-region
    
  3. Maak het eerste VNet in VS - oost 2 met een toegewezen subnet:

    az network vnet create \
      -n vnetEastUs2 \
      -l eastus2 \
      -g cassandra-mi-multi-region \
      --address-prefix 10.0.0.0/16 \
      --subnet-name dedicated-subnet
    
  4. Maak nu het tweede VNet in VS - oost, ook met een toegewezen subnet:

     az network vnet create \
       -n vnetEastUs \
       -l eastus \
       -g cassandra-mi-multi-region \
       --address-prefix 192.168.0.0/16 \
       --subnet-name dedicated-subnet
    

    Notitie

    We voegen expliciet verschillende IP-adresbereiken toe om ervoor te zorgen dat er geen fouten optreden bij peering.

  5. Nu moeten we het eerste VNet peeren met het tweede VNet:

    az network vnet peering create \
      -g cassandra-mi-multi-region \
      -n MyVnet1ToMyVnet2 \
      --vnet-name vnetEastUs2 \
      --remote-vnet vnetEastUs \
      --allow-vnet-access \
      --allow-forwarded-traffic
    
  6. Als u de twee VNets wilt verbinden, maakt u nog een peering tussen het tweede VNet en het eerste:

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

    Notitie

    Als u meer regio's toevoegt, vereist elk VNet peering van het VNet naar alle andere VNets en van alle andere VNets.

  7. Controleer de uitvoer van de vorige opdracht en controleer of de waarde van peeringState nu Verbonden is. U kunt dit ook controleren door de volgende opdracht uit te voeren:

    az network vnet peering show \
      --name MyVnet1ToMyVnet2 \
      --resource-group cassandra-mi-multi-region \
      --vnet-name vnetEastUs2 \
      --query peeringState
    
  8. Pas vervolgens een aantal speciale machtigingen toe op beide virtuele netwerken, die vereist zijn voor Azure Managed Instance voor Apache Cassandra. Voer het volgende uit en zorg ervoor dat u vervangt <SubscriptionID> door uw abonnements-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
    

    Notitie

    De assignee waarden en in de vorige opdracht zijn vaste waarden. Voer deze waarden exact in role zoals vermeld in de opdracht . Als u dit niet doet, leidt dit tot fouten bij het maken van het cluster. Als er fouten optreden bij het uitvoeren van deze opdracht, hebt u mogelijk geen machtigingen om deze uit te voeren. Neem contact op met uw beheerder voor machtigingen.

Een cluster met meerdere regio's maken

  1. Nu de juiste netwerken zijn geïmplementeerd, zijn we klaar om de clusterresource te implementeren (vervang <Subscription ID> door uw abonnements-id). De kan tussen de 5 en 10 minuten duren:

    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. Wanneer de clusterresource is gemaakt, bent u klaar om een datacenter te maken. Maak eerst een datacenter in VS - oost 2 (vervang <SubscriptionID> door uw abonnements-id). Dit kan maximaal 10 minuten duren:

    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. Maak vervolgens een datacenter in VS - oost (vervang <SubscriptionID> door uw abonnements-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
    

    Notitie

    De waarde voor --sku kan worden gekozen uit de volgende beschikbare SKU's:

    • 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

    Houd er ook rekening --availability-zone mee dat is ingesteld op false . Als u beschikbaarheidszones wilt inschakelen, stelt u deze in op true . Beschikbaarheidszones verhogen de SLA voor beschikbaarheid van de service. Bekijk hier de volledige SLA-details voor meer informatie.

    Waarschuwing

    Beschikbaarheidszones worden niet in alle regio's ondersteund. Implementaties mislukken als u een regio selecteert waarin beschikbaarheidszones niet worden ondersteund. Kijk hier voor ondersteunde regio's. De geslaagde implementatie van beschikbaarheidszones is ook afhankelijk van de beschikbaarheid van rekenresources in alle zones in de opgegeven regio. Implementaties kunnen mislukken als de SKU die u hebt geselecteerd of capaciteit niet beschikbaar is in alle zones.

  4. Zodra het tweede datacenter is gemaakt, krijgt u de knooppuntstatus om te controleren of alle Cassandra-knooppunten zijn gevonden:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster node-status \
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Maak ten slotte verbinding met uw cluster met behulp van CQLSH en gebruik de volgende CQL-query om de replicatiestrategie in elke keyspace bij te werken om alle datacenters in het cluster op te nemen:

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    

    U moet ook de wachtwoordtabellen bijwerken:

     ALTER KEYSPACE "system_auth" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3}
    

Problemen oplossen

Als er een fout wordt weergegeven bij het toepassen van machtigingen op uw Virtual Network met behulp van Azure CLI, zoals Kan gebruiker of service-principal niet vinden in grafiekdatabase voor 'e5007d2c-4b13-4a74-9b6a-605d99f03501', kunt u dezelfde machtiging handmatig toepassen vanuit de Azure Portal. Meer informatie over hoe u dit doet, vindt u hier.

Notitie

De Azure Cosmos DB roltoewijzing wordt alleen gebruikt voor implementatiedoeleinden. Azure Managed Instanced voor Apache Cassandra heeft geen back-Azure Cosmos DB.

Resources opschonen

Als u dit beheerde exemplaarcluster niet meer gaat gebruiken, verwijdert u het cluster met de volgende stappen:

  1. Selecteer in het linkermenu van Azure Portal resourcegroepen.
  2. Selecteer de resourcegroep die u eerder voor deze quickstart hebt gemaakt uit de lijst.
  3. Selecteer resourcegroep verwijderen in het deelvenster Overzicht van de resourcegroep.
  4. Selecteer in het volgende venster de naam van de resourcegroep die u wilt verwijderen en selecteer vervolgens Verwijderen.

Volgende stappen

In deze quickstart hebt u geleerd hoe u een cluster met meerdere regio's maakt met behulp van Azure CLI en Azure Managed Instance voor Apache Cassandra. U kunt nu aan de slag gaan met het cluster.