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 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
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der 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.
Azure Virtual Network mit einer Verbindung mit Ihrer selbstgehosteten bzw. lokalen Umgebung. Weitere Informationen zum Verbinden lokaler Umgebungen mit Azure finden Sie unter Verbinden eines lokalen Netzwerks mit Azure.
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
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
Melden Sie sich beim Azure-Portal an.
Legen Sie Ihre Abonnement-ID über die Azure CLI fest:
az account set --subscription <Subscription_ID>
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
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
undrole
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.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
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
auffalse
festgelegt. 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 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.
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: