Sdílet prostřednictvím


Rychlý start: Vytvoření clusteru s více oblastmi pomocí služby Azure Managed Instance for Apache Cassandra

Azure Managed Instance for Apache Cassandra je plně spravovaná služba pro čistě opensourcové clustery Apache Cassandra. Služba také umožňuje přepsání konfigurací v závislosti na konkrétních potřebách jednotlivých úloh pro maximální flexibilitu a kontrolu.

Tento rychlý start ukazuje, jak pomocí příkazů Azure CLI nakonfigurovat cluster s více oblastmi v Azure.

Požadavky

  • Tento článek vyžaduje Azure CLI verze 2.30.0 nebo novější. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.
  • Použijte virtuální síť Azure s připojením k vašemu vlastnímu nebo místnímu prostředí. Další informace o připojení místních prostředí k Azure najdete v tématu Připojení místní sítě k Azure.

Nastavení síťového prostředí

Vzhledem k tomu, že všechna datacentra zřízená pomocí této služby musí být nasazena do vyhrazených podsítí pomocí injektování virtuální sítě, nakonfigurujte před nasazením odpovídající propojení sítě. Pro účely tohoto rychlého startu vytvořte cluster se dvěma datovými centry v samostatných oblastech: USA – východ a USA – východ 2. Nejprve vytvořte virtuální sítě pro každou oblast.

  1. Přihlaste se k portálu Azure.

  2. Vytvořte skupinu prostředků s názvem cassandra-mi-multi-region:

    az group create --location eastus2 --name cassandra-mi-multi-region
    
  3. Vytvořte první virtuální síť v oblasti USA – východ 2 s vyhrazenou podsítí:

    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. Vytvořte druhou virtuální síť v oblasti USA – východ a také s vyhrazenou podsítí:

     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
    

    Explicitně přidáváme různé rozsahy IP adres, abychom zajistili, že v peeringu nedojde k žádným chybám.

  5. Propojte první virtuální síť s druhou virtuální sítí:

    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. Pokud chcete obě virtuální sítě propojit, vytvořte další partnerský vztah mezi druhou virtuální sítí a první sítí:

    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
    

    Pokud přidáte další oblasti, každá virtuální síť vyžaduje peering z ní do všech ostatních virtuálních sítí a ze všech ostatních virtuálních sítí zpět do ní.

  7. Zkontrolujte výstup předchozího příkazu. Ujistěte se, že hodnota peeringState je nyní Connected. Tento výsledek můžete zkontrolovat také spuštěním následujícího příkazu:

    az network vnet peering show \
      --name MyVnet1ToMyVnet2 \
      --resource-group cassandra-mi-multi-region \
      --vnet-name vnetEastUs2 \
      --query peeringState
    
  8. U obou virtuálních sítí použijte určitá zvláštní oprávnění. Spravovaná instance Azure pro Apache Cassandra vyžaduje tato oprávnění. Spusťte následující příkaz: Nahraďte <SubscriptionID> ID předplatného:

    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
    

    Hodnoty assignee a role hodnoty v předchozím příkazu jsou pevné hodnoty. Zadejte tyto hodnoty přesně tak, jak je znázorněno v příkazu.

Pokud při spuštění az role assignment createdojde k chybám, možná nemáte oprávnění ke spuštění. Obraťte se na správce a ověřte oprávnění.

Vytvoření clusteru s více oblastmi

  1. Nasaďte prostředek clusteru. Nahraďte <Subscription ID> ID předplatného. Nasazení může trvat 5 až 10 minut.

    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. Po vytvoření prostředku clusteru můžete vytvořit datacentrum. Nejprve vytvořte datové centrum v oblasti USA – východ 2. Nahraďte <SubscriptionID> ID předplatného. Tato akce může trvat až 10 minut.

    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. Vytvořte datové centrum v oblasti USA – východ. Nahraďte <SubscriptionID> ID předplatného:

    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
    

    Můžete zvolit hodnotu --sku z následujících dostupných úrovní produktu:

    • 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

    Všimněte si také, že --availability-zone je nastavena na false. Pokud chcete povolit zóny dostupnosti, nastavte ho na true. Zóny dostupnosti zvyšují úroveň dohody o dostupnosti služeb (SLA). Další informace najdete v tématu Smlouvy o úrovni služeb pro službu Azure Managed Instance for Apache Cassandra.

    Zóny dostupnosti nejsou podporované ve všech oblastech. Nasazení selžou, pokud vyberete oblast, ve které nejsou zóny dostupnosti podporované. Podporované oblasti najdete v oblastech Azure s zónami dostupnosti.

    Úspěšné nasazení zón dostupnosti podléhá také dostupnosti výpočetních prostředků ve všech zónách v konkrétní oblasti. Nasazení můžou selhat, pokud vybraná úroveň produktu nebo kapacita není dostupná ve všech zónách.

  4. Po vytvoření druhého datacentra získejte stav uzlu a ověřte, že všechny uzly Cassandra proběhly úspěšně:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster status\
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Pak se pomocí CQLSH připojte ke clusteru. Pomocí následujícího dotazu CQL aktualizujte strategii replikace v jednotlivých prostorech klíčů tak, aby zahrnovala všechna datová centra v clusteru (systémové tabulky se aktualizují automaticky):

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    
  6. Pokud nakonec přidáte datacentrum do clusteru, který už obsahuje data, musíte spustit, rebuild abyste mohli replikovat historická data. V tomto případě předpokládejme, že dc-eastus2 datacentrum už obsahuje data. V Azure CLI spusťte následující příkaz, který provede nodetool rebuild na každém uzlu ve vašem novém datovém centru. Nahraďte <ip address> IP adresou uzlu:

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

    Nepovolujte klientům aplikací zapisovat do nového datacentra, dokud neuplatníte změny replikace v prostoru klíčů. V opačném případě opětovné sestavení nefunguje. Pak musíte vytvořit žádost o podporu , aby za vás mohl náš tým běžet repair .

Řešení problému

Pokud při použití oprávnění pro virtuální síť pomocí Azure CLI dojde k chybě, můžete stejné oprávnění použít ručně z webu Azure Portal. Příkladem chyby může být "V grafové databázi e5007d2c-4b13-4a74-9b6a-605d99f03501nelze najít uživatele nebo instanční objekt." Další informace najdete v tématu Použití webu Azure Portal k přidání instančního objektu služby Azure Cosmos DB.

Přiřazení role Azure Cosmos DB se používá jenom pro účely nasazení. Spravovaná instance Azure pro Apache Cassandra nemá žádné back-endové závislosti ve službě Azure Cosmos DB.

Vyčištění prostředků

Pokud nebudete dál používat tento cluster spravovaných instancí, odstraňte ho následujícím postupem:

  1. V levé nabídce webu Azure Portal vyberte skupiny prostředků.
  2. V seznamu vyberte skupinu prostředků, kterou jste vytvořili pro účely tohoto rychlého startu.
  3. V podokně Přehled skupiny prostředků vyberte Odstranit skupinu prostředků.
  4. V dalším podokně zadejte název skupiny prostředků, která se má odstranit, a pak vyberte Odstranit.

Další krok

V tomto rychlém startu jste zjistili, jak vytvořit cluster s více oblastmi pomocí Azure CLI a Azure Managed Instance for Apache Cassandra. Teď můžete začít pracovat s clusterem.