Administración de recursos de Azure Managed Instance for Apache Cassandra mediante la CLI de Azure

En este artículo se describen los comandos comunes para automatizar la administración de clústeres y centros de datos de Azure Managed Instance for Apache Cassandra mediante la CLI de Azure.

Requisitos previos

En este artículo se necesita la CLI de Azure versión 2.30.0 o posterior. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.

Importante

No se puede cambiar el nombre de los recursos de Azure Managed Instance for Apache Cassandra. El cambio de nombre de estos recursos infringe el funcionamiento de Azure Resource Manager con los URI de recursos.

Administración de clústeres

En las secciones siguientes se muestra cómo administrar clústeres de Azure Managed Instance for Apache Cassandra:

Crear un clúster

Cree un clúster de Azure Managed Instance for Apache Cassandra con el comando az managed-cassandra cluster create:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
location='West US'
delegatedManagementSubnetId='/subscriptions/<subscription id>/resourceGroups/customer-vnet-rg/providers/Microsoft.Network/virtualNetworks/customer-vnet/subnets/management'
initialCassandraAdminPassword='myPassword'

# You can override the cluster name if the original name is not legal for an Azure resource:
# overrideClusterName='ClusterNameIllegalForAzureResource'
# The default Cassandra version is v3.11

az managed-cassandra cluster create \
    --cluster-name $clusterName \
    --resource-group $resourceGroupName \
    --location $location \
    --delegated-management-subnet-id $delegatedManagementSubnetId \
    --initial-cassandra-admin-password $initialCassandraAdminPassword \

Eliminar un clúster

Elimine un clúster con el comando az managed-cassandra cluster delete:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'

az managed-cassandra cluster delete \
    --cluster-name $clusterName \
    --resource-group $resourceGroupName

Obtención de los detalles del clúster

Obtenga los detalles del clúster con el comando az managed-cassandra cluster show:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'

az managed-cassandra cluster show \
    --cluster-name $clusterName \
    --resource-group $resourceGroupName

Obtención del estado del nodo de clúster

Obtenga el estado de los nodos de clúster mediante el comando az managed-cassandra cluster status:

clusterName='cassandra-hybrid-cluster'
resourceGroupName='MyResourceGroup'

az managed-cassandra cluster status \
    --cluster-name $clusterName \
    --resource-group $resourceGroupName

Listado de clústeres por grupo de recursos

Enumere los clústeres por grupo de recursos con el comando az managed-cassandra cluster list:

subscriptionId='MySubscriptionId'
resourceGroupName='MyResourceGroup'

az managed-cassandra cluster list\
    --resource-group $resourceGroupName

Listado de clústeres por identificador de suscripción

Enumere los clústeres por id. de suscripción con el comando az managed-cassandra cluster list:

# Set your subscription ID
az account set -s <subscriptionID>

az managed-cassandra cluster list

Administración de centros de datos

En las secciones siguientes se muestra cómo administrar centros de datos de Azure Managed Instance for Apache Cassandra:

Creación de un centro de datos

Cree un centro de datos con el comando az managed-cassandra datacenter create:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'
dataCenterLocation='eastus2'
delegatedSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/customer-vnet-rg/providers/Microsoft.Network/virtualNetworks/customer-vnet/subnets/dc1-subnet'
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 $delegatedSubnetId \
    --node-count 3 
    --sku $virtualMachineSKU \
    --disk-capacity $noOfDisksPerNode \
    --availability-zone false

Elija el valor de --sku entre las siguientes opciones de máquina virtual (VM) disponibles:

  • Standard_E8s_v4
  • Standard_E16s_v4
  • Standard_E20s_v4
  • Standard_E32s_v4
  • Standard_DS13_v2
  • Standard_DS14_v2
  • Standard_D8s_v4
  • Standard_D16s_v4
  • Standard_D32s_v4
  • Standard_L8s_v3
  • Standard_L16s_v3
  • Standard_L32s_v3
  • Standard_L8as_v3
  • Standard_L16as_v3
  • Standard_L32as_v3

Actualmente, Azure Managed Instance for Apache Cassandra no admite la transición entre familias de máquinas virtuales. Por ejemplo, si actualmente tiene una máquina virtual Standard_DS13_v2 y le interesa actualizar a una máquina virtual más grande, como Standard_DS14_v2, esta opción no está disponible. Sin embargo, puede abrir una incidencia de soporte técnico para solicitar la actualización.

En el comando anterior, --availability-zone se establece en false. Para habilitar las zonas de disponibilidad, establezca este valor en true. Las zonas de disponibilidad aumentan el Acuerdo de Nivel de Servicio para la disponibilidad del servicio. Para obtener más información, revise los detalles completos del Acuerdo de Nivel de Servicio.

Advertencia

Azure Managed Instance for Apache Cassandra no admite zonas de disponibilidad en todas las regiones. Se producirá un error en las implementaciones si selecciona una región en la que no se admiten las zonas de disponibilidad. Consulte la lista de regiones admitidas.

La implementación correcta de las zonas de disponibilidad también depende de la disponibilidad de los recursos de proceso en todas las zonas de una región. Es posible que se produzca un error en las implementaciones si la máquina virtual o la capacidad que seleccionó no están disponibles en todas las zonas.

Eliminación de un centro de datos

Elimine un centro de datos con el comando az managed-cassandra datacenter delete:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'

az managed-cassandra datacenter delete \
    --resource-group $resourceGroupName \
    --cluster-name $clusterName \
    --data-center-name $dataCenterName 

Advertencia

Si tiene más de un centro de datos en el clúster, primero debe quitar las referencias al centro de datos que está intentando eliminar en todas las configuraciones de estrategia de replicación de espacio de claves. Este comando producirá un error si algún espacio de claves del clúster todavía tiene referencias al centro de datos.

Obtención de detalles del centro de datos

Obtenga los detalles del centro de datos con el comando az managed-cassandra datacenter show:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'

az managed-cassandra datacenter show \
    --resource-group $resourceGroupName \
    --cluster-name $clusterName \
    --data-center-name $dataCenterName 

Actualización o escalabilidad de un centro de datos

Actualice o escale un centro de datos mediante el comando az managed-cassandra datacenter update:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'

az managed-cassandra datacenter update \
    --resource-group $resourceGroupName \
    --cluster-name $clusterName \
    --data-center-name $dataCenterName \
    --node-count 13 

Para escalar un centro de datos, cambie el valor de --node-count.

Obtención de la configuración de Cassandra

Obtenga la configuración actual de YAML de un nodo mediante el comando az managed-cassandra cluster invoke-command:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
commandName='get-cassandra-yaml'
 
az managed-cassandra cluster invoke-command \
    --resource-group $resourceGroupName \
    --cluster-name $clusterName \
    --host <ip address> \
    --command-name 'get-cassandra-yaml'

Puede hacer que la salida sea más legible mediante los siguientes comandos:

$output = az managed-cassandra cluster invoke-command \
    --resource-group $resourceGroupName \
    --cluster-name $clusterName \
    --host <ip address> \
    --command-name 'get-cassandra-yaml' \
    | ConvertFrom-Json
$output.commandOutput

Actualización de la configuración de Cassandra

Cambie la configuración de Cassandra en un centro de datos mediante el comando az managed-cassandra datacenter update. Debe codificar el fragmento de YAML en Base64 mediante una herramienta en línea.

Por ejemplo, considere el siguiente fragmento de YAML:

column_index_size_in_kb: 16
read_request_timeout_in_ms: 10000

Cuando se codifica, YAML se convierte en: Y29sdW1uX2luZGV4X3NpemVfaW5fa2I6IDE2CnJlYWRfcmVxdWVzdF90aW1lb3V0X2luX21zOiAxMDAwMA==.

Este es el comando az managed-cassandra datacenter update con el fragmento de YAML codificado:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'
dataCenterLocation='eastus'
yamlFragment='Y29sdW1uX2luZGV4X3NpemVfaW5fa2I6IDE2CnJlYWRfcmVxdWVzdF90aW1lb3V0X2luX21zOiAxMDAwMA=='

az managed-cassandra datacenter update \
    --resource-group $resourceGroupName \
    --cluster-name $clusterName \
    --data-center-name $dataCenterName \
    --base64-encoded-cassandra-yaml-fragment $yamlFragment

Importante

Asegúrese de que la configuración de YAML de Cassandra que proporcione sea adecuada para su versión de Cassandra. Consulte la configuración de Cassandra v3.11 y la configuración de Cassandra v4.0. No se permite actualizar la siguiente configuración de YAML:

  • cluster_name
  • seed_provider
  • initial_token
  • autobootstrap
  • client_encryption_options
  • server_encryption_options
  • transparent_data_encryption_options
  • audit_logging_options
  • authenticator
  • authorizer
  • role_manager
  • storage_port
  • ssl_storage_port
  • native_transport_port
  • native_transport_port_ssl
  • listen_address
  • listen_interface
  • broadcast_address
  • hints_directory
  • data_file_directories
  • commitlog_directory
  • cdc_raw_directory
  • saved_caches_directory
  • endpoint_snitch
  • partitioner
  • rpc_address
  • rpc_interface

Obtención de los centro de datos de un clúster

Obtenga los centros de datos de un clúster con el comando az managed-cassandra datacenter list:

resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'

az managed-cassandra datacenter list \
    --resource-group $resourceGroupName \
    --cluster-name $clusterName

Pasos siguientes