使用 Azure CLI 管理 Apache Cassandra 資源的 Azure 受控執行個體

本文說明使用 Azure CLI 自動管理 Apache Cassandra 叢集和數據中心的 Azure 受控執行個體 的常見命令。

必要條件

本文需要 Azure CLI 2.30.0 版或更新版本。 若您使用的是 Azure Cloud Shell,即已安裝最新版本。

重要

您無法為 Apache Cassandra 資源重新命名管理 Azure 受控執行個體。 重新命名這些資源違反了 Azure Resource Manager 與資源 URI 的運作方式。

管理叢集

下列各節示範如何管理適用於 Apache Cassandra 叢集的 Azure 受控執行個體:

建立叢集

使用 az managed-cassandra cluster create 命令建立 Apache Cassandra 叢集的 Azure 受控執行個體:

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

依訂用帳戶標識碼列出叢集

使用 az managed-cassandra cluster list 命令, 依訂用帳戶標識符列出 叢集:

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

az managed-cassandra cluster list

管理數據中心

下列各節示範如何管理適用於 Apache Cassandra 數據中心的 Azure 受控執行個體:

建立數據中心

使用 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
  • 標準 DS13_v2
  • 標準 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

目前,適用於 Apache Cassandra 的 Azure 受控執行個體 不支援跨 VM 系列轉換。 例如,如果您目前有Standard_DS13_v2 VM,而且想要升級至較大的 VM,例如Standard_DS14_v2,則無法使用此選項。 不過,您可以開啟支援票證來要求升級。

在上述命令中, --availability-zone 會設定為 false。 若要開啟可用性區域,請將此值設定為 true。 可用性區域會增加服務可用性的服務等級協定(SLA)。 如需詳細資訊,請檢閱 完整的 SLA 詳細數據

警告

適用於 Apache Cassandra 的 Azure 受控執行個體 不支援所有區域中的可用性區域。 如果您選取不支援可用性區域的區域,部署將會失敗。 請參閱支援的區域清單。

成功部署可用性區域也會受限於區域中所有區域的計算資源可用性。 如果 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 

警告

如果您的叢集中有多個資料中心,您必須先移除嘗試在任何 keyspace 複寫策略設定中刪除之資料中心的任何參考。 如果叢集中的任何索引鍵空間仍然有數據中心的參考,此命令將會失敗。

取得資料中心詳細數據

使用 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 組態。 您必須使用 在線工具,以Base64編碼YAML片段。

例如,請考慮下列 YAML 片段:

column_index_size_in_kb: 16
read_request_timeout_in_ms: 10000

編碼時,YAML 會轉換成: Y29sdW1uX2luZGV4X3NpemVfaW5fa2I6IDE2CnJlYWRfcmVxdWVzdF90aW1lb3V0X2luX21zOiAxMDAwMA==

以下是 az managed-cassandra datacenter update 具有編碼 YAML 片段的命令:

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

下一步