快速入門:使用 Azure CLI 建立適用于 Apache Cassandra 叢集的 Azure 受控執行個體
Azure Managed Instance for Apache Cassandra 可為受控開放原始碼 Apache Cassandra 資料中心提供自動化部署與規模調整作業。 此服務可協助您加速混合式案例,並減少持續維護。
本快速入門示範如何使用 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 虛擬網路可連線到自我裝載或內部部署環境。 如需將內部部署環境連線至 Azure 的詳細資訊,請參閱 將內部部署網路連線至 Azure 一文。
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
重要
此文章需要 Azure CLI 2.30.0 版或更新版本。 若您使用的是 Azure Cloud Shell,即已安裝最新版本。
建立受控執行個體叢集
登入 Azure 入口網站
在 Azure CLI 中設定訂用帳戶識別碼:
az account set -s <Subscription_ID>
接下來,在資源群組中使用專用子網建立虛擬網路:
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 安全性
將某些特殊許可權套用至受控實例所需的虛擬網路。
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
值是固定值,請輸入這些值,與命令中所述完全相同。 這麼做會導致建立叢集時發生錯誤。 如果您在執行此命令時遇到任何錯誤,您可能沒有執行它的許可權,請連絡您的系統管理員以取得許可權。接下來,使用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
最後,使用 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 或容量無法在所有區域使用,部署可能會失敗。
建立資料中心之後,如果您想要相應增加或相應減少資料中心內的節點,請執行 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 受控執行個體。 您現在可以開始使用叢集: