Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure verwaltete Instanz für Apache Cassandra ist ein vollständig verwalteter Dienst für reine Open-Source Apache Cassandra Cluster. Der Dienst ermöglicht außerdem, konfigurationen abhängig von den spezifischen Anforderungen jeder Workload außer Kraft zu setzen, um maximale Flexibilität und Kontrolle zu gewährleisten.
In dieser Schnellstartanleitung wird veranschaulicht, wie Sie mithilfe der Azure CLI-Befehle einen Cluster mit Azure verwaltete Instanz für Apache Cassandra erstellen. Außerdem wird gezeigt, wie Sie ein Rechenzentrum erstellen und Knoten innerhalb des Rechenzentrums nach oben oder unten skalieren.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Get started with Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen möchten, install die Azure CLI. Wenn Sie Windows oder macOS verwenden, empfiehlt es sich, Azure CLI in einem Docker-Container auszuführen. Weitere Informationen finden Sie unter How to run the Azure CLI in a Docker container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mit dem Befehl az login beim Azure CLI an. Um den Authentifizierungsprozess abzuschließen, führen Sie die in Ihrem Terminal angezeigten Schritte aus. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Use and manage extensions with the Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Verwenden Sie ein Azure virtuelles Netzwerk mit Konnektivität zu Ihrer selbst gehosteten oder lokalen Umgebung. Weitere Informationen zum Verbinden lokaler Umgebungen mit Azure finden Sie unter Verbinden eines lokalen Netzwerks mit Azure.
- Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein free-Konto, bevor Sie beginnen.
Wichtig
Für diesen Artikel ist die Azure CLI Version 2.30.0 oder höher erforderlich. Wenn Sie Azure Cloud Shell verwenden, ist die neueste Version bereits installiert.
Erstellen eines Managed Instance-Clusters
Melden Sie sich beim portal Azure an.
Legen Sie Ihre Abonnement-ID im Azure CLI fest:
az account set --subscription <Subscription_ID>Erstellen Sie 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>Die Bereitstellung einer Instanz von Azure verwaltete Instanz 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 für Azure verwaltete Instanz erforderlich sind, damit Apache Cassandra ordnungsgemäß funktioniert:
- Azure Storage
- Azure Key Vault
- Azure Virtual Machine Scale Sets (Azure virtuelle Computermaschinen-Skalierungsgruppen)
- Azure Monitor
- Microsoft Entra ID
- Microsoft Defender for Cloud
Wenden Sie diese spezifischen Berechtigungen auf das virtuelle Netzwerk an. Für die verwaltete Instanz sind sie erforderlich. Verwenden Sie den
az role assignment create-Befehl, 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>Die
assigneeundrolesind feste Werte. Geben Sie diese Werte genau wie im Befehl erwähnt ein. Ohne dies kommt es zu Fehlern, wenn Sie den Cluster erstellen. Wenn beim Ausführen dieses Befehls Fehler auftreten, verfügen Sie möglicherweise nicht über berechtigungen zum Ausführen des Befehls. Wenden Sie sich an Ihren Azure-Administrator, um Berechtigungen zu erteilen.Erstellen Sie 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
delegatedManagementSubnetIdVariablen aus. (Der WertdelegatedManagementSubnetIdist derselbe virtuelle Netzwerkname, für 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='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 \ --debugErstellen Sie ein Rechenzentrum für den Cluster mit drei virtuellen Computern (VMs). Verwenden Sie die folgende Konfiguration:
- VM-Größe: Standard E8s v5
- Datenlaufwerke: 4 P30-Datenlaufwerke, die an jede der bereitgestellten virtuellen Maschinen angefügt sind, gehen bei der Berechnung der Speicherkapazität von maximal 50 % aus. Dieser Puffer berücksichtigt Tombstones und den Speicherverbrauch durch Systemdienste. Darüber hinaus verbrauchen Sicherungen vorübergehend Speicherplatz, bevor Daten im BLOB-Speicher gespeichert werden.
Nachdem alle Informationen vorhanden sind, 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 falseWählen Sie den Wert für
--skuaus den folgenden verfügbaren VM-Größen aus.- Standard_E8s_v5
- Standard_E16s_v5
- Standard_E20s_v5
- Standard_E32s_v5
Standardmäßig ist
--availability-zoneauffalsefestgelegt. Um Verfügbarkeitszonen zu aktivieren, legen Sie sie auftrue. Verfügbarkeitszonen tragen dazu bei, die Verfügbarkeit des Diensts zu erhöhen. Weitere Informationen finden Sie unter Service-Level-Vereinbarungen für Onlinedienste.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 Liste Azure Regionen.
Die erfolgreiche Bereitstellung von Verfügbarkeitszonen unterliegt der Verfügbarkeit von Computeressourcen in allen Zonen in der region, die Sie ausgewählt haben. Bereitstellungen schlagen fehl, wenn die von Ihnen ausgewählte VM-Größe in der von Ihnen ausgewählten Region nicht verfügbar ist.
Nachdem das Rechenzentrum erstellt wurde, können Sie den Befehl az managed-cassandra datacenter update ausführen, um den Cluster zu verkleinern oder zu vergrößern. Ändern Sie den Wert des
node-countParameters 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 verwaltete Instanz 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. Diese Ressource kann eine Anwendung oder eine VM sein, auf der cassandra Query Language Shell (CQLSH) installiert ist. CQLSH ist ein Apache Open-Source-Abfragetool.
Sie können eine Azure Resource Manager-Vorlage verwenden, um eine Ubuntu-VM bereitzustellen.
Aufgrund einiger bekannter Probleme mit Versionen von Python empfehlen wir, ein Ubuntu 22.04-Image zu verwenden, das mit Python3.10.12 geliefert wird, oder eine Python-virtuelle Umgebung zum Ausführen von CQLSH zu nutzen.
Herstellen einer Verbindung mit CQLSH
Nachdem der virtuelle Computer bereitgestellt wurde, verwenden Sie Secure Shell, um eine Verbindung mit dem Computer herzustellen und CQLSH zu installieren. Verwenden Sie die folgenden Befehle:
# 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 abzurufen. Führen Sie die offiziellen Schritte aus der Cassandra-Dokumentation aus.
Verbindung aus einer Anwendung herstellen
Wie bei CQLSH muss die Transport Layer Security/Secure Sockets Layer (TLS/SSL)-Verschlüsselung aktiviert sein, und die Zertifikatsüberprüfung muss deaktiviert werden, wenn Sie einen der unterstützten Apache Cassandra-Clienttreiber verwenden, um aus einer Anwendung eine Verbindung herzustellen. Beispiele finden Sie unter Java, .NET, Node.js und Python.
Es wird empfohlen, die Zertifikatüberprüfung zu deaktivieren, da sie nicht funktioniert, es sei denn, Sie ordnen IP-Adressen Ihrer Clusterknoten der entsprechenden Domäne zu. Wenn eine interne Richtlinie die Überprüfung von TLS/SSL-Zertifikaten für eine beliebige Anwendung vorschreibt, fügen Sie Einträge wie 10.0.1.5 host1.managedcassandra.cosmos.azure.com in der Hostdatei für jeden Knoten hinzu, um diese Einrichtung zu erleichtern. Wenn Sie diesen Ansatz verfolgen, müssen Sie auch neue Einträge hinzufügen, wenn Sie Knoten skalieren.
Für Java wird empfohlen, die speculative Ausführungsrichtlinie zu aktivieren, bei der Anwendungen für die Taillatenz sensibel sind. Eine Demo, die veranschaulicht, wie dieser Ansatz funktioniert und wie die Richtlinie aktiviert werden kann, finden Sie unter Implement spekulative Ausführungsrichtlinie.
Normalerweise müssen Sie keine Zertifikate konfigurieren (z. B. rootCA, node, client oder truststore), um eine Verbindung mit Azure verwaltete Instanz für Apache Cassandra herzustellen. TLS/SSL-Verschlüsselung verwendet den Standardvertrauensspeicher und das ausgewählte Laufzeitkennwort des Clients. Beispielcode finden Sie unter Java, .NET, Node.js und Python). Zertifikate sind standardmäßig vertrauenswürdig. Wenn nicht, fügen Sie sie dem Vertrauensspeicher hinzu.
Konfigurieren von Clientzertifikaten (optional)
Das Konfigurieren von Clientzertifikaten ist optional. Eine Clientanwendung kann eine Verbindung mit Azure verwaltete Instanz für Apache Cassandra herstellen, nachdem Sie die vorherigen Schritte ausgeführt haben. Wenn Sie es vorziehen, 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 ohne Zertifizierungsstelle (Ca) für jeden Knoten. In diesem Fall sind alle öffentlichen Zertifikate erforderlich.
- Von einer Zertifizierungsstelle signierte Zertifikate: Zertifikate, die von einer selbstsignierten Zertifizierungsstelle oder einer öffentlichen Zertifizierungsstelle ausgestellt wurden. 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 zu implementieren, stellen Sie die Zertifikate mithilfe der Azure CLI bereit. Der folgende Befehl lädt Ihre Clientzertifikate hoch und wendet sie auf den Vertrauensspeicher für Ihre Azure verwaltete Instanz für Apache Cassandra Cluster an. Sie müssen die cassandra.yaml Einstellungen nicht ändern. Nachdem die Zertifikate angewendet wurden, benötigt der Cluster Cassandra, um die Zertifikate während der Clientverbindungen zu überprüfen. Weitere Informationen finden Sie unter require_client_auth: true 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 beim Anwenden von Berechtigungen für Ihr virtuelles Netzwerk mithilfe des Azure CLI ein Fehler auftritt, können Sie dieselbe Berechtigung manuell über das Azure-Portal anwenden. Ein Beispiel für einen solchen Fehler ist: "Benutzer- oder Dienstprinzipal in der Graphdatenbank für e5007d2c-4b13-4a74-9b6a-605d99f03501 kann nicht gefunden werden." Weitere Informationen finden Sie unter Verwenden Sie das Azure-Portal, um den Azure Cosmos DB-Dienstprinzipal hinzuzufügen.
Die Azure Cosmos DB Rollenzuweisung wird nur für Bereitstellungszwecke verwendet. "Azure Managed Instanced" für Apache Cassandra hat keine Back-End-Abhängigkeiten von Azure Cosmos DB.
Bereinigen von Ressourcen
Wenn Ihre Ressource nicht mehr benötigt wird, verwenden Sie den az group delete Befehl, um die Ressourcengruppe, die verwaltete Instanz und alle zugehörigen Ressourcen zu entfernen:
az group delete --name <Resource_Group_Name>
Nächster Schritt
In dieser Schnellstartanleitung haben Sie gelernt, wie Sie mithilfe der Azure CLI einen Azure verwaltete Instanz für Apache Cassandra-Cluster erstellen. Nun können Sie mit der Nutzung des Clusters beginnen: