快速入門:使用 Azure Managed Instance for Apache Cassandra 用戶端設定器設定混合式叢集
Azure 用戶端設定器是一種工具,旨在協助您設定混合式叢集,並簡化移轉至 Azure Managed Instance for Apache Cassandra 的流程。 如果您目前有內部部署資料中心,或是在自我裝載環境中作業,則可以使用 Azure Managed Instance for Apache Cassandra,將其他資料中心順暢地併入您的叢集中,同時有效地維護這些資料中心。
重要
用戶端設定器工具處於公開預覽狀態。 此功能是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 如需詳細資訊,請參閱 Microsoft 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,即已安裝最新版本。
可連線到自我裝載或內部部署環境的 Azure 虛擬網路。 如需將內部部署環境連線至 Azure 的詳細資訊,請參閱將內部部署網路連線到 Azure 一文 (部分機器翻譯)。
需要安裝 Python。 藉由在終端機中執行
python --version
,即可檢查是否已安裝 Python。確定 Azure 受控執行個體和內部部署 Cassandra 叢集都位於相同的虛擬網路上。 如果沒有,則必須建立網路對等互連或其他連線方式 (例如,快速路由)。
受控叢集和本機叢集的叢集名稱必須相同。 * 在 cassandra.yaml 檔案中,確保儲存體埠設定為 7001,且叢集名稱與受控叢集相同:
cluster_name: managed_cluster-name
storage_port: 7001
UPDATE system.local SET cluster_name = 'managed_cluster-name' where key='local';
安裝
- 下載並瀏覽至用戶端設定器資料夾。
- 設定虛擬環境以執行 Python 指令碼:
python3 -m venv env
source env/bin/activate
python3 -m pip install -r requirements.txt
- 登入 Azure CLI
az login
- 使用現有 (內部部署) 叢集中的資訊,在用戶端資料夾中執行 Python 指令碼:
python3 client_configurator.py --subscription-id <subcriptionId> --cluster-resource-group <clusterResourceGroup> --cluster-name <clusterName> --initial-password <initialPassword> --vnet-resource-group <vnetResourceGroup> --vnet-name <vnetName> --subnet-name <subnetName> --location <location> --seed-nodes <seed1 seed2 seed3> --mi-dc-name <managedInstanceDataCenterName> --dc-name <onPremDataCenterName> --sku <sku>
注意
- subscription-id:Azure 訂用帳戶識別碼。
- cluster-resource-group:叢集所在的資源群組。
- cluster-name:Azure 受控執行個體叢集名稱。
- initial-password:Azure Managed Instance for Apache Cassandra 叢集的密碼。
- vnet-resource-group:連結至虛擬網路的資源群組。
- vnet-name:連結至叢集的虛擬網路名稱。
- subnet-name:配置給 Cassandra 叢集的 IP 位址名稱。
- location:部署叢集的位置。
- seed-nodes:內部部署或自我裝載 Cassandra 叢集中現有資料中心的種子節點。
- mi-dc-name:Azure 受控執行個體叢集的資料中心名稱。
- dc-name:內部部署叢集的資料中心名稱。
- sku:虛擬機器 SKU 大小。
Python 指令碼會產生名為
install_certs.tar.gz
的 tar 封存。 * 將此資料夾解壓縮到每個節點上的/etc/cassandra/
。sudo tar -xzvf install_certs.tar.gz -C /etc/cassandra
在
/etc/cassandra/
資料夾內,執行sudo ./install_certs.sh
。- 執行
sudo chmod +x install_certs.sh
,以確定指令碼是可執行的。 - 指令碼會安裝 Cassandra,並指向連線到 Azure 受控執行個體叢集所需的新憑證。
- 然後,提示使用者重新啟動 Cassandra。
- 執行
在所有節點上完成重新啟動 Cassandra 之後,請檢查
nodetool status
。 這兩個資料中心都應該顯示在清單中,且其節點處於 UN (Up/Normal) 狀態。接著,您便可從 Azure Managed Instance for Apache Cassandra 中,選取
AllKeyspaces
以變更 Keyspace 結構描述中的複寫設定,並開始執行移轉至 Cassandra 受控執行個體叢集的移轉流程。
提示
應透過 arm 範本啟用自動複寫設定。 arm 範本應包含:
"properties":{
...
"externalDataCenters": ["dc-name-1","dc-name-2"],
"autoReplicate": "AllKeyspaces",
...
}
警告
這會變更所有 keyspace 定義,以包含 WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }
。
如果這不是您想要的拓撲,您必須加以調整,並在 Cassandra 受控執行個體叢集上手動執行 nodetool rebuild
。
深入了解自動複寫
[!INFO]
下一步
在本快速入門中,您已了解如何使用 Azure Managed Instance for Apache Cassandra 用戶端設定器來建立混合式叢集。 您現在可以開始使用叢集。