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

Spravovaná instance Azure pro Apache Cassandra poskytuje automatizované operace nasazení a škálování pro spravovaná datacentra Apache Cassandra s otevřeným zdrojem. Tato služba pomáhá zrychlit hybridní scénáře a omezit průběžnou údržbu.

Tento rychlý start ukazuje použití příkazů Azure CLI ke konfiguraci clusteru s více oblastmi v Azure.

Požadavky

  • V nástroji použijte prostředí Bash Azure Cloud Shell.

    Spuštění služby Cloud Shell v novém okně

  • Pokud tomu dáváte přednost, můžete nainstalovat Azure CLI a spouštět referenční příkazy CLI.

    • Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení jsou popsané v tématu Přihlášení pomocí Azure CLI.

    • Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.

    • Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.

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

  • 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 Připojení připojení místní sítě k Azure.

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

Vzhledem k tomu, že všechna datacentra zřízená s touto službou musí být nasazená do vyhrazených podsítí pomocí injektáže virtuální sítě, je nutné před nasazením nakonfigurovat odpovídající partnerský vztah sítě, aby se zajistilo správné fungování clusteru ve více oblastech. Vytvoříme cluster se dvěma datacentra v samostatných oblastech: USA – východ a USA – východ 2. Nejprve musíme vytvořit virtuální sítě pro každou oblast.

  1. Přihlaste se k webu Azure Portal.

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

    az group create -l eastus2 -n cassandra-mi-multi-region
    
  3. Vytvořte první virtuální síť v USA – východ 2 s vyhrazenou podsí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. Teď vytvořte druhou virtuální síť v USA – východ, a to také s vyhrazenou podsí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
    

    Poznámka

    Explicitně přidáme různé rozsahy IP adres, aby při partnerských vztahech nebyly žádné chyby.

  5. Teď potřebujeme na peerovat první virtuální síť s druhou virtuální sítí:

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

    az network vnet peering create \
      -g cassandra-mi-multi-region \
      -n MyVnet2ToMyVnet1 \
      --vnet-name vnetEastUs \
      --remote-vnet vnetEastUs2 \
      --allow-vnet-access \
      --allow-forwarded-traffic  
    

    Poznámka

    Pokud přidáváte další oblasti, bude každá virtuální síť vyžadovat partnerský vztah mezi virtuálními sítěmi a všemi ostatními virtuálními sítěmi.

  7. Zkontrolujte výstup předchozího příkazu a ujistěte se, že hodnota peeringState je teď Připojeno. Můžete to také zkontrolovat 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. Dále u obou virtuálních sítí použijte některá zvláštní oprávnění, která vyžaduje spravovaná instance Azure pro Apache Cassandra. Spusťte následující příkaz a nezapomeňte nahradit <SubscriptionID> ID vašeho 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 a v předchozím příkazu jsou pevné hodnoty. Zadejte tyto hodnoty přesně assignee role tak, jak je uvedeno v příkazu . Pokud to neuvedete, dojde při vytváření clusteru k chybám. Pokud při provádění tohoto příkazu narazíte na nějaké chyby, možná nemáte oprávnění k jeho spuštění, obraťte se na správce s jeho oprávněními.

Vytvoření clusteru s více oblastmi

  1. Teď, když máme zavedené odpovídající sítě, jsme připraveni nasadit prostředek clusteru (nahraďte <Subscription ID> ID vašeho předplatného). 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 jste připraveni vytvořit datové centrum. Nejprve vytvořte datové centrum v USA – východ 2 <SubscriptionID> (nahraďte ID vašeho předplatného). Může to 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. Dále vytvořte datové centrum v USA – východ (nahraďte <SubscriptionID> ID vašeho 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 pro --sku můžete zvolit z následujících dostupných skladové položky:

    • 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 --availability-zone také, že je nastavená na false . Pokud chcete povolit zóny dostupnosti, nastavte tuto možnost na true . Zóny dostupnosti zvyšují sla dostupnosti služby. Další podrobnosti najdete v úplných podrobnostech o sla tady.

    Upozornění

    Zóny dostupnosti nejsou podporované ve všech oblastech. Pokud vyberete oblast, ve které nejsou zóny dostupnosti podporované, nasazení selžou. Podporované oblasti najdete tady. Úspěšné nasazení zón dostupnosti také závisí na dostupnosti výpočetních prostředků ve všech zónách v dané oblasti. Nasazení selžou, pokud vybraná SKU 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 se všechny uzly Cassandra úspěšně objevily:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster node-status \
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Nakonec se pomocí CQLSH připojte ke clusteru a pomocí následujícího dotazu CQL aktualizujte strategii replikace v každém prostoru klíčů tak, aby zahrnovala všechna datacentra v clusteru:

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    

    Musíte také aktualizovat tabulky hesel:

     ALTER KEYSPACE "system_auth" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3}
    

Řešení potíží

Pokud při použití oprávnění pro Virtual Network pomocí Azure CLI dojde k chybě, například V grafové databázi nelze najít uživatele nebo instanční objekt pro e5007d2c-4b13-4a74-9b6a-605d99f03501, můžete stejné oprávnění použít ručně z Azure Portal. Postup najdete tady.

Poznámka

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

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

Pokud tento cluster spravovaných instancí nadále používat nadále, odstraňte ho pomocí následujících kroků:

  1. V nabídce vlevo v části Azure Portal vyberte Skupiny prostředků.
  2. V seznamu vyberte skupinu prostředků, kterou jste vytvořili pro tento rychlý start.
  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 spravované instance Azure pro Apache Cassandra. Teď můžete začít pracovat s clusterem.