使用 Azure CLI 管理 Apache Cassandra 資源的 Azure 受控執行個體
本文說明使用 Azure CLI 自動管理 Apache Cassandra 叢集和數據中心的 Azure 受控執行個體 的常見命令。
必要條件
在 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,即已安裝最新版本。
重要
您無法為 Apache Cassandra 資源重新命名管理 Azure 受控執行個體。 重新命名這些資源違反了 Azure Resource Manager 與資源 URI 的運作方式。
管理叢集
下列各節示範如何管理適用於 Apache Cassandra 叢集的 Azure 受控執行個體:
建立叢集
使用 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
依訂用帳戶識別碼列出叢集
使用 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