你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure CLI 管理 Azure Managed Instance for Apache Cassandra 资源

本文介绍了使用 Azure CLI 自动管理 Azure Managed Instance for Apache Cassandra 群集和数据中心的常用命令。

先决条件

本文需要 Azure CLI 2.30.0 或更高版本。 如果你使用的是 Azure Cloud Shell,则表示已安装最新版本。

重要

不能重命名“管理 Azure Managed Instance for Apache Cassandra”资源。 重命名这些资源违反了 Azure 资源管理器使用资源 URI 的方式。

管理群集

以下部分演示了如何管理 Azure Managed Instance for Apache Cassandra 群集:

创建群集

通过使用 az managed-cassandra cluster create 命令来创建 Azure Managed Instance for Apache Cassandra 群集:

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 \

删除群集

通过使用 az managed-cassandra cluster delete 命令来删除群集:

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

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

获取群集详细信息

通过使用 az managed-cassandra cluster show 命令来获取群集详细信息:

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

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

获取群集节点状态

通过使用 az managed-cassandra cluster node-status 命令来获取群集节点状态:

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

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

按资源组列出群集

通过使用 az managed-cassandra cluster list 命令来按资源组列出群集:

subscriptionId='MySubscriptionId'
resourceGroupName='MyResourceGroup'

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

按订阅 ID 列出群集

通过使用 az managed-cassandra cluster list 命令来按订阅 ID 列出群集:

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

az managed-cassandra cluster list

管理数据中心

以下部分演示了如何管理 Azure Managed Instance for Apache Cassandra 数据中心:

创建数据中心

通过使用 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

从以下可用虚拟机 (VM) 选项中选择 --sku 的值:

  • 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

目前,Azure Managed Instance for Apache Cassandra 不支持跨 VM 系列转换。 例如,如果你当前拥有 Standard_DS13_v2 VM,想升级到更高版本的 VM(如 Standard_DS14_v2),则此选项不可用。 但是,你可以通过创建支持工单来请求升级。

在上面的命令中,--availability-zone 设置为 false。 若要启用可用性区域,请将此值设置为 true。 可用性区域增强了服务可用性的服务级别协议 (SLA)。 有关详细信息,请查看完整 SLA 详细信息

警告

Azure Managed Instance for Apache Cassandra 不支持所有区域中的可用性区域。 如果选择不支持可用性区域的区域,部署将会失败。 请参阅支持的区域列表

可用性区域的成功部署还受限于一个区域内所有区域中的计算资源的可用性。 如果所选 VM 或容量在所有区域中不可用,则部署可能会失败。

删除数据中心

通过使用 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 

警告

如果群集中具有多个数据中心,则必须首先删除对尝试在任何密钥空间复制策略设置中删除的数据中心的任何引用。 如果群集内的任何密钥空间中仍有对数据中心的引用,则此命令将失败。

获取数据中心详细信息

通过使用 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 

更新或缩放数据中心

通过使用 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 

若要缩放数据中心,请更改 --node-count 值。

获取 Cassandra 配置

使用 az managed-cassandra cluster invoke-command 命令获取节点的当前 YAML 配置:

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'

可以使用以下命令使输出更具可读性:

$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

更新 Cassandra 配置

使用 az managed-cassandra datacenter update 命令更改数据中心中的 Cassandra 配置。 需使用在线工具对 YAML 片段进行 Base64 编码。

例如,请考虑以下 YAML 片段:

column_index_size_in_kb: 16
read_request_timeout_in_ms: 10000

编码后,该 YAML 将转换为:Y29sdW1uX2luZGV4X3NpemVfaW5fa2I6IDE2CnJlYWRfcmVxdWVzdF90aW1lb3V0X2luX21zOiAxMDAwMA==

下面是带有编码后 YAML 片段的 az managed-cassandra datacenter update 命令:

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

重要

确保提供的 Cassandra YAML 设置适用于 Cassandra 版本。 请参阅 Cassandra v3.11 设置Cassandra v4.0 设置。 以下 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

获取群集中的数据中心

通过使用 az managed-cassandra datacenter list 命令来获取群集中的数据中心:

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

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

后续步骤