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.

    Starta Cloud Shell i ett nytt fönster

  • 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.

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.

  1. Logga in på Azure-portalen.

  2. Skapa en resursgrupp med namnet "cassandra-mi-multi-region"

    az group create -l eastus2 -n cassandra-mi-multi-region
    
  3. Skapa 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-subnet
    
  4. Skapa 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-subnet
    

    Anteckning

    Vi lägger uttryckligen till olika IP-adressintervall för att säkerställa att inga fel uppstår vid peering.

  5. 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-traffic
    
  6. Fö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-traffic  
    

    Anteckning

    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.

  7. 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 peeringState
    
  8. Tillä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/vnetEastUs
    

    Anteckning

    Värdena assignee och i föregående kommando är fasta role vä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

  1. 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 \
       --debug
    
  2. Nä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 3
    
  3. Skapa 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 false
    

    Anteckning

    Värdet för kan --sku vä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 till true . 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.

  4. 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 $resourceGroupName
    
  5. Anslut 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:

  1. På den vänstra menyn i Azure Portal väljer du Resursgrupper.
  2. I listan väljer du den resursgrupp som du skapade för den här snabbstarten.
  3. I fönstret Översikt för resursgruppen väljer du Ta bort resursgrupp.
  4. 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.