Rychlý start: Vytvoření Azure Managed Instance pro cluster Apache Cassandra pomocí Azure CLI

Azure Managed Instance pro 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 vytvořit cluster s Azure Managed Instance pro Apache Cassandra. Ukazuje také, jak vytvořit datacentrum a škálovat uzly nahoru nebo dolů v rámci datacentra.

Požadavky

  • Použijte virtuální síť Azure s připojením k vašemu autonomnímu nebo místnímu prostředí. Další informace o připojení místních prostředí k Azure najdete v tématu Pojení místní sítě k Azure.
  • Pokud nemáte předplatné Azure, vytvořte si účet free než začnete.

Důležité

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.

Vytvoření clusteru spravovaných instancí

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

  2. Nastavte ID předplatného v Azure CLI:

    az account set --subscription <Subscription_ID>
    
  3. Vytvořte virtuální síť s vyhrazenou podsítí ve vaší skupině prostředků.

    az network vnet create --name <VNet_Name> --location eastus2 \
      --resource-group <Resource_Group_Name> --subnet-name <Subnet Name>
    

    Nasazení instance Azure Managed Instance 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 ve virtuální síti neblokujete přístup k následujícím službám Azure, které jsou potřeba pro správné fungování Azure Managed Instance pro Apache Cassandra:

    • Azure Storage
    • Azure Key Vault
    • Azure Sady pro Škálování Virtuálních Strojů
    • Azure Monitor
    • Microsoft Entra ID
    • Microsoft Defender for Cloud
  4. Použijte tato konkrétní oprávnění pro virtuální síť. Spravovaná instance je vyžaduje. Použijte příkaz az role assignment create a nahraďte <subscriptionID>, <resourceGroupName> a <vnetName> 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>
    

    Hodnoty assignee a role jsou pevné. Zadejte tyto hodnoty přesně tak, jak je uvedeno v příkazu. Pokud toto neprovedete, vede to k chybám při vytváření clusteru. Pokud při spuštění tohoto příkazu dojde k nějakým chybám, možná nemáte oprávnění k jeho spuštění. Požádejte o oprávnění správce Azure.

  5. 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é. (Hodnota delegatedManagementSubnetId je stejný název virtuální sítě, pro který byla použita oprávnění.)

    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='5.0' # 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
    
  6. Vytvoření datacentra pro cluster se třemi virtuálními počítači Použijte následující konfiguraci:

    • Velikost virtuálního počítače: Standard E8s v5
    • Datové disky: K jednotlivým nasazeným virtuálním počítačům jsou připojené čtyři disky P30. Při nastavování velikosti úložiště naplánujte maximální trvalé využití 50%, abyste zajistili odpovídající prostor pro náhrobky a využití disků systémovými službami. Kromě toho zálohy dočasně spotřebovávají místo na místním disku před uložením do úložiště objektů blob.

    Po dokončení všech informací použijte příkaz 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
    

    Vyberte hodnotu --sku z následujících dostupných velikostí virtuálních počítačů:

    • Standard_E8s_v5
    • Standard_E16s_v5
    • Standard_E20s_v5
    • Standard_E32s_v5

    Ve výchozím nastavení je --availability-zone nastavena na false. Pokud chcete povolit zóny dostupnosti, nastavte ho na true. Zóny dostupnosti pomáhají zvýšit dostupnost služby. Další informace najdete v tématu Smlouvy o úrovni služeb pro online služby.

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

    Úspěšné nasazení zón dostupnosti podléhá dostupnosti výpočetních prostředků ve všech zónách ve vybrané oblasti. Nasazení selžou, pokud vybraná velikost virtuálního počítače není dostupná v oblasti, kterou jste vybrali.

  7. Po vytvoření datacentra můžete spuštěním příkazu az managed-cassandra datacenter update vertikálně snížit nebo vertikálně navýšit kapacitu clusteru. Změňte hodnotu parametru node-count 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 pro Apache Cassandra nevytváří uzly s veřejnými IP adresami. Pokud se chcete připojit k novému clusteru Cassandra, musíte ve stejné 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 prostředím CQLSH (Cassandra Query Language Shell). CQLSH je opensourcový nástroj pro dotazy Apache.

K nasazení virtuálního počítače s Ubuntu můžete použít šablonu Azure Resource Manager.

Vzhledem k některým známým problémům s verzemi Pythonu doporučujeme použít image Ubuntu 22.04, která obsahuje Python 3.10.12, nebo virtuální prostředí Pythonu, abyste spustili CQLSH.

Připojení z CQLSH

Po nasazení virtuálního počítače se pomocí Secure Shellu připojte k počítači a nainstalujte CQLSH. Použijte následující příkazy:

# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre

Zkontrolujte, které verze Cassandra jsou stále podporované , a vyberte verzi, kterou potřebujete. Doporučujeme používat stabilní verzi.

Nainstalujte knihovny Cassandra a získejte CQLSH. Postupujte podle oficiálních kroků v dokumentaci Cassandra.

Připojení z aplikace

Stejně jako u CQLSH musí být při použití některého z podporovaných klientských ovladačů Apache Cassandra pro připojení z aplikace povolené šifrování TLS/SSL (Transport Layer Security Security/Secure Sockets Layer) a ověření certifikátu musí být zakázané. Ukázky najdete v tématech Java, .NET, Node.js a Python.

Doporučujeme zakázat ověření certifikátu, protože nefunguje, pokud nenamapujete IP adresy uzlů clusteru na příslušnou doménu. Pokud interní zásady vyžadují, abyste pro každou aplikaci provedli ověření certifikátu TLS/SSL, přidejte položky jako 10.0.1.5 host1.managedcassandra.cosmos.azure.com v souboru hostitelů pro každý uzel, aby se usnadnilo toto nastavení. Pokud tento přístup přijmete, musíte také přidat nové položky pokaždé, když zvýšíte kapacitu uzlů.

Pro Java doporučujeme povolit politiku spekulativního provádění v případech, kdy jsou aplikace citlivé na latenci na konci. Pro ukázku, která ilustruje, jak tento přístup funguje, a jak tuto zásadu povolit, viz článek Implementace zásady spekulativního výkonu.

Pro připojení k Azure Managed Instance pro Apache Cassandra obvykle nemusíte konfigurovat certifikáty (například rootCA, node, client nebo truststore). Šifrování TLS/SSL používá výchozí úložiště důvěryhodných certifikátů a heslo zvolené klientem pro runtime. Vzorový kód najdete v tématu Java, .NET, Node.js a Python). Certifikáty jsou ve výchozím nastavení důvěryhodné. Pokud ne, přidejte je do úložiště důvěryhodnosti.

Konfigurace klientských certifikátů (volitelné)

Konfigurace klientských certifikátů je volitelná. Po provedení předchozích kroků se klientská aplikace může připojit k Azure Managed Instance pro Apache Cassandra. Pokud chcete, můžete také vytvořit a nakonfigurovat klientské certifikáty pro ověřování. Obecně platí, že existují dva způsoby, jak vytvořit certifikáty:

  • Certifikáty podepsané svým držitelem: Privátní a veřejné certifikáty bez certifikační autority (CA) pro každý uzel. V tomto případě jsou vyžadovány všechny veřejné certifikáty.
  • Certifikáty podepsané certifikační autoritou: Certifikáty vydané certifikační autoritou podepsané svým držitelem nebo veřejnou certifikační autoritou. Pro toto nastavení potřebujete kořenový certifikát certifikační autority a všechny zprostředkující certifikáty( pokud je to možné). Další informace najdete v tématu Příprava certifikátů SSL pro produkční prostředí.

Pokud chcete implementovat ověřování certifikátů mezi klientem nebo vzájemné zabezpečení vrstvy přenosu, zadejte certifikáty pomocí Azure CLI. Následující příkaz nahraje a použije klientské certifikáty do úložiště důvěryhodnosti pro váš Azure Managed Instance pro cluster Apache Cassandra. Nemusíte měnit cassandra.yaml nastavení. Po aplikaci certifikátů cluster vyžaduje, aby Cassandra ověřovala certifikáty během klientských připojení. Další informace najdete require_client_auth: true v client_encryption_options Cassandra.

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 virtuální síť pomocí Azure CLI dojde k chybě, můžete stejné oprávnění použít ručně z portálu Azure. Příkladem takové chyby je "Nelze najít uživatele nebo instanční objekt v grafové databázi pro e5007d2c-4b13-4a74-9b6a-605d99f03501". Další informace najdete v tématu Použití portálu Azure k přidání Azure Cosmos DB instančního objektu.

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

Uvolnění prostředků

Pokud už prostředek nepotřebujete, pomocí az group delete příkazu odeberte skupinu prostředků, spravovanou instanci a všechny související prostředky:

az group delete --name <Resource_Group_Name>

Další krok

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