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, což umožňuje maximální flexibilitu a kontrolu tam, kde je to potřeba.

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 vyšší. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

  • Azure Virtual Network s připojením k místnímu nebo místnímu prostředí. Další informace o připojení místních prostředí k Azure najdete v článku o Připojení místní síti 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 nasazená do vyhrazených podsítí pomocí injektáže virtuální sítě, nakonfigurujte před nasazením odpovídající partnerský vztah 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
    

    Poznámka:

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

  5. Vytvoření partnerského vztahu první virtuální sítě k druhé virtuální síti:

    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í:

    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
    

    Poznámka:

    Pokud přidáte další oblasti, každá virtuální síť od ní vyžaduje partnerský vztah se všemi ostatními virtuálními sítěmi a ze všech ostatních virtuálních sítí.

  7. Zkontrolujte výstup předchozího příkazu. Ujistěte se, že hodnota peeringState je teď Připojení ed. 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
    

    Poznámka:

    Hodnoty assignee a role hodnoty v předchozím příkazu jsou pevné hodnoty. Zadejte tyto hodnoty přesně jako 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 pět 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 datové centrum. 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
    

    Poznámka:

    Hodnotu lze --sku vybrat z následujících dostupných skladových položek:

    • 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 truehodnotu . Zóny dostupnosti zvyšují smlouvu SLA o dostupnosti služby. Další informace najdete v tématu SLA pro službu Azure Managed Instance for Apache Cassandra.

    Upozorňující

    Zóny dostupnosti nejsou podporovány ve všech oblastech. Pokud vyberete oblast, ve které nejsou zóny dostupnosti podporované, nasazení se nezdaří. 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 dané oblasti. Nasazení může selhat, pokud vybraná skladová položka nebo kapacita není dostupná ve všech zónách.

  4. Jakmile se vytvoří druhé datové centrum, 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 node-status \
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Pak se připojte ke clusteru pomocí CQLSH a 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. A konečně, pokud přidáváte datové centrum do clusteru, kde už existují data, budete muset spustit rebuild , abyste mohli replikovat historická data. V tomto případě předpokládáme, že dc-eastus2 datové centrum už data obsahuje. V Azure CLI spusťte následující příkaz a spusťte nodetool rebuild ho na každém uzlu v novém dc-eastus datacentru a 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"=""
    

    Upozorňující

    Klientům aplikací byste neměli povolit zápis do nového datového centra, dokud neuplatníte změny replikace prostoru klíčů. Jinak opětovné sestavení nebude fungovat a budete muset vytvořit žádost o podporu, aby mohl náš tým běžet repair vaším jménem.

Ř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 nenaleznutí uživatele nebo instančního objektu v grafové databázi e5007d2c-4b13-4a74-9b6a-605d99f03501. Další informace najdete v tématu Použití webu Azure Portal k přidání instančního objektu služby Azure Cosmos DB.

Poznámka:

Přiřazení role Azure Cosmos DB se používá jenom pro účely nasazení. Spravovaná instance Azure pro Apache Cassandra nemá žádné závislosti back-endu 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 pomocí následujících kroků:

  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 okně zadejte název skupiny prostředků, která se má odstranit, a pak vyberte Odstranit.

Další kroky

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.