Eventi
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.
Istanza gestita di Azure 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, che consente la massima flessibilità e controllo dove necessario.
Questa guida introduttiva illustra come usare i comandi dell'interfaccia della riga di comando di Azure per creare un cluster con Istanza gestita di Azure per Apache Cassandra. Illustra anche come creare un data center e aumentare o ridurre i nodi all'interno del data center.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione ad Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Eseguire l'autenticazione ad Azure con l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con l'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.
Azure Rete virtuale con connettività all'ambiente self-hosted o locale. Per altre informazioni sulla connessione di ambienti locali ad Azure, vedere Connettere una rete locale ad Azure.
Se non si ha una sottoscrizione di Azure, creare un account gratuito 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.
Accedi al portale di Azure.
Impostare l'ID sottoscrizione nell'interfaccia della riga di comando di Azure:
az account set --subscription <Subscription_ID>
Creare quindi un 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>
Nota
La distribuzione di un'istanza gestita di Azure 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 seguenti servizi di Azure necessari per il corretto funzionamento di Cassandra gestito:
- Archiviazione di Azure
- Azure Key Vault
- Set di scalabilità di macchine virtuali di Azure
- Monitoraggio di Azure
- Microsoft Entra ID
- Sicurezza di Azure
Applicare queste autorizzazioni specifiche alla rete virtuale. L'istanza gestita richiede questi elementi. Usare il
az role assignment create
comando , sostituendo<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>
Nota
I
assignee
valori erole
sono 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 di Azure per ottenere le autorizzazioni.Creare quindi il cluster nella rete virtuale appena creata usando il comando az managed-cassandra cluster create . Eseguire il comando seguente il valore della
delegatedManagementSubnetId
variabile:Nota
Il valore di
delegatedManagementSubnetId
è lo stesso nome della rete virtuale a 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='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
Creare un data center per il cluster con tre macchine virtuali usando la configurazione seguente:
Dimensioni macchina virtuale: Standard E8s v5
Dischi dati: 4 dischi P30 collegati a ognuna delle macchine virtuali distribuite
Con tutto al suo posto, utilizzare 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 false
Nota
Il valore per
--sku
può essere scelto tra le 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 Contratto di servizio per Online Services.Avviso
Le zone di disponibilità non sono supportate in tutte le aree di 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 di Azure.
La corretta distribuzione delle zone di disponibilità è soggetta alla disponibilità delle risorse di calcolo in tutte le zone nell'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 il cluster. Modificare il valore del
node-count
parametro 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
Istanza gestita di Azure 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 lo strumento di query open source di Apache installato CQLSH .
È possibile usare un modello di Resource Manager per distribuire una macchina virtuale Ubuntu.
Nota
A causa di alcuni problemi noti con le versioni di Python, è consigliabile usare un'immagine Ubuntu 22.04 fornita con Python3.10.12 o usare un ambiente virtuale Python per eseguire CQLSH.
Dopo la distribuzione della macchina virtuale, usare SSH per connettersi al computer e installare CQLSH, come illustrato nei 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 seguendo i passaggi ufficiali della documentazione di Cassandra.
Connettersi usando cqlsh, come descritto nella documentazione.
Come per CQLSH, per la connessione da un'applicazione usando uno dei driver client Apache Cassandra supportati è necessario che la crittografia SSL sia abilitata e che la verifica del certificato sia disabilitata. Per esempi, vedere Java, .NET, Node.jse Python.
La disabilitazione della verifica del certificato è consigliata perché la verifica del certificato non funziona a meno che non si esegua il mapping degli indirizzi IP dei nodi del cluster al dominio appropriato. Se si dispone di un criterio interno che impone di eseguire la verifica del certificato SSL per qualsiasi applicazione, è possibile facilitare l'aggiunta di voci come 10.0.1.5 host1.managedcassandra.cosmos.azure.com
nel file host per ogni nodo. Se si adotta questo approccio, è anche necessario aggiungere nuove voci ogni volta che si aumenta il numero di nodi.
Per Java, è consigliabile abilitare criteri di esecuzione speculativi in cui le applicazioni sono sensibili alla latenza della coda. Per una demo che illustra come funziona e come abilitare i criteri, vedere Implementazione di criteri di esecuzione speculativi.
Nota
In genere non è necessario configurare certificati, rootCA, nodi, client o truststore per la connessione a Istanza gestita di Azure per Apache Cassandra. La crittografia SSL utilizza l'archivio di attendibilità predefinito e la password di runtime scelta dal client. Per il codice di esempio, vedere Java, .NET, Node.jse Python. I certificati sono considerati attendibili per impostazione predefinita. Se no, aggiungerli all'archivio delle fiducie.
La configurazione dei certificati client è facoltativa. Un'applicazione client può connettersi a Istanza gestita di Azure per Apache Cassandra, purché vengano seguiti 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 (nessuna CA) per ogni nodo. In questo caso, sono necessari tutti i certificati pubblici.
Certificati firmati da una CA: rilasciati 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 Preparazione dei certificati SSL per la produzione.
Per implementare l'autenticazione del certificato da client a nodo o mTLS (Transport Layer Security), fornire i certificati tramite l'interfaccia della riga di comando di Azure. Il comando seguente carica e applica i certificati client all'archivio trust per il cluster dell'istanza gestita di Cassandra. Non è necessario modificare cassandra.yaml
le impostazioni. Dopo l'applicazione, il cluster richiede a Cassandra di verificare i certificati durante le connessioni client. Consulta require_client_auth: true
nelle opzioni client_encryption_options di Cassandra.
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
Se si verifica un errore durante l'applicazione delle autorizzazioni alla rete virtuale tramite l'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.
Nota
L'assegnazione di ruolo di Azure Cosmos DB viene usata solo ai fini della distribuzione. Istanza gestita di Azure per Apache Cassandra non ha dipendenze back-end da Azure Cosmos DB.
Quando non è più necessario, è possibile 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>
In questa guida introduttiva si è appreso come creare un Istanza gestita di Azure per il cluster Apache Cassandra usando l'interfaccia della riga di comando di Azure. A questo punto è possibile iniziare a usare il cluster: