Sdílet prostřednictvím


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 pro maximální flexibilitu a kontrolu.

Tento rychlý start ukazuje, jak pomocí příkazů Azure CLI vytvořit cluster se službou Azure Managed Instance for Apache Cassandra. Ukazuje také, jak vytvořit datacentrum a škálovat uzly nahoru nebo dolů v rámci datacentra.

Požadavky

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 do Azure Portalu.

  2. Nastavení 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 služby Azure Managed Instance for 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í služby Azure Managed Instance for Apache Cassandra:

    • Azure Storage
    • Azure Key Vault
    • Škálovací sady virtuálních strojů Azure
    • 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: 4 disky P30 připojené k jednotlivým nasazeným virtuálním počítačům

    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 naleznete v tématu Smlouvy o rozsahu služeb pro online služby.

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

    Ú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 for 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 Manageru .

Vzhledem k některým známým problémům s verzemi Pythonu doporučujeme použít image Ubuntu 22.04, která je součástí Pythonu 3.10.12 nebo virtuálního prostředí Pythonu ke spuštění 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 javě, .NET, Node.jsa Pythonu.

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 Javu doporučujeme povolit spekulativní zásady spouštění , ve kterých jsou aplikace citlivé na koncovou latenci. Ukázku, která ukazuje, jak tento přístup funguje a jak tuto zásadu povolit, najdete v tématu Implementace spekulativních zásad spouštění.

Pro připojení ke službě Azure Managed Instance for Apache Cassandra obvykle nemusíte konfigurovat certifikáty (například rootCA, nodeclient, nebotruststore). Š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 javě, .NET, Node.jsa Pythonu). 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á. Klientská aplikace se může po provedení předchozích kroků připojit ke službě Azure Managed Instance for 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 cluster Azure Managed Instance for 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 webu Azure Portal. 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í webu Azure Portal k přidání instančního objektu služby Azure Cosmos DB.

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

Vyčiště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 cluster Azure Managed Instance for Apache Cassandra pomocí Azure CLI. Teď můžete začít pracovat s clusterem: