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, waardoor de maximale flexibiliteit en controle waar nodig mogelijk zijn.
In deze quickstart ziet u 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. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
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 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 Azure CLI versie 2.30.0 of hoger vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.
Azure Virtual Network met connectiviteit met uw zelf-hostende of on-premises omgeving. Zie het artikel 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 VNet-injectie, 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.
Meld u aan bij het Azure-portaal.
Maak een resourcegroep met de naam cassandra-mi-multi-region:
az group create --location eastus2 --name cassandra-mi-multi-region
Maak het eerste VNet 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
Maak het tweede VNet 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
Notitie
We voegen expliciet verschillende IP-adresbereiken toe om ervoor te zorgen dat er geen fouten optreden wanneer peering wordt uitgevoerd.
Koppel het eerste VNet aan het tweede VNet:
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
Als u de twee VNets wilt verbinden, maakt u een andere peering tussen het tweede VNet 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
Notitie
Als u meer regio's toevoegt, vereist elk VNet peering van het naar alle andere VNets en van alle andere VNets.
Controleer de uitvoer van de vorige opdracht. Zorg ervoor dat de waarde van 'peeringState' nu 'Verbonden' is. 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
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
Notitie
De
assignee
waarden inrole
de vorige opdracht zijn vaste waarden. Voer deze waarden precies in zoals 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
Implementeer de clusterresource. Vervang door
<Subscription ID>
uw abonnements-id. De implementatie kan vijf 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
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
Maak een datacenter in VS - oost. Vervang door
<SubscriptionID>
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 mee dat
--availability-zone
is ingesteld opfalse
. Als u beschikbaarheidszones wilt inschakelen, stelt u dit in optrue
. Beschikbaarheidszones verhogen de SLA voor beschikbaarheid van de service. Zie SLA voor Azure Managed Instance voor Apache Cassandra voor meer informatie.Waarschuwing
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 opgegeven regio. Implementaties kunnen mislukken als de SKU die u hebt geselecteerd, of capaciteit, niet beschikbaar is in alle zones.
Zodra het tweede datacenter is gemaakt, haalt u de knooppuntstatus op om te controleren of alle Cassandra-knooppunten zijn opgehaald:
resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' az managed-cassandra cluster status\ --cluster-name $clusterName \ --resource-group $resourceGroupName
Maak vervolgens 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 (systeemtabellen worden automatisch bijgewerkt):
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
Als u ten slotte een datacenter toevoegt aan een cluster waar al gegevens zijn, moet u worden uitgevoerd
rebuild
om de historische gegevens te repliceren. In dit geval gaan we ervan uit dat hetdc-eastus2
datacenter al gegevens bevat. Voer in Azure CLI de onderstaande opdracht uit om op elk knooppunt in uw nieuwedc-eastus
datacenter uit te voerennodetool rebuild
, waarbij u<ip address>
het IP-adres van het knooppunt vervangt:az managed-cassandra cluster invoke-command \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --host <ip address> \ --command-name nodetool --arguments rebuild="" "dc-eastus2"=""
Waarschuwing
U mag toepassingsclients pas naar het nieuwe datacenter schrijven als u keyspace-replicatiewijzigingen hebt toegepast. Anders werkt het opnieuw opbouwen niet en moet u een ondersteuningsaanvraag maken, zodat ons team namens u kan worden uitgevoerd
repair
.
Probleemoplossing
Als er een fout optreedt bij het toepassen van machtigingen voor uw virtuele netwerk met behulp van 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 Azure Portal gebruiken om een Azure Cosmos DB-service-principal toe te voegen voor meer informatie.
Notitie
De Azure Cosmos DB-roltoewijzing wordt alleen gebruikt voor implementatiedoeleinden. Azure Managed Instanced voor Apache Cassandra heeft geen back-endafhankelijkheden van Azure Cosmos DB.
Resources opschonen
Als u dit beheerde exemplaarcluster niet meer gaat gebruiken, verwijdert u het met de volgende stappen:
- Selecteer resourcegroepen in het linkermenu van Azure Portal.
- Selecteer de resourcegroep die u eerder voor deze quickstart hebt gemaakt uit de lijst.
- Selecteer Resourcegroep verwijderen in het deelvenster Overzicht van de resourcegroep.
- 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 met het cluster.