Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure Istanza gestita per Apache Cassandra è un servizio completamente gestito per cluster Apache Cassandra open source puri. Il servizio consente anche di eseguire l'override delle configurazioni, a seconda delle esigenze specifiche di ogni carico di lavoro, per la massima flessibilità e controllo.
Questa guida introduttiva illustra come usare i comandi interfaccia della riga di comando di Azure per creare un cluster con Azure Istanza gestita per Apache Cassandra. Illustra anche come creare un data center e aumentare o ridurre i nodi all'interno del data center.
Prerequisiti
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione a Azure Cloud Shell.
Se preferisci eseguire i comandi di riferimento CLI in locale, installa l'interfaccia della riga di comando di Azure. Se si esegue in Windows o macOS, è consigliabile eseguire interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire il interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere al interfaccia della riga di comando di Azure usando il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Authenticate to Azure using interfaccia della riga di comando di Azure.For other sign-in options, see Authenticate to Azure using interfaccia della riga di comando di Azure.
Quando richiesto, installare l'estensione interfaccia della riga di comando di Azure al primo uso. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Usare una rete virtuale Azure con connettività al proprio ambiente self-hosted o locale. Per altre informazioni su come connettere ambienti locali a Azure, vedere Connettere una rete locale a Azure.
- Se non si ha una sottoscrizione Azure, creare un account free prima di iniziare.
Importante
Questo articolo richiede l'interfaccia della riga di comando di Azure versione 2.30.0 o successiva. Se si usa Azure Cloud Shell, la versione più recente è già installata.
Creare un cluster di Istanza gestita
Accedere al portale Azure.
Impostare l'ID sottoscrizione nel interfaccia della riga di comando di Azure:
az account set --subscription <Subscription_ID>Creare una rete virtuale con una subnet dedicata nel gruppo di risorse:
az network vnet create --name <VNet_Name> --location eastus2 \ --resource-group <Resource_Group_Name> --subnet-name <Subnet Name>La distribuzione di un'istanza di Azure Istanza gestita per Apache Cassandra richiede l'accesso a Internet. La distribuzione ha esito negativo negli ambienti in cui l'accesso a Internet è limitato. Assicurarsi di non bloccare l'accesso nella rete virtuale ai servizi di Azure seguenti necessari per il corretto funzionamento di Azure Istanza gestita per Apache Cassandra:
- Archiviazione di Azure
- Azure Key Vault
- Set di Scalabilità delle Macchine Virtuali di Azure
- Monitoraggio di Azure
- Microsoft Entra ID
- Microsoft Defender per il cloud
Applicare queste autorizzazioni specifiche alla rete virtuale. L'istanza gestita richiede questi elementi. Usare il
az role assignment createcomando e sostituire<subscriptionID>,<resourceGroupName>e<vnetName>con i valori appropriati: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>I
assigneevalori erolesono valori fissi. Immettere questi valori esattamente come indicato nel comando. In caso contrario, si verificano errori durante la creazione del cluster. Se si verificano errori durante l'esecuzione di questo comando, è possibile che non si disponga delle autorizzazioni necessarie per eseguirlo. Contattare l'amministratore Azure per ottenere le autorizzazioni.Creare il cluster nella rete virtuale appena creata usando il comando az managed-cassandra cluster create . Eseguire il comando seguente con il valore della
delegatedManagementSubnetIdvariabile. Il valore didelegatedManagementSubnetIdè lo stesso nome di rete virtuale per cui sono state applicate le autorizzazioni.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 \ --debugCreare un data center per il cluster con tre macchine virtuali.Create a datacenter for the cluster with three virtual machines (VM). Usare la configurazione seguente:
- Dimensioni macchina virtuale: Standard E8s v5
- Dischi dati: 4 dischi P30 collegati a ognuna delle macchine virtuali distribuite, Quando si calcola la capacità di archiviazione, si presuppone un utilizzo massimo di 50%. Questo buffer tiene conto dei record eliminati (tombstones) e del consumo del disco da parte dei servizi di sistema. Inoltre, i backup utilizzano temporaneamente lo spazio su disco prima che i dati vengano salvati in modo permanente nell'archivio BLOB.
Dopo che tutte le informazioni sono disponibili, usare il comando 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 falseScegliere il valore per
--skudalle dimensioni di macchina virtuale disponibili seguenti:- Standard_E8s_v5
- Standard_E16s_v5
- Standard_E20s_v5
- Standard_E32s_v5
Per impostazione predefinita,
--availability-zoneè impostato sufalse. Per abilitare le zone di disponibilità, impostarla sutrue. Le zone di disponibilità consentono di aumentare la disponibilità del servizio. Per altre informazioni, vedere Contratti a livello di servizio per i servizi online.Le zone di disponibilità non sono supportate in tutte le aree Azure. Le distribuzioni hanno esito negativo se si seleziona un'area in cui le zone di disponibilità non sono supportate. Per le aree supportate, vedere l'elenco delle aree Azure.
La corretta distribuzione delle zone di disponibilità è soggetta alla disponibilità delle risorse di calcolo in tutte le zone dell'area selezionata. Le distribuzioni hanno esito negativo se le dimensioni della macchina virtuale scelte non sono disponibili nell'area selezionata.
Dopo aver creato il data center, è possibile eseguire il comando az managed-cassandra datacenter update per ridurre o aumentare le prestazioni del cluster. Modificare il valore del
node-countparametro impostando il valore desiderato: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
Connettersi al cluster
Azure Istanza gestita per Apache Cassandra non crea nodi con indirizzi IP pubblici. Per connettersi al nuovo cluster Cassandra, è necessario creare un'altra risorsa all'interno della stessa rete virtuale. Questa risorsa può essere un'applicazione o una macchina virtuale con Cassandra Query Language Shell (CQLSH) installata. CQLSH è uno strumento di query open source Apache.
È possibile usare un modello Azure Resource Manager per distribuire una macchina virtuale Ubuntu.
A causa di alcuni problemi known con versioni di Python, è consigliabile usare un'immagine Ubuntu 22.04 fornita con Python3.10.12 o un ambiente virtuale Python per eseguire CQLSH.
Connettersi da CQLSH
Dopo aver distribuito la macchina virtuale, usare Secure Shell per connettersi al computer e installare CQLSH. Usare i comandi seguenti:
# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre
Controllare quali versioni di Cassandra sono ancora supportate e selezionare la versione necessaria. È consigliabile usare una versione stabile.
Installare le librerie Cassandra per ottenere CQLSH. Seguire i passaggi ufficiali della documentazione di Cassandra.
Connettersi da un'applicazione
Come per CQLSH, quando si usa uno dei driver client Apache Cassandra supportati per connettersi da un'applicazione, la crittografia Transport Layer Security/Secure Sockets Layer (TLS/SSL) deve essere abilitata e la verifica del certificato deve essere disabilitata. Per esempi, vedere Java, .NET, Node.js e Python.
È consigliabile disabilitare la verifica del certificato perché non funziona a meno che non si esegua il mapping degli indirizzi IP dei nodi del cluster al dominio appropriato. Se un criterio interno impone di eseguire la verifica del certificato TLS/SSL per qualsiasi applicazione, aggiungere voci come 10.0.1.5 host1.managedcassandra.cosmos.azure.com nel file hosts per ogni nodo per facilitare questa configurazione. Se si usa questo approccio, è anche necessario aggiungere nuove voci ogni volta che si aumentano le prestazioni dei nodi.
Per Java, si consiglia di abilitare i criteri di esecuzione speculativa nei casi in cui le applicazioni sono sensibili alla latenza della coda. Per una demo che illustra il funzionamento di questo approccio e per informazioni su come abilitare i criteri, vedere Implement speculative execution policy.
In genere non è necessario configurare i certificati ,ad esempio rootCA, node, client o truststore) per connettersi a Azure Istanza gestita per Apache Cassandra. La crittografia TLS/SSL usa l'archivio attendibilità predefinito e la password di runtime scelta dal client. Per il codice di esempio, vedere Java, .NET, Node.js e Python). I certificati sono considerati attendibili per impostazione predefinita. In caso contrario, aggiungili all'archivio di fiducia.
Configurare i certificati client (facoltativo)
La configurazione dei certificati client è facoltativa. Un'applicazione client può connettersi a Azure Istanza gestita per Apache Cassandra dopo aver seguito i passaggi precedenti. Se si preferisce, è anche possibile creare e configurare i certificati client per l'autenticazione. In generale, esistono due modi per creare i certificati:
- Certificati autofirmato: Certificati privati e pubblici senza autorità di certificazione (CA) per ogni nodo. In questo caso, sono necessari tutti i certificati pubblici.
- Certificati firmati da una CA: Certificati emessi da una CA autofirmato o da una CA pubblica. Per questa configurazione sono necessari il certificato CA radice e tutti i certificati intermedi, se applicabile. Per altre informazioni, vedere Preparare i certificati SSL per la produzione.
Per implementare l'autenticazione del certificato da client a nodo o Transport Layer Security mutuo, fornire i certificati usando l'interfaccia da riga di comando di Azure. Il comando seguente carica e applica i certificati client all'archivio di attendibilità per il cluster di Azure Istanza gestita for Apache Cassandra. Non è necessario modificare le impostazioni di cassandra.yaml. Dopo l'applicazione dei certificati, il cluster richiede a Cassandra di verificare i certificati durante le connessioni client. Per altre informazioni, vedere 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
Risoluzione dei problemi
Se si verifica un errore quando si applicano autorizzazioni alla rete virtuale usando il interfaccia della riga di comando di Azure, è possibile applicare manualmente la stessa autorizzazione dal portale di Azure. Un esempio di questo errore è "Impossibile trovare l'utente o l'entità servizio nel database grafico per e5007d2c-4b13-4a74-9b6a-605d99f03501". Per altre informazioni, vedere Usare il portale di Azure per aggiungere l'entità servizio di Azure Cosmos DB.
L'assegnazione di ruolo Azure Cosmos DB viene usata solo a scopo di distribuzione. Azure Istanza gestita per Apache Cassandra non ha dipendenze back-end da Azure Cosmos DB.
Pulire le risorse
Quando la risorsa non è più necessaria, usare il az group delete comando per rimuovere il gruppo di risorse, l'istanza gestita e tutte le risorse correlate:
az group delete --name <Resource_Group_Name>
Passo successivo
In questa guida introduttiva si è appreso come creare un Azure Istanza gestita per il cluster Apache Cassandra usando il interfaccia della riga di comando di Azure. A questo punto è possibile iniziare a usare il cluster: