Snabbstart: Skapa ett kluster för flera regioner med Azure Managed Instance för Apache Cassandra
Azure Managed Instance för Apache Cassandra tillhandahåller automatiserade distributions- och skalningsåtgärder för hanterade Apache Cassandra-datacenter med öppen källkod. Den här tjänsten hjälper dig att påskynda hybridscenarier och minska pågående underhåll.
Den här snabbstarten visar hur du använder Azure CLI-kommandon för att konfigurera ett kluster för flera regioner i Azure.
Förutsättningar
Använd bash-miljön i Azure Cloud Shell.
Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Fler inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Den här artikeln kräver Azure CLI version 2.30.0 eller senare. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
Azure Virtual Network med anslutning till din lokala eller lokala miljö. Mer information om hur du ansluter lokala miljöer till Azure finns i artikeln Anslut ett lokalt nätverk till Azure.
Konfigurera nätverksmiljön
Eftersom alla datacenter som etableras med den här tjänsten måste distribueras till dedikerade undernät med hjälp av VNet-ktion, är det nödvändigt att konfigurera lämplig nätverks-peering före distributionen för att säkerställa att klustret för flera regioner kommer att fungera korrekt. Vi ska skapa ett kluster med två datacenter i separata regioner: USA, östra och USA, östra 2. Först måste vi skapa de virtuella nätverken för varje region.
Logga in på Azure-portalen.
Skapa en resursgrupp med namnet "cassandra-mi-multi-region"
az group create -l eastus2 -n cassandra-mi-multi-regionSkapa det första virtuella nätverket i USA, östra 2 med ett dedikerat undernät:
az network vnet create \ -n vnetEastUs2 \ -l eastus2 \ -g cassandra-mi-multi-region \ --address-prefix 10.0.0.0/16 \ --subnet-name dedicated-subnetSkapa nu det andra virtuella nätverket i USA, östra, även med ett dedikerat undernät:
az network vnet create \ -n vnetEastUs \ -l eastus \ -g cassandra-mi-multi-region \ --address-prefix 192.168.0.0/16 \ --subnet-name dedicated-subnetAnteckning
Vi lägger uttryckligen till olika IP-adressintervall för att säkerställa att inga fel uppstår vid peering.
Nu behöver vi peer-peering av det första virtuella nätverket till det andra virtuella nätverket:
az network vnet peering create \ -g cassandra-mi-multi-region \ -n MyVnet1ToMyVnet2 \ --vnet-name vnetEastUs2 \ --remote-vnet vnetEastUs \ --allow-vnet-access \ --allow-forwarded-trafficFör att ansluta de två virtuella nätverken skapar du en annan peering mellan det andra virtuella nätverket och det första:
az network vnet peering create \ -g cassandra-mi-multi-region \ -n MyVnet2ToMyVnet1 \ --vnet-name vnetEastUs \ --remote-vnet vnetEastUs2 \ --allow-vnet-access \ --allow-forwarded-trafficAnteckning
Om du lägger till fler regioner kräver varje VNet peering från det till alla andra virtuella nätverk och från alla andra virtuella nätverk till det.
Kontrollera utdata från föregående kommando och kontrollera att värdet för "peeringState" nu är "Ansluten". Du kan också kontrollera detta genom att köra följande kommando:
az network vnet peering show \ --name MyVnet1ToMyVnet2 \ --resource-group cassandra-mi-multi-region \ --vnet-name vnetEastUs2 \ --query peeringStateTillämpa sedan vissa särskilda behörigheter för båda de virtuella nätverken, som krävs av Azure Managed Instance för Apache Cassandra. Kör följande och ersätt med ditt
<SubscriptionID>prenumerations-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/vnetEastUsAnteckning
Värdena
assigneeoch i föregående kommando är fastarolevärden. Ange dessa värden exakt som anges i kommandot. Om du inte gör det uppstår fel när klustret skapas. Om det uppstår fel när du kör det här kommandot kanske du inte har behörighet att köra det. Kontakta administratören om behörighet.
Skapa ett kluster för flera regioner
Nu när vi har rätt nätverk på plats är vi redo att distribuera klusterresursen (ersätt med
<Subscription ID>ditt prenumerations-ID). kan ta mellan 5 och 10 minuter: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 \ --debugNär klusterresursen har skapats är du redo att skapa ett datacenter. Skapa först ett datacenter i USA, östra 2 (ersätt med
<SubscriptionID>ditt prenumerations-ID). Det kan ta upp till 10 minuter: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 3Skapa sedan ett datacenter i USA, östra (ersätt
<SubscriptionID>med ditt prenumerations-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 falseAnteckning
Värdet för kan
--skuväljas från följande tillgängliga SKU:er:- 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
Observera också att
--availability-zoneär inställt påfalse. Om du vill aktivera tillgänglighetszoner anger du detta tilltrue. Tillgänglighetszoner ökar tjänstens serviceavtal för tillgänglighet. Mer information finns i den fullständiga SLA-informationen här.Varning
Tillgänglighetszoner stöds inte i alla regioner. Distributioner misslyckas om du väljer en region där tillgänglighetszoner inte stöds. Här kan du se vilka regioner som stöds. En lyckad distribution av tillgänglighetszoner beror också på tillgängligheten för beräkningsresurser i alla zoner i den angivna regionen. Distributioner kan misslyckas om den SKU som du har valt, eller kapaciteten, inte är tillgänglig i alla zoner.
När det andra datacentret har skapats hämtar du nodstatusen för att verifiera att alla Cassandra-noder har skapats:
resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' az managed-cassandra cluster node-status \ --cluster-name $clusterName \ --resource-group $resourceGroupNameAnslut slutligen till klustret med CQLSH och använd följande CQL-fråga för att uppdatera replikeringsstrategin i varje nyckelutrymme så att alla datacenter ingår i klustret:
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};Du måste också uppdatera lösenordstabellerna:
ALTER KEYSPACE "system_auth" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3}
Felsökning
Om du stöter på ett fel när du tillämpar behörigheter på din Virtual Network med Azure CLI, till exempel Cannot find user or service principal in graph database for 'e5007d2c-4b13-4a74-9b6a-605d99f03501', kan du tillämpa samma behörighet manuellt från Azure Portal. Lär dig hur du gör detta här.
Anteckning
Den Azure Cosmos DB rolltilldelningen används endast i distributionssyfte. Azure Managed Instanced för Apache Cassandra har inga beroenden för Azure Cosmos DB.
Rensa resurser
Om du inte tänker fortsätta använda det här hanterade instansklustret tar du bort det med följande steg:
- På den vänstra menyn i Azure Portal väljer du Resursgrupper.
- I listan väljer du den resursgrupp som du skapade för den här snabbstarten.
- I fönstret Översikt för resursgruppen väljer du Ta bort resursgrupp.
- I nästa fönster anger du namnet på den resursgrupp som ska tas bort och väljer sedan Ta bort.
Nästa steg
I den här snabbstarten har du lärt dig hur du skapar ett kluster för flera regioner med hjälp av Azure CLI och Azure Managed Instance för Apache Cassandra. Nu kan du börja arbeta med klustret.
