Delen via


Quickstart: Een Azure Managed Instance voor Apache Cassandra-cluster maken met behulp van de Azure CLI

Azure Managed Instance voor Apache Cassandra is een volledig beheerde service voor pure opensource Apache Cassandra-clusters. Met de service kunnen configuraties ook worden overschreven, afhankelijk van de specifieke behoeften van elke workload, voor maximale flexibiliteit en controle.

In deze quickstart ziet u hoe u de Azure CLI-opdrachten gebruikt om een cluster te maken met Azure Managed Instance voor Apache Cassandra. Ook ziet u hoe u een datacenter maakt en knooppunten omhoog of omlaag schaalt binnen het datacenter.

Vereisten

Belangrijk

Voor dit artikel is Azure CLI versie 2.30.0 of hoger vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

Een beheerd exemplaarcluster maken

  1. Meld u aan bij het Azure-portaal.

  2. Stel uw abonnements-id in de Azure CLI in:

    az account set --subscription <Subscription_ID>
    
  3. Maak een virtueel netwerk met een toegewezen subnet in uw resourcegroep:

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

    Voor de implementatie van een exemplaar van Azure Managed Instance voor Apache Cassandra is internettoegang vereist. Implementatie mislukt in omgevingen waarin internettoegang is beperkt. Zorg ervoor dat u de toegang in uw virtuele netwerk niet blokkeert tot de volgende Azure-services die vereist zijn om Azure Managed Instance voor Apache Cassandra goed te laten werken:

    • Azure Storage
    • Azure Key Vault
    • Azure-schaalvergrotingssets voor virtuele machines
    • Azure Monitor
    • Microsoft Entra ID
    • Microsoft Defender for Cloud
  4. Pas deze specifieke machtigingen toe op het virtuele netwerk. Voor het beheerde exemplaar zijn deze vereist. Gebruik de az role assignment create-opdracht en vervang <subscriptionID>, <resourceGroupName> en <vnetName> door de juiste waarden:

    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>
    

    De assignee en role zijn vaste waarden. Voer deze waarden precies in zoals vermeld in de opdracht. Het niet doen leidt tot fouten bij het maken van het cluster. Als er fouten optreden wanneer u deze opdracht uitvoert, hebt u mogelijk geen machtigingen om deze uit te voeren. Neem contact op met uw Azure-beheerder voor machtigingen.

  5. Maak het cluster in uw zojuist gemaakte virtuele netwerk met behulp van de opdracht az managed-cassandra cluster create . Voer de volgende opdracht uit met de waarde van de delegatedManagementSubnetId variabele. (De waarde van delegatedManagementSubnetId is de naam van hetzelfde virtuele netwerk waarvoor de machtigingen zijn toegepast.)

    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. Maak een datacenter voor het cluster met drie virtuele machines (VM's). Gebruik de volgende configuratie:

    • VM-grootte: Standard E8s v5
    • Gegevensschijven: 4 P30-schijven die zijn gekoppeld aan elk van de geïmplementeerde VM's

    Nadat alle informatie is ingesteld, gebruikt u de opdracht 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
    

    Kies de waarde voor --sku uit de volgende beschikbare VM-grootten:

    • Standard_E8s_v5
    • Standard_E16s_v5
    • Standard_E20s_v5
    • Standard_E32s_v5

    Standaard is --availability-zone ingesteld op false. Als u beschikbaarheidszones wilt inschakelen, stelt u deze in op true. Beschikbaarheidszones helpen de beschikbaarheid van de service te vergroten. Zie Dienstverleningsovereenkomsten voor onlineservices.

    Beschikbaarheidszones worden niet ondersteund in alle Azure-regio's. Implementaties mislukken als u een regio selecteert waarin beschikbaarheidszones niet worden ondersteund. Zie de lijst met Azure-regio's voor ondersteunde regio's.

    De succesvolle implementatie van beschikbaarheidszones is onderhevig aan de beschikbaarheid van rekenresources in alle zones in de regio die u hebt geselecteerd. Implementaties mislukken als de VM-grootte die u hebt gekozen, niet beschikbaar is in de regio die u hebt geselecteerd.

  7. Nadat het datacenter is gemaakt, kunt u de opdracht az managed-cassandra datacenter update uitvoeren om uw cluster omlaag of omhoog te schalen. Wijzig de waarde van de node-count parameter in de gewenste waarde:

    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
    

Verbinding maken met uw cluster

Azure Managed Instance voor Apache Cassandra maakt geen knooppunten met openbare IP-adressen. Als u verbinding wilt maken met uw nieuwe Cassandra-cluster, moet u een andere resource binnen hetzelfde virtuele netwerk maken. Deze resource kan een toepassing of een VM zijn waarop Cassandra Query Language Shell (CQLSH) is geïnstalleerd. CQLSH is een opensource-queryhulpprogramma van Apache.

U kunt een Azure Resource Manager-sjabloon gebruiken om een Ubuntu-VM te implementeren.

Vanwege enkele bekende problemen met versies van Python raden we u aan een Ubuntu 22.04-installatiekopie te gebruiken die wordt geleverd met Python3.10.12 of een virtuele Python-omgeving om CQLSH uit te voeren.

Verbinding maken vanuit CQLSH

Nadat de VM is geïmplementeerd, gebruikt u Secure Shell om verbinding te maken met de machine en CQLSH te installeren. Gebruik de volgende opdrachten:

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

Controleer welke versies van Cassandra nog steeds worden ondersteund en selecteer de versie die u nodig hebt. U wordt aangeraden een stabiele versie te gebruiken.

Installeer de Cassandra-bibliotheken om CQLSH op te halen. Volg de officiële stappen in de Cassandra-documentatie.

Verbinding maken vanuit een toepassing

Net als bij CQLSH moet de versleuteling van Transport Layer Security/Secure Sockets Layer (TLS/SSL) zijn ingeschakeld en moet certificaatverificatie zijn uitgeschakeld wanneer u een van de ondersteunde Apache Cassandra-clientstuurprogramma's gebruikt om verbinding te maken vanuit een applicatie. Zie Java, .NET, Node.jsen Python voor voorbeelden.

U wordt aangeraden certificaatverificatie uit te schakelen, omdat dit niet werkt, tenzij u IP-adressen van uw clusterknooppunten toe wijst aan het juiste domein. Als een intern beleid vereist dat u TLS/SSL-certificaatverificatie uitvoert voor elke toepassing, voegt u vermeldingen zoals 10.0.1.5 host1.managedcassandra.cosmos.azure.com in uw hosts-bestand toe voor elk knooppunt om deze installatie te vergemakkelijken. Als u deze aanpak volgt, moet u ook nieuwe vermeldingen toevoegen wanneer u knooppunten omhoog schaalt.

Voor Java raden we u aan het speculatieve uitvoeringsbeleid in te schakelen waarbij toepassingen gevoelig zijn voor tail-latentie. Zie Speculatief uitvoeringsbeleid implementeren voor een demo die laat zien hoe deze aanpak werkt en hoe u het beleid inschakelt.

U hoeft doorgaans geen certificaten (zoals rootCA, nodeof clienttruststore) te configureren om verbinding te maken met Azure Managed Instance voor Apache Cassandra. TLS/SSL-versleuteling maakt gebruik van het standaardvertrouwensarchief en het gekozen runtimewachtwoord van de client. Zie Java, .NET, Node.jsen Python) voor voorbeeldcode. Certificaten worden standaard vertrouwd. Zo niet, voeg ze toe aan de vertrouwenswinkel.

Clientcertificaten configureren (optioneel)

Het configureren van clientcertificaten is optioneel. Een clienttoepassing kan verbinding maken met Azure Managed Instance voor Apache Cassandra nadat u de voorgaande stappen hebt uitgevoerd. Als u wilt, kunt u ook clientcertificaten voor verificatie maken en configureren. Over het algemeen zijn er twee manieren om certificaten te maken:

  • Zelfondertekende certificaten: Privé- en openbare certificaten zonder certificeringsinstantie (CA) voor elk knooppunt. In dit geval zijn alle openbare certificaten vereist.
  • Certificaten die zijn ondertekend door een CA: Certificaten die zijn uitgegeven door een zelfondertekende CA of een openbare CA. Voor deze installatie hebt u het basis-CA-certificaat en alle tussenliggende certificaten nodig, indien van toepassing. Zie SSL-certificaten voorbereiden voor productie voor meer informatie.

Als u verificatie van client-naar-knooppuntcertificaten of wederzijdse Transport Layer Security wilt implementeren, geeft u de certificaten op met behulp van de Azure CLI. Met de volgende opdracht worden uw clientcertificaten geüpload en toegepast op het vertrouwensarchief voor uw Azure Managed Instance voor Apache Cassandra-cluster. U hoeft de instellingen niet te wijzigen cassandra.yaml . Nadat de certificaten zijn toegepast, vereist het cluster Cassandra om de certificaten te verifiëren tijdens clientverbindingen. Zie voor meer informatie require_client_auth: true in Cassandra 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

Probleemoplossing

Als er een fout optreedt wanneer u machtigingen toepast op uw virtuele netwerk met behulp van de Azure CLI, kunt u dezelfde machtiging handmatig toepassen vanuit Azure Portal. Een voorbeeld van een dergelijke fout is 'Kan gebruiker of service-principal niet vinden in graafdatabase voor e5007d2c-4b13-4a74-9b6a-605d99f03501'. Zie De Azure-portal gebruiken om Azure Cosmos DB-service-principal toe te voegen voor meer informatie.

De Azure Cosmos DB-roltoewijzing wordt alleen gebruikt voor implementatiedoeleinden. Azure Managed Instanced voor Apache Cassandra heeft geen back-endafhankelijkheden op Azure Cosmos DB.

Resources opschonen

Wanneer uw resource niet meer nodig is, gebruikt u de az group delete opdracht om de resourcegroep, het beheerde exemplaar en alle gerelateerde resources te verwijderen:

az group delete --name <Resource_Group_Name>

Volgende stap

In deze quickstart hebt u geleerd hoe u een Azure Managed Instance voor Apache Cassandra-cluster maakt met behulp van de Azure CLI. U kunt nu aan de slag met het cluster: