快速入門:使用 Azure CLI 建立適用于 Apache Cassandra 叢集的 Azure 受控執行個體

Azure Managed Instance for Apache Cassandra 可為受控開放原始碼 Apache Cassandra 資料中心提供自動化部署與規模調整作業。 此服務可協助您加速混合式案例,並減少持續維護。

本快速入門示範如何使用 Azure CLI 命令,透過適用于 Apache Cassandra 的 Azure 受控執行個體建立叢集。 它也會示範如何建立資料中心,並在資料中心內相應增加或減少節點。

必要條件

重要

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

建立受控執行個體叢集

  1. 登入 Azure 入口網站

  2. 在 Azure CLI 中設定訂用帳戶識別碼:

    az account set -s <Subscription_ID>
    
  3. 接下來,在資源群組中使用專用子網建立虛擬網路:

    az network vnet create -n <VNet_Name> -l eastus2 -g <Resource_Group_Name> --subnet-name <Subnet Name>
    

    注意

    Apache Cassandra 的 Azure 受控執行個體部署需要網際網路存取。 在網際網路存取受限的環境中,部署失敗。 請確定您不會封鎖 VNet 內的存取,存取受控 Cassandra 正常運作所需的下列重要 Azure 服務:

    • Azure 儲存體
    • Azure KeyVault
    • Azure 虛擬機器擴展集
    • Azure 監視
    • Azure Active Directory
    • Azure 安全性
  4. 將某些特殊許可權套用至受控實例所需的虛擬網路。 az role assignment create使用 命令,將 、 <resourceGroupName><vnetName> 取代 <subscriptionID> 為適當的值:

    az role assignment create \
      --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \
      --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \
      --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>
    

    注意

    assignee上一個命令中的 和 role 值是固定值,請輸入這些值,與命令中所述完全相同。 這麼做會導致建立叢集時發生錯誤。 如果您在執行此命令時遇到任何錯誤,您可能沒有執行它的許可權,請連絡您的系統管理員以取得許可權。

  5. 接下來,使用az managed-cassandra cluster create命令,在您的新建立虛擬網路中建立叢集。 執行下列命令變數的值 delegatedManagementSubnetId

    注意

    您將提供下列變數的值 delegatedManagementSubnetId 與您在上述命令中提供的值 --scope 完全相同:

    注意

    Cassandra 4.0 處於公開預覽狀態,不建議用於生產環境使用案例。

    resourceGroupName='<Resource_Group_Name>'
    clusterName='<Cluster_Name>'
    location='eastus2'
    delegatedManagementSubnetId='/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/<VNet name>/subnets/<subnet name>'
    initialCassandraAdminPassword='myPassword'
    cassandraVersion='3.11' # set to 4.0 for a Cassandra 4.0 cluster
    
    az managed-cassandra cluster create \
      --cluster-name $clusterName \
      --resource-group $resourceGroupName \
      --location $location \
      --delegated-management-subnet-id $delegatedManagementSubnetId \
      --initial-cassandra-admin-password $initialCassandraAdminPassword \
      --cassandra-version $cassandraVersion \
      --debug
    
  6. 最後,使用 az managed-cassandra datacenter create 命令,建立叢集的資料中心,其中包含三個節點 Standard D8s v4 VM SKU,每個節點有 4 個 P30 磁片連結:

    dataCenterName='dc1'
    dataCenterLocation='eastus2'
    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 $delegatedManagementSubnetId \
      --node-count 3 \
      --sku $virtualMachineSKU \
      --disk-capacity $noOfDisksPerNode \
      --availability-zone false
    

    注意

    --sku 的值可以從下列可用的 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

    也請注意,--availability-zone 設為 false。 若要啟用可用性區域,請將此設定為 true。 可用性區域會增加服務的可用性 SLA。 如需詳細資訊,請檢閱這裡的完整 SLA 詳細資料。

    警告

    並非所有區域都支援可用性區域。 如果您選取不支援可用性區域的區域,部署將會失敗。 如需支援的區域,請參閱這裡。 可用性區域是否能成功部署也受限於指定區域中所有區域的計算資源可用性。 如果您選取的 SKU 或容量無法在所有區域使用,部署可能會失敗。

  7. 建立資料中心之後,如果您想要相應增加或相應減少資料中心內的節點,請執行 az managed-cassandra datacenter update 命令。 將 參數的值 node-count 變更為所需的值:

    resourceGroupName='<Resource_Group_Name>'
    clusterName='<Cluster Name>'
    dataCenterName='dc1'
    dataCenterLocation='eastus2'
    
    az managed-cassandra datacenter update \
      --resource-group $resourceGroupName \
      --cluster-name $clusterName \
      --data-center-name $dataCenterName \
      --node-count 9
    

連線至您的叢集

適用于 Apache Cassandra 的 Azure 受控執行個體不會建立具有公用 IP 位址的節點。 若要連線到新建立的 Cassandra 叢集,您必須在虛擬網路內建立另一個資源。 此資源可以是應用程式,或已安裝 Apache 開放原始碼查詢工具 的虛擬機器 CQLSH 。 您可以使用Resource Manager範本來部署 Ubuntu 虛擬機器。

從 CQLSH 連線

部署虛擬機器之後,請使用 SSH 連線到電腦並安裝 CQLSH,如下列命令所示:

# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre

# Install the Cassandra libraries in order to get CQLSH:
echo "deb http://www.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -
sudo apt-get update
sudo apt-get install cassandra

# Export the SSL variables:
export SSL_VERSION=TLSv1_2
export SSL_VALIDATE=false

# Connect to CQLSH (replace <IP> with the private IP addresses of a node in your Datacenter):
host=("<IP>")
initial_admin_password="Password provided when creating the cluster"
cqlsh $host 9042 -u cassandra -p $initial_admin_password --ssl

從應用程式連線

如同 CQLSH,使用其中一個支援的 Apache Cassandra 用戶端驅動程式 從應用程式連線,需要啟用 SSL。 請參閱使用JAVA.NET連線至適用于 Apache Cassandra 的 Azure 受控執行個體範例。 針對 JAVA,強烈建議您啟用 假設式執行原則。 您可以在這裡找到說明運作方式以及如何啟用原則的示範。

建議您停用憑證驗證,因為除非您將叢集節點的 I.P 位址對應至適當的網域,否則憑證驗證將無法運作。 如果您有內部原則,其會強制您對任何應用程式執行 SSL 憑證驗證,您可以藉由為每個節點在主機檔案中新增之類的 10.0.1.5 host1.managedcassandra.cosmos.azure.com 專案來加速此作業。 如果採用此方法,則每當相應增加節點時,您也需要新增專案。

疑難排解

如果您在使用 Azure CLI 將許可權套用至虛擬網路時發生錯誤,例如在圖形資料庫中找不到 'e5007d2c-4b13-4a74-9b6a-605d99f03501' 的使用者或服務主體,您可以從Azure 入口網站手動套用相同的許可權。 瞭解如何 在這裡執行這項操作。

注意

Azure Cosmos DB 角色指派僅供部署之用。 適用于 Apache Cassandra 的 Azure 受控實例在 Azure Cosmos DB 上沒有後端相依性。

清除資源

不再需要時,您可以使用 az group delete 命令來移除資源群組、受控實例和所有相關資源:

az group delete --name <Resource_Group_Name>

下一步

在本快速入門中,您已瞭解如何使用 Azure CLI 為 Apache Cassandra 叢集建立 Azure 受控執行個體。 您現在可以開始使用叢集: