Compartir a través de


Inicio rápido: Creación de un clúster de Azure Managed Instance for Apache Cassandra mediante la CLI de Azure

Azure Managed Instance for Apache Cassandra es un servicio completamente administrado para clústeres de Apache Cassandra de código abierto puros. El servicio también permite invalidar las configuraciones, en función de las necesidades específicas de cada carga de trabajo, lo que permite la máxima flexibilidad y control cuando sea necesario.

En este inicio rápido se muestra cómo usar los comandos de la interfaz de la línea de comandos (CLI) de Azure para crear un clúster con Azure Managed Instance para Apache Cassandra. También muestra cómo crear un centro de datos y escalar o reducir verticalmente los nodos dentro del centro de datos.

Requisitos previos

Importante

Este artículo requiere la CLI de Azure 2.30.0 o una versión posterior. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.

Creación de un clúster de instancia administrada

  1. Inicie sesión en Azure Portal.

  2. Establezca el identificador de la suscripción en la CLI de Azure:

    az account set --subscription <Subscription_ID>
    
  3. A continuación, cree una red virtual con una subred dedicada en el grupo de recursos:

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

    Nota

    La implementación de una instancia administrada de Azure para Apache Cassandra requiere acceso a Internet. En entornos con acceso limitado a Internet se produce un error de implementación. Asegúrese de que no está bloqueando el acceso en la red virtual a los siguientes servicios de Azure necesarios para que Cassandra administrado funcione correctamente:

    • Azure Storage
    • Azure KeyVault
    • Conjuntos de escalado de máquinas virtuales de Azure (VMSS)
    • Supervisión de Azure
    • Microsoft Entra ID
    • Seguridad de Azure
  4. Aplique estos permisos específicos a la red virtual. La instancia administrada las requiere. Utilice el comando az role assignment create y reemplace <subscriptionID>, <resourceGroupName> y <vnetName> con los valores adecuados:

    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

    Los assignee valores y role son valores fijos. Escriba estos valores exactamente como se mencionó en el comando . Si no lo hace, se producen errores al crear el clúster. Si se producen errores al ejecutar este comando, es posible que no tenga permisos para ejecutarlo. Póngase en contacto con el administrador de Azure para obtener permisos.

  5. A continuación, cree el clúster en la red virtual recién creada mediante el comando az managed-cassandra cluster create . Ejecute el siguiente comando en el valor de la variable delegatedManagementSubnetId:

    Nota

    El valor de delegatedManagementSubnetId es el mismo nombre de la red virtual al que se aplicaron los permisos.

    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. Cree un centro de datos para el clúster, con tres máquinas virtuales con la siguiente configuración:

    • Tamaño de máquina virtual: Estándar E8s v5

    • Discos de datos: 4 discos P30 conectados a cada una de las máquinas virtuales implementadas

    • Con todo listo, use el 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

    El valor de --sku se puede elegir entre los siguientes tamaños de máquina virtual disponibles:

    • Standard_E8s_v5
    • Standard_E16s_v5
    • Standard_E20s_v5
    • Standard_E32s_v5

    De forma predeterminada, --availability-zone se establece en false. Para habilitar zonas de disponibilidad, establézcala en true. Las zonas de disponibilidad ayudan a aumentar la disponibilidad del servicio. Para obtener más información, consulte Acuerdo de Nivel de Servicio para Online Services.

    Advertencia

    Las zonas de disponibilidad no se admiten en todas las regiones de Azure. Se produce un error en las implementaciones si selecciona una región en la que no se admiten las zonas de disponibilidad. Para ver las regiones admitidas, consulte lista de regiones de Azure.

    La implementación correcta de zonas de disponibilidad está sujeta a la disponibilidad de los recursos de proceso en todas las zonas de la región seleccionada. Se produce un error en las implementaciones si el tamaño de máquina virtual que elija no está disponible en la región seleccionada.

  7. Una vez creado el centro de datos, puede ejecutar el comando az managed-cassandra datacenter update para escalar hacia abajo o hacia arriba su clúster. Cambie el valor del parámetro node-count al valor deseado:

    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
    

Conexión al clúster

Azure Managed Instance para Apache Cassandra no crea nodos con direcciones IP públicas. Para conectarse al nuevo clúster de Cassandra, debe crear otro recurso dentro de la misma red virtual. Este recurso puede ser una aplicación o una máquina virtual que tenga instalada la herramienta de consulta de código abierto de Apache CQLSH.

Puede usar una plantilla de Resource Manager para implementar una máquina virtual de Ubuntu.

Nota

Debido a algunos problemas conocidos con versiones de Python, se recomienda usar una imagen de Ubuntu 22.04 que viene con Python3.10.12 o usar un entorno virtual de Python para ejecutar CQLSH.

Conexión desde CQLSH

Tras la implementación de la máquina virtual, use SSH para conectarse a la máquina e instalar CQLSH, tal y como se muestra en los siguientes comandos:

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

Compruebe qué versiones de Cassandra siguen siendo compatibles y elija la versión que necesita. Se recomienda usar una versión estable.

Instale las bibliotecas de Cassandra para obtener CQLSH siguiendo los pasos oficiales de la documentación de Cassandra.

Conéctese mediante cqlsh, como se describe en la documentación.

Conexión desde una aplicación

Al igual que con CQLSH, la conexión desde una aplicación mediante uno de los controladores de cliente de Apache Cassandra admitidos requiere que el cifrado de SSL esté habilitado y la verificación de certificación esté deshabilitada. Para obtener ejemplos, consulte Java, .NET, Node.jsy Python.

Se recomienda deshabilitar la comprobación de certificados porque la comprobación de certificados no funciona a menos que asigne direcciones IP de los nodos del clúster al dominio adecuado. Si tiene una directiva interna que exige que realice la comprobación de certificados SSL para cualquier aplicación, puede facilitar agregando entradas como 10.0.1.5 host1.managedcassandra.cosmos.azure.com en el archivo de hosts para cada nodo. Si adopta este enfoque, también tendría que agregar nuevas entradas cada vez que escale verticalmente los nodos.

Para Java, se recomienda encarecidamente habilitar la directiva de ejecución especulativa en la que las aplicaciones son sensibles a la latencia final. Para obtener una demostración que muestre cómo funciona y cómo habilitar la directiva, consulte Implementación de una directiva de ejecución especulativa.

Nota

Normalmente no es necesario configurar certificados, rootCA, nodos, clientes o almacenes de confianza para conectarse a Azure Managed Instance para Apache Cassandra. El cifrado SSL usa el almacén de confianza predeterminado y la contraseña de tiempo de ejecución elegida por el cliente. Para obtener código de ejemplo, consulte Java, .NET, Node.jsy Python). Los certificados son de confianza de forma predeterminada. Si no es así, agréguelos al almacén de confianza.

Configuración de certificados de cliente (opcional)

La configuración de certificados de cliente es opcional. Una aplicación cliente puede conectarse a Azure Managed Instance para Apache Cassandra siempre que se sigan los pasos anteriores. Si lo prefiere, también puede crear y configurar certificados de cliente para la autenticación. En general, hay dos maneras de crear certificados:

Certificados autofirmados: certificados privados y públicos (sin CA) para cada nodo. En este caso, se requieren todos los certificados públicos.

Certificados firmados por una ENTIDAD de certificación: emitidos por una ENTIDAD de certificación autofirmada o una CA pública. Para esta configuración, necesita el certificado de entidad de certificación raíz y todos los certificados intermedios, si procede. Para obtener más información, consulte Preparación de certificados SSL para producción.

Para implementar la autenticación de certificados de cliente a nodo o la seguridad mutua de la capa de transporte (mTLS), proporcione los certificados mediante la CLI de Azure. El comando siguiente carga y aplica los certificados de cliente al almacén de confianza para el clúster de instancia administrada de Cassandra. No es necesario modificar la configuración de cassandra.yaml. Una vez aplicado, el clúster requiere Que Cassandra compruebe los certificados durante las conexiones de cliente. Consulte require_client_auth: true en 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

Solución de problemas

Si se produce un error al aplicar permisos a la red virtual mediante la CLI de Azure, puede aplicar el mismo permiso manualmente desde Azure Portal. Un ejemplo de este error es No se encuentra el usuario o la entidad de servicio en la base de datos de grafos para 'e5007d2c-4b13-4a74-9b6a-605d99f03501'. Para obtener más información, consulte Uso de Azure Portal para agregar una entidad de servicio de Azure Cosmos DB.

Nota

La asignación de roles de Azure Cosmos DB se usa solo con fines de implementación. Azure Managed Instance for Apache Cassandra no tiene dependencias de back-end en Azure Cosmos DB.

Limpieza de recursos

Puede usar el comando az group delete para quitar el grupo de recursos, la máquina virtual y todos los recursos relacionados cuando ya no se necesiten:

az group delete --name <Resource_Group_Name>

Pasos siguientes

En este inicio rápido, ha aprendido a crear un clúster de Azure Managed Instance for Apache Cassandra mediante la CLI de Azure. Ahora puede empezar a trabajar con el clúster: