你当前正在访问 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 Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
本文需要 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 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