Gerenciar os recursos da Instância Gerenciada do Azure para Apache Cassandra usando a CLI do Azure

Este artigo descreve comandos comuns para automatizar o gerenciamento de seus clusters e datacenters da Instância Gerenciada do Azure para Apache Cassandra usando a CLI do Azure.

Pré-requisitos

Este artigo exige a CLI do Azure versão 2.30.0 ou posterior. Se você está usando o Azure Cloud Shell, a última versão já está instalada.

Importante

Você não pode renomear os recursos da Instância Gerenciada do Azure para Apache Cassandra. Renomear esses recursos viola a forma como o Azure Resource Manager trabalha com URIs de recursos.

Gerenciar clusters

As seções a seguir demonstram como gerenciar a Instância Gerenciada do Azure para Apache Cassandra:

Criar um cluster

Crie um cluster de Instância Gerenciada do Azure para Apache Cassandra usando o 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 \

Excluir um cluster

Exclua um cluster usando o comando az managed-cassandra cluster delete:

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

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

Obter detalhes do cluster

Obtenha detalhes do cluster usando o comando az managed-cassandra cluster show:

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

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

Obter o status do nó de cluster

Obtenha o status dos nós do cluster usando o comando az managed-cassandra cluster node-status:

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

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

Listar clusters por grupo de recursos

Liste clusters por grupo de recursos usando o comando az managed-cassandra cluster list:

subscriptionId='MySubscriptionId'
resourceGroupName='MyResourceGroup'

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

Listar clusters por ID de assinatura

Liste clusters por ID de assinatura usando o comando az managed-cassandra cluster list:

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

az managed-cassandra cluster list

Gerenciar datacenters

As seções a seguir demonstram como gerenciar os datacenters da Instância Gerenciada do Azure para Apache Cassandra:

Criar um datacenter

Crie um datacenter usando o 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

Escolha o valor para --sku entre as seguintes opções de máquina virtual (VM) disponíveis:

  • 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

Atualmente, a Instância Gerenciada do Azure para Apache Cassandra não dá suporte à transição entre famílias de VMs. Por exemplo, se você tiver atualmente uma VM Standard_DS13_v2 e estiver interessado em fazer upgrade para uma VM maior, como Standard_DS14_v2, essa opção não estará disponível. No entanto, você pode abrir um tíquete de suporte para solicitar a atualização.

No comando anterior, --availability-zone está definido como false. Para habilitar as zonas de disponibilidade, defina esse valor como true. As zonas de disponibilidade aumentam o contrato de nível de serviço (SLA) para a disponibilidade do serviço. Para obter mais informações, consulte os detalhes completos do SLA.

Aviso

A Instância Gerenciada do Azure para Apache Cassandra não dá suporte a zonas de disponibilidade em todas as regiões. Se você selecionar uma região em que não há suporte para zonas de disponibilidade, as implantações falharão. Consulte a lista de regiões com suporte.

A implantação bem-sucedida de zonas de disponibilidade também está sujeita à disponibilidade de recursos de computação em todas as zonas de uma região. As implantações podem falhar se a VM ou a capacidade que você selecionou não estiver disponível em todas as zonas.

Excluir um datacenter

Exclua um datacenter usando o 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 

Aviso

Se houver mais de um datacenter em seu cluster, será necessário remover todas as referências ao datacenter que você está tentando excluir em qualquer configuração de estratégia de replicação do keyspace primeiro. Esse comando falhará se qualquer keyspace em seu cluster ainda tiver referências ao datacenter.

Obter detalhes do datacenter

Obtenha detalhes do datacenter usando o 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 

Atualizar ou dimensionar um datacenter

Atualize ou dimensione um datacenter usando o 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 dimensionar um datacenter, altere o valor --node-count.

Obter a configuração do Cassandra

Obtenha a configuração YAML atual de um nó usando o 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'

Você pode tornar a saída mais legível usando os seguintes 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

Atualizar a configuração do Cassandra

Altere a configuração do Cassandra em um datacenter usando o comando: az managed-cassandra datacenter update. Você precisa codificar o fragmento YAML em Base64 usando uma ferramenta online.

Por exemplo, considere o seguinte fragmento YAML:

column_index_size_in_kb: 16
read_request_timeout_in_ms: 10000

Quando codificado, o YAML é convertido em: Y29sdW1uX2luZGV4X3NpemVfaW5fa2I6IDE2CnJlYWRfcmVxdWVzdF90aW1lb3V0X2luX21zOiAxMDAwMA==.

Aqui está o comando az managed-cassandra datacenter update com o fragmento 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

Certifique-se de que as configurações de YAML do Cassandra fornecidas sejam adequadas à sua versão do Cassandra. Consulte as configurações do Cassandra v3.11 e do Cassandra v4.0. Você não tem permissão para atualizar as seguintes configurações do 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

Obter datacenters em um cluster

Obtenha datacenters em um cluster usando o comando az managed-cassandra datacenter list:

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

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

Próximas etapas