Delen via


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

Azure Managed Instance voor Apache Cassandra is een volledig beheerde service voor pure opensource Apache Cassandra-clusters. Met de service kunnen configuraties ook worden overschreven, afhankelijk van de specifieke behoeften van elke workload, voor maximale flexibiliteit en controle.

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

Vereisten

  • Voor dit artikel is Azure CLI versie 2.30.0 of hoger vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
  • Gebruik een virtueel Azure-netwerk met connectiviteit met uw zelf-hostende of on-premises omgeving. Zie Een on-premises netwerk verbinden met Azure voor meer informatie over het verbinden van on-premises omgevingen met Azure.

De netwerkomgeving instellen

Omdat alle datacenters die met deze service zijn ingericht, moeten worden geïmplementeerd in toegewezen subnetten met behulp van virtuele netwerkinjectie, configureert u de juiste netwerkpeering voorafgaand aan de implementatie. Voor deze quickstart maakt u een cluster met twee datacenters in afzonderlijke regio's: VS - oost en VS - oost 2. Maak eerst de virtuele netwerken voor elke regio.

  1. Meld u aan bij het Azure-portaal.

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

    az group create --location eastus2 --name cassandra-mi-multi-region
    
  3. Maak het eerste virtuele netwerk in VS - oost 2 met een toegewezen subnet:

    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. Maak het tweede virtuele netwerk in VS - oost, ook met een toegewezen subnet:

     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
    

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

  5. Koppel het eerste virtuele netwerk aan het tweede virtuele netwerk:

    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. Als u de twee virtuele netwerken wilt verbinden, maakt u nog een peering tussen het tweede virtuele netwerk en het eerste:

    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
    

    Als u meer regio's toevoegt, vereist elk virtueel netwerk peering van dat netwerk naar alle andere virtuele netwerken, en van alle andere virtuele netwerken naar dat netwerk.

  7. Controleer de uitvoer van de vorige opdracht. Zorg ervoor dat de waarde peeringState nu Connectedis. U kunt dit resultaat 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. Enkele speciale machtigingen toepassen op beide virtuele netwerken. Voor Azure Managed Instance voor Apache Cassandra zijn deze machtigingen vereist. Voer de volgende opdracht uit. Vervang <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
    

    De assignee waarden in role de vorige opdracht zijn vaste waarden. Voer deze waarden exact in zoals wordt weergegeven in de opdracht.

Als er fouten optreden tijdens het uitvoeren az role assignment create, 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. Implementeer de clusterresource. Vervang door <Subscription ID> uw abonnements-id. De implementatie kan 5 tot 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. Nadat de clusterresource is gemaakt, kunt u een datacenter maken. Maak eerst een datacenter in VS - oost 2. Vervang door <SubscriptionID> uw abonnements-id. Deze actie 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 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
    

    U kunt de waarde voor --sku kiezen uit de volgende beschikbare productniveaus:

    • 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 mee dat --availability-zone is ingesteld op false. Als u beschikbaarheidszones wilt inschakelen, stelt u deze in op true. Beschikbaarheidszones verhogen de SLA (Service Level Agreement) voor beschikbaarheid van de service. Zie Serviceovereenkomsten voor Azure Managed Instance voor Apache Cassandra voor meer informatie.

    Beschikbaarheidszones worden niet ondersteund in alle regio's. Implementaties mislukken als u een regio selecteert waarin beschikbaarheidszones niet worden ondersteund. Zie Azure-regio's met beschikbaarheidszones voor ondersteunde regio's.

    De succesvolle implementatie van beschikbaarheidszones is ook onderhevig aan de beschikbaarheid van rekenresources in alle zones in de specifieke regio. Implementaties kunnen mislukken als de productlaag die u hebt geselecteerd, of capaciteit, niet beschikbaar is in alle zones.

  4. Nadat het tweede datacenter is gemaakt, controleert u de status van de nodes om te verifiëren dat alle Cassandra-nodes succesvol zijn gestart.

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster status\
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Gebruik vervolgens CQLSH om verbinding te maken met uw cluster. Gebruik de volgende CQL-query om de replicatiestrategie in elke keyspace bij te werken om alle datacenters in het cluster op te nemen (systeemtabellen worden automatisch bijgewerkt):

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    
  6. Als u ten slotte een datacenter toevoegt aan een cluster dat al gegevens bevat, moet u rebuild uitvoeren om de historische gegevens te repliceren. In dit geval wordt ervan uitgegaan dat het dc-eastus2 datacenter al gegevens bevat. Voer in de Azure CLI de volgende opdracht uit om op elk knooppunt in uw nieuwe dc-eastus datacenter uit te voerennodetool rebuild. Vervang <ip address> door het IP-adres van het knooppunt:

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

    Sta applicaties niet toe om gegevens naar het nieuwe datacenter te schrijven totdat u wijzigingen in de keyspace-replicatie hebt toegepast. Anders werkt het opnieuw opbouwen niet. Vervolgens moet u een ondersteuningsaanvraag indienen, zodat ons team repair voor u kan uitvoeren.

Probleemoplossing

Als er een fout optreedt wanneer u machtigingen toepast op uw virtuele netwerk met behulp van de Azure CLI, kunt u dezelfde machtiging handmatig toepassen vanuit Azure Portal. Een voorbeeldfout is : 'Kan de gebruiker of service-principal niet vinden in de grafiekdatabase voor e5007d2c-4b13-4a74-9b6a-605d99f03501'. Zie De Azure-portal gebruiken om een Azure Cosmos DB-service-principal toe te voegen voor meer informatie.

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

Resources opschonen

Als u dit beheerde exemplaarcluster niet meer gaat gebruiken, volgt u deze stappen om het te verwijderen:

  1. Selecteer Resourcegroepen in het linkermenu van de Azure-portal.
  2. Selecteer in de lijst de resourcegroep die u voor deze quickstart hebt gemaakt.
  3. Selecteer Resourcegroep verwijderen in het deelvenster Overzicht van de resourcegroep.
  4. Voer in het volgende deelvenster de naam in van de resourcegroep die u wilt verwijderen en selecteer vervolgens Verwijderen.

Volgende stap

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