Compartir a través de


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

Azure Managed Instance for Apache Cassandra es un servicio totalmente 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, para lograr la máxima flexibilidad y control.

En este inicio rápido se muestra cómo usar los comandos de la 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 los nodos dentro del centro de datos.

Requisitos previos

Importante

En este artículo se requiere la versión 2.30.0 o posterior de la CLI de Azure. 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 suscripción en la CLI de Azure:

    az account set --subscription <Subscription_ID>
    
  3. 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>
    

    La implementación de una instancia de Azure Managed Instance 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 Azure Managed Instance para Apache Cassandra funcione correctamente:

    • Azure Storage
    • Azure Key Vault
    • Conjuntos de escalado de máquinas virtuales de Azure
    • Azure Monitor
    • Microsoft Entra ID
    • Microsoft Defender for Cloud
  4. Aplique estos permisos específicos a la red virtual. La instancia administrada las requiere. Use el az role assignment create comando y reemplace <subscriptionID>, <resourceGroupName>, y <vnetName> por 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>
    

    Los assignee valores y role son valores fijos. Escriba estos valores exactamente como se mencionó en el comando . Si no lo hace, se producirán 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. Cree el clúster en la red virtual recién creada mediante el comando az managed-cassandra cluster create . Ejecute el siguiente comando con el valor de la delegatedManagementSubnetId variable . (El valor de delegatedManagementSubnetId es el mismo nombre de red virtual para el 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='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 \
      --debug
    
  6. Cree un centro de datos para el clúster con tres máquinas virtuales (VM). Use la configuración siguiente:

    • 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

    Una vez que se haya implementado toda la información, 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
    

    Elija el valor de --sku entre los siguientes tamaños de máquina virtual disponibles:

    • Standard_E8s_v5
    • Standard_E16s_v5
    • Standard_E20s_v5
    • Standard_E32s_v5

    De manera 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 Contratos de nivel de servicio para servicios en línea.

    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 la lista de regiones de Azure.

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

  7. Una vez creado el centro de datos, puede ejecutar el comando az managed-cassandra datacenter update para reducir o escalar su clúster. Cambie el valor del node-count parámetro por el valor que desea:

    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 con cassandra Query Language Shell (CQLSH) instalado. CQLSH es una herramienta de consulta de código abierto de Apache.

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

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 un entorno virtual de Python para ejecutar CQLSH.

Conectar a través de CQLSH

Una vez implementada la máquina virtual, use Secure Shell para conectarse a la máquina e instalar CQLSH. Usa los comandos siguientes:

# 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 seleccione la versión que necesita. Se recomienda usar una versión estable.

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

Conexión desde una aplicación

Al igual que con CQLSH, cuando se usa uno de los controladores cliente de Apache Cassandra compatibles para conectarse desde una aplicación, el cifrado de capa de sockets seguros y seguridad de la capa de transporte (TLS/SSL) debe estar habilitado y la comprobación de certificados debe estar deshabilitada. Para obtener ejemplos, consulte Java, .NET, Node.jsy Python.

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

Para Java, se recomienda 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 este enfoque y ver cómo habilitar la directiva, consulte Implementación de la directiva de ejecución especulativa.

Normalmente no es necesario configurar certificados (como rootCA, node, cliento truststore) para conectarse a Azure Managed Instance para Apache Cassandra. El cifrado TLS/SSL usa el almacén de confianza predeterminado y la contraseña de tiempo de ejecución elegida del 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 for Apache Cassandra después de seguir 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 entidad de certificación (CA) para cada nodo. En este caso, se requieren todos los certificados públicos.
  • Certificados firmados por una ENTIDAD de certificación: Certificados 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, proporcione los certificados mediante la CLI de Azure. El siguiente comando carga y aplica tus certificados de cliente al almacén de confianza para tu instancia administrada de Azure para el clúster Apache Cassandra. No es necesario modificar la configuración cassandra.yaml. Una vez aplicados los certificados, el clúster requiere que Cassandra compruebe los certificados durante las conexiones de cliente. Para obtener más información, 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 puede encontrar 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.

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

Limpieza de recursos

Cuando el recurso ya no sea necesario, use el az group delete comando para quitar el grupo de recursos, la instancia administrada y todos los recursos relacionados:

az group delete --name <Resource_Group_Name>

Paso siguiente

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