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
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
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í najdete 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 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 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 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.
Přihlaste se k portálu Azure.
Vytvořte skupinu prostředků s názvem cassandra-mi-multi-region:
az group create --location eastus2 --name cassandra-mi-multi-region
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
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.
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
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í.
Zkontrolujte výstup předchozího příkazu. Ujistěte se, že hodnota peeringState je teď Připojeno. 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
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
arole
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 create
dojde 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
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
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
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 nafalse
. Pokud chcete povolit zóny dostupnosti, nastavte ho natrue
hodnotu . 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.
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 status\ --cluster-name $clusterName \ --resource-group $resourceGroupName
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};
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, žedc-eastus2
datové centrum už data obsahuje. V Azure CLI spusťte následující příkaz a spusťtenodetool rebuild
ho na každém uzlu v novémdc-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ů:
- V levé nabídce webu Azure Portal vyberte skupiny prostředků.
- V seznamu vyberte skupinu prostředků, kterou jste vytvořili pro účely tohoto rychlého startu.
- V podokně Přehled skupiny prostředků vyberte Odstranit skupinu prostředků.
- 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.