Rychlý start: Vytvoření clusteru Azure Managed Instance for Apache Cassandra pomocí Azure CLI
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 vytvořit cluster se službou Azure Managed Instance for Apache Cassandra. Ukazuje také vytvoření datacentra a vertikální navýšení nebo snížení kapacity uzlů v rámci datacentra.
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.
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 .
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Důležité
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.
Vytvoření clusteru spravovaných instancí
Přihlaste se k portálu Azure Portal.
Nastavení ID předplatného v Azure CLI:
az account set -s <Subscription_ID>
Dále ve skupině prostředků vytvořte virtuální síť s vyhrazenou podsítí:
az network vnet create -n <VNet_Name> -l eastus2 -g <Resource_Group_Name> --subnet-name <Subnet Name>
Poznámka:
Nasazení spravované instance Azure pro Apache Cassandra vyžaduje přístup k internetu. Nasazení selže v prostředích, kde je omezený přístup k internetu. Ujistěte se, že neblokujete přístup ve vaší virtuální síti k následujícím důležitým službám Azure, které jsou nezbytné pro správné fungování spravované Cassandry:
- Azure Storage
- Azure KeyVault
- Azure Virtual Machine Scale Sets
- Monitorování Azure
- Microsoft Entra ID
- Zabezpečení Azure
U virtuální sítě použijte určitá zvláštní oprávnění, která vyžaduje spravovaná instance.
az role assignment create
Použijte příkaz, nahraďte<subscriptionID>
<resourceGroupName>
<vnetName>
a nahraďte příslušnými hodnotami:az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>
Poznámka:
Hodnoty
assignee
arole
hodnoty v předchozím příkazu jsou pevné hodnoty, zadejte tyto hodnoty přesně tak, jak je uvedeno v příkazu. Pokud to neuděláte, při vytváření clusteru dojde k chybám. Pokud při provádění tohoto příkazu dojde k nějakým chybám, možná nemáte oprávnění ke spuštění, obraťte se na správce a požádejte ho o oprávnění.Dále vytvořte cluster v nově vytvořené virtuální síti pomocí příkazu az managed-cassandra cluster create . Spusťte následující příkaz s hodnotou
delegatedManagementSubnetId
proměnné:Poznámka:
Hodnota proměnné,
delegatedManagementSubnetId
kterou zadáte níže, je úplně stejná jako hodnota--scope
, kterou jste zadali v předchozím příkazu:resourceGroupName='<Resource_Group_Name>' clusterName='<Cluster_Name>' location='eastus2' delegatedManagementSubnetId='/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/<VNet name>/subnets/<subnet name>' initialCassandraAdminPassword='myPassword' cassandraVersion='3.11' # set to 4.0 for a Cassandra 4.0 cluster az managed-cassandra cluster create \ --cluster-name $clusterName \ --resource-group $resourceGroupName \ --location $location \ --delegated-management-subnet-id $delegatedManagementSubnetId \ --initial-cassandra-admin-password $initialCassandraAdminPassword \ --cassandra-version $cassandraVersion \ --debug
Nakonec vytvořte pro cluster datové centrum se třemi uzly, skladovou jednotkou virtuálního počítače Standard D8s v4 s připojenými disky 4 P30 pro každý uzel pomocí příkazu az managed-cassandra datacenter create :
dataCenterName='dc1' dataCenterLocation='eastus2' 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ší podrobnosti najdete v úplných podrobnostech smlouvy SLA.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ří. Informace o podporovaných oblastech najdete tady . Ú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.
Po vytvoření datacentra, pokud chcete vertikálně navýšit kapacitu nebo snížit kapacitu uzlů v datacentru, spusťte příkaz az managed-cassandra datacenter update . Změňte hodnotu
node-count
parametru na požadovanou hodnotu:resourceGroupName='<Resource_Group_Name>' clusterName='<Cluster Name>' dataCenterName='dc1' dataCenterLocation='eastus2' az managed-cassandra datacenter update \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --data-center-name $dataCenterName \ --node-count 9
Připojení ke clusteru
Azure Managed Instance for Apache Cassandra nevytváří uzly s veřejnými IP adresami. Pokud se chcete připojit k nově vytvořenému clusteru Cassandra, musíte ve virtuální síti vytvořit další prostředek. Tento prostředek může být aplikace nebo virtuální počítač s nainstalovaným opensourcovým dotazovacím nástrojem CQLSH apache. K nasazení virtuálního počítače s Ubuntu můžete použít šablonu Resource Manageru.
Připojení z CQLSH
Po nasazení virtuálního počítače se pomocí SSH připojte k počítači a nainstalujte CQLSH, jak je znázorněno v následujících příkazech:
# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre
# Install the Cassandra libraries in order to get CQLSH:
echo "deb http://archive.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -
sudo apt-get update
sudo apt-get install cassandra
# Export the SSL variables:
export SSL_VERSION=TLSv1_2
export SSL_VALIDATE=false
# Connect to CQLSH (replace <IP> with the private IP addresses of a node in your Datacenter):
host=("<IP>")
initial_admin_password="Password provided when creating the cluster"
cqlsh $host 9042 -u cassandra -p $initial_admin_password --ssl
Připojení z aplikace
Stejně jako u CQLSH se připojení z aplikace pomocí některého z podporovaných klientských ovladačů Apache Cassandra vyžaduje povolení šifrování SSL a zakázání ověření certifikace. Podívejte se na ukázky pro připojení ke službě Azure Managed Instance for Apache Cassandra pomocí Javy, .NET, Node.js a Pythonu.
Zakázání ověření certifikátu se doporučuje, protože ověření certifikátu nebude fungovat, pokud nenamapujete adresy I.P uzlů clusteru na příslušnou doménu. Pokud máte interní zásady, které vyžadují ověření certifikátu SSL pro libovolnou aplikaci, můžete to usnadnit přidáním položek, jako je 10.0.1.5 host1.managedcassandra.cosmos.azure.com
v souboru hostitelů pro každý uzel. Při tomto přístupu byste také museli přidávat nové položky při vertikálním navýšení kapacity uzlů.
Pro Javu také důrazně doporučujeme povolit spekulativní zásady spouštění, kde jsou aplikace citlivé na koncovou latenci. Tady najdete ukázku, která ilustruje, jak to funguje a jak tuto zásadu povolit.
Poznámka:
Ve většině případů by nemělo být nutné konfigurovat ani instalovat certifikáty (rootCA, node nebo client, truststores atd.) pro připojení ke službě Azure Managed Instance for Apache Cassandra. Šifrování SSL je možné povolit pomocí výchozího úložiště důvěryhodnosti a hesla modulu runtime používaného klientem (viz java, .NET, Node.js a ukázky Pythonu), protože certifikáty Azure Managed Instance for Apache Cassandra budou pro toto prostředí důvěryhodné. Ve výjimečných případech, pokud certifikát není důvěryhodný, možná ho budete muset přidat do důvěryhodného úložiště.
Konfigurace klientských certifikátů (volitelné)
Konfigurace klientských certifikátů je volitelná. Klientská aplikace se může připojit ke službě Azure Managed Instance for Apache Cassandra, pokud byly provedeny výše uvedené kroky. Pokud ale chcete, můžete také vytvořit a nakonfigurovat klientské certifikáty pro ověřování. Obecně platí, že existují dva způsoby vytváření certifikátů:
- Certifikáty podepsané svým držitelem To znamená privátní a veřejný certifikát (bez certifikační autority) pro každý uzel – v tomto případě potřebujeme všechny veřejné certifikáty.
- Certifikáty podepsané certifikační autoritou Může se jednat o certifikační autoritu podepsanou svým držitelem nebo dokonce veřejnou certifikační autoritu. V tomto případě potřebujeme kořenový certifikát certifikační autority (viz pokyny k přípravě certifikátů SSL pro produkční prostředí) a všechny zprostředkovatele (pokud je to možné).
Pokud chcete implementovat ověřování certifikátů mezi klientem a uzlem nebo vzájemné zabezpečení mTLS (Transport Layer Security), musíte certifikáty zadat prostřednictvím Azure CLI. Následující příkaz nahraje a použije klientské certifikáty na úložiště důvěryhodnosti pro cluster spravované instance Cassandra (tj. nemusíte upravovat cassandra.yaml
nastavení). Po použití bude cluster vyžadovat, aby Cassandra ověřil certifikáty, když se klient připojí (viz cassandra require_client_auth: true
client_encryption_options).
resourceGroupName='<Resource_Group_Name>'
clusterName='<Cluster Name>'
az managed-cassandra cluster update \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--client-certificates /usr/csuser/clouddrive/rootCert.pem /usr/csuser/clouddrive/intermediateCert.pem
Řešení problému
Pokud při použití oprávnění pro vaši virtuální síť pomocí Azure CLI dojde k chybě, například nejde najít uživatele nebo instanční objekt v grafové databázi e5007d2c-4b13-4a74-9b6a-605d99f03501, můžete stejné oprávnění použít ručně z webu Azure Portal. Tady se dozvíte, jak to udělat.
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 už nepotřebujete, můžete pomocí az group delete
příkazu odebrat skupinu prostředků, spravovanou instanci a všechny související prostředky:
az group delete --name <Resource_Group_Name>
Další kroky
V tomto rychlém startu jste zjistili, jak vytvořit cluster Azure Managed Instance for Apache Cassandra pomocí Azure CLI. Teď můžete začít pracovat s clusterem: