Freigeben über


Schnellstart: Erstellen eines Clusters vom Typ „Azure Managed Instance for Apache Cassandra“ mithilfe der Azure CLI

Azure Managed Instance for Apache Cassandra ist ein vollständig verwalteter Dienst für reine Open-Source Apache Cassandra-Cluster. Der Dienst ermöglicht es auch, Konfigurationen zu überschreiben, je nach den spezifischen Anforderungen jeder Workload, die maximale Flexibilität und Kontrolle bei Bedarf ermöglicht.

In dieser Schnellstartanleitung wird veranschaulicht, wie Sie die Befehle der Azure-Befehlszeilenschnittstelle (CLI) verwenden, um einen Cluster mit azure Managed Instance für Apache Cassandra zu erstellen. Außerdem wird gezeigt, wie Sie ein Rechenzentrum erstellen und Knoten innerhalb des Rechenzentrums nach oben oder unten skalieren.

Voraussetzungen

Wichtig

Für diesen Artikel ist die Azure CLI-Version 2.30.0 oder höher erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.

Erstellen eines Managed Instance-Clusters

  1. Melden Sie sich beim Azure-Portal an.

  2. Legen Sie Ihre Abonnement-ID über die Azure CLI fest:

    az account set --subscription <Subscription_ID>
    
  3. Erstellen Sie als Nächstes ein virtuelles Netzwerk mit einem dedizierten Subnetz in Ihrer Ressourcengruppe:

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

    Hinweis

    Die Bereitstellung einer azure managed Instance für Apache Cassandra erfordert Internetzugriff. In Umgebungen, in denen der Internetzugriff eingeschränkt ist, tritt ein Fehler bei der Bereitstellung auf. Stellen Sie sicher, dass Sie den Zugriff in Ihrem virtuellen Netzwerk nicht auf die folgenden Azure-Dienste blockieren, die erforderlich sind, damit verwaltete Cassandra ordnungsgemäß funktioniert:

    • Azure Storage
    • Azure Key Vault
    • Skalierungssätze für virtuelle Azure-Computer (VMSS)
    • Azure-Überwachung
    • Microsoft Entra ID
    • Azure Security
  4. Wenden Sie diese spezifischen Berechtigungen auf das virtuelle Netzwerk an. Für die verwaltete Instanz sind sie erforderlich. Verwenden Sie den Befehl az role assignment create, und ersetzen Sie <subscriptionID>, <resourceGroupName> und <vnetName> durch die entsprechenden Werte:

    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>
    

    Hinweis

    Die assignee und role sind feste Werte. Geben Sie diese Werte genau wie im Befehl erwähnt ein. Das Nichtdurchführen führt zu Fehlern beim Erstellen des Clusters. Wenn beim Ausführen dieses Befehls Fehler auftreten, sind Sie möglicherweise nicht berechtigt, ihn auszuführen. Wenden Sie sich für Berechtigungen an Ihren Azure-Administrator.

  5. Erstellen Sie als Nächstes den Cluster in Ihrem neu erstellten virtuellen Netzwerk, indem Sie den Befehl "az managed-cassandra cluster create" verwenden . Führen Sie den folgenden Befehl mit dem Wert der Variablen delegatedManagementSubnetId aus:

    Hinweis

    Der Wert des delegatedManagementSubnetId ist derselbe virtuelle Netzwerkname, auf den die Berechtigungen angewendet wurden.

    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
    
  6. Erstellen Sie ein Rechenzentrum für den Cluster mit drei virtuellen Computern mit der folgenden Konfiguration:

    • VM-Größe: Standard E8s v5

    • Datenträger: 4 P30-Datenträger, die an jeden der bereitgestellten virtuellen Computer angefügt sind

    • Wenn alles vorbereitet ist, verwenden Sie den Befehl 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
    

    Hinweis

    Aus den folgenden verfügbaren VM-Größen kann der Wert für --sku ausgewählt werden.

    • Standard_E8s_v5
    • Standard_E16s_v5
    • Standard_E20s_v5
    • Standard_E32s_v5

    Standardmäßig ist --availability-zone auf falsefestgelegt. Um Verfügbarkeitszonen zu aktivieren, legen Sie sie auf true. Verfügbarkeitszonen tragen dazu bei, die Verfügbarkeit des Diensts zu erhöhen. Weitere Informationen finden Sie unter SLA für Onlinedienste.

    Warnung

    Verfügbarkeitszonen werden in allen Azure-Regionen nicht unterstützt. Bereitstellungen schlagen fehl, wenn Sie eine Region auswählen, in der Verfügbarkeitszonen nicht unterstützt werden. Unterstützte Regionen finden Sie in der Azure-Regionsliste.

    Die erfolgreiche Bereitstellung von Verfügbarkeitszonen unterliegt der Verfügbarkeit von Computeressourcen in allen ausgewählten Zonen in der ausgewählten Region. Bereitstellungen schlagen fehl, wenn die von Ihnen ausgewählte Größe des virtuellen Computers in der ausgewählten Region nicht verfügbar ist.

  7. Nachdem das Rechenzentrum erstellt wurde, können Sie den Updatebefehl "az managed-cassandra datacenter" ausführen, um den Cluster herunter- oder hochzuskalieren. Ändern Sie den Wert des Parameters node-count in den gewünschten Wert:

    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
    

Herstellen einer Clusterverbindung

Azure Managed Instance für Apache Cassandra erstellt keine Knoten mit öffentlichen IP-Adressen. Um eine Verbindung mit Ihrem neuen Cassandra-Cluster herzustellen, müssen Sie eine weitere Ressource innerhalb desselben virtuellen Netzwerks erstellen. Bei dieser Ressource kann es sich um eine Anwendung handeln oder um einen virtuellen Computer, auf dem das Open-Source-Abfragetool CQLSH von Apache installiert ist.

Sie können eine Resource Manager-Vorlage verwenden, um einen virtuellen Ubuntu-Computer bereitzustellen.

Hinweis

Aufgrund einiger bekannter Probleme mit Versionen von Python empfehlen wir, ein Ubuntu 22.04-Image zu verwenden, das im Lieferumfang von Python3.10.12 enthalten ist oder eine virtuelle Python-Umgebung zum Ausführen von CQLSH verwendet.

Herstellen einer Verbindung über CQLSH

Stellen Sie nach der Bereitstellung des virtuellen Computers eine SSH-Verbindung mit dem Computer her, und installieren Sie CQLSH, wie in den folgenden Befehlen gezeigt:

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

Überprüfen Sie, welche Versionen von Cassandra noch unterstützt werden , und wählen Sie die gewünschte Version aus. Es wird empfohlen, eine stabile Version zu verwenden.

Installieren Sie die Cassandra-Bibliotheken, um CQLSH zu erhalten, indem Sie die offiziellen Schritte aus der Cassandra-Dokumentation ausführen.

Stellen Sie eine Verbindung mithilfe von cqlsh her, wie in der Dokumentation beschrieben.

Herstellen einer Verbindung über eine Anwendung

Wie bei CQLSH muss auch bei der Verbindung aus einer Anwendung, die einen der unterstützten Apache Cassandra-Clienttreiber verwendet, die SSL-Verschlüsselung aktiviert und die Zertifizierungsprüfung deaktiviert sein. Beispiele finden Sie unter Java, .NET, Node.jsund Python.

Das Deaktivieren der Zertifikatüberprüfung wird empfohlen, da die Zertifikatüberprüfung nicht funktioniert, es sei denn, Sie ordnen IP-Adressen Ihrer Clusterknoten der entsprechenden Domäne zu. Wenn Sie über eine interne Richtlinie verfügen, die die ÜBERPRÜFUNG von SSL-Zertifikaten für jede Anwendung vorschreibt, können Sie dies vereinfachen, indem Sie Einträge wie 10.0.1.5 host1.managedcassandra.cosmos.azure.com in Ihrer Hostdatei für jeden Knoten hinzufügen. Wenn Sie diesen Ansatz anwenden, müssen Sie auch neue Einträge hinzufügen, wenn Sie Knoten skalieren.

Für Java wird nachdrücklich empfohlen, spekulative Ausführungsrichtlinie zu aktivieren, bei der Anwendungen empfindlich auf Endlatenz reagieren. Eine Demo, die veranschaulicht, wie dies funktioniert und wie die Richtlinie aktiviert wird, finden Sie unter Implementieren einer spekulativen Ausführungsrichtlinie.

Hinweis

Normalerweise müssen Sie keine Zertifikate, RootCA, Knoten, Clients oder Truststores konfigurieren, um eine Verbindung mit azure Managed Instance für Apache Cassandra herzustellen. SSL-Verschlüsselung verwendet den Standardvertrauensspeicher und das vom Client ausgewählte Laufzeitkennwort. Beispielcode finden Sie unter Java, .NET, Node.jsund Python). Zertifikate sind standardmäßig vertrauenswürdig. Wenn nicht, fügen Sie sie dem Truststore hinzu.

Konfigurieren von Clientzertifikaten (optional)

Das Konfigurieren von Clientzertifikaten ist optional. Eine Clientanwendung kann eine Verbindung mit azure Managed Instance für Apache Cassandra herstellen, solange die vorherigen Schritte befolgt werden. Bei Bedarf können Sie auch Clientzertifikate für die Authentifizierung erstellen und konfigurieren. Im Allgemeinen gibt es zwei Möglichkeiten zum Erstellen von Zertifikaten:

Selbstsignierte Zertifikate: Private und öffentliche Zertifikate (keine Zertifizierungsstelle) für jeden Knoten. In diesem Fall sind alle öffentlichen Zertifikate erforderlich.

Von einer Zertifizierungsstelle signierte Zertifikate: Ausgestellt von einer selbstsignierten Zertifizierungsstelle oder einer öffentlichen Zertifizierungsstelle. Für diese Einrichtung benötigen Sie das Stamm-CA-Zertifikat und, falls zutreffend, alle Zwischenzertifikate. Weitere Informationen finden Sie unter Vorbereiten von SSL-Zertifikaten für die Produktion.

Um die Client-zu-Knoten-Zertifikatauthentifizierung oder die gegenseitige Transport Layer Security (mTLS) zu implementieren, stellen Sie die Zertifikate mithilfe der Azure CLI bereit. Der folgende Befehl lädt Ihre Clientzertifikate hoch und wendet sie auf den Truststore für Ihren verwalteten Cassandra-Instanzcluster an. Es ist nicht erforderlich, die Einstellungen zu ändern cassandra.yaml . Nach der Anwendung benötigt der Cluster Cassandra, um Zertifikate während der Clientverbindungen zu überprüfen. Siehe 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

Problembehandlung

Wenn Sie bei der Anwendung von Berechtigungen auf Ihr virtuelles Netzwerk mithilfe der Azure CLI einen Fehler erkennen, können Sie die gleiche Berechtigung manuell über das Azure-Portal anwenden. Ein Beispiel für einen solchen Fehler ist Der Benutzer- oder Dienstprinzipal in der Diagrammdatenbank für „e5007d2c-4b13-4a74-9b6a-605d99f03501"kann nicht gefunden werden. Weitere Informationen finden Sie unter Verwenden des Azure-Portals zum Hinzufügen von Azure Cosmos DB-Dienstprinzipal.

Hinweis

Die Azure Cosmos DB-Rollenzuweisung wird nur für Bereitstellungszwecke verwendet. Azure Managed Instance for Apache Cassandra verfügt über keine Back-End-Abhängigkeiten von Azure Cosmos DB.

Bereinigen von Ressourcen

Wenn Sie die Ressourcen nicht mehr benötigen, führen Sie den Befehl az group delete aus, um die Ressourcengruppe, die verwaltete Instanz und alle zugehörigen Ressourcen zu löschen:

az group delete --name <Resource_Group_Name>

Nächste Schritte

In dieser Schnellstartanleitung haben Sie gelernt, wie Sie mithilfe der Azure CLI einen Cluster vom Typ „Azure Managed Instance for Apache Cassandra“ erstellen. Nun können Sie mit der Nutzung des Clusters beginnen: