Azure 用戶端配置工具是一種工具,旨在協助您配置混合式叢集,並簡化遷移至適用於 Apache Cassandra 的 Azure 受管實例的過程。 如果您目前有內部部署資料中心,或是在自我裝載環境中作業,則可以使用 Azure Managed Instance for Apache Cassandra,將其他資料中心順暢地併入您的叢集中,同時有效地維護這些資料中心。
重要事項
Client Configurator 工具處於公開預覽狀態。 此功能已推出但不提供服務等級協定。 不建議將其用於生產工作負載。
如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
先決條件
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱開始使用 Azure Cloud Shell。
若要在本機執行 CLI 參考命令,請安裝 (部分機器翻譯) Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱如何在 Docker 容器中執行 Azure CLI。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,以完成驗證流程。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能的詳細資訊,請參閱 使用和管理 Azure CLI 的擴充功能。
執行 az version (部分機器翻譯) 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
本文需要 Azure CLI 2.30.0 版或更新版本。 若您使用的是 Azure Cloud Shell,即已安裝最新版本。
使用與您自我托管或內部部署環境連線的 Azure 虛擬網路。 如需如何將內部部署環境連線至 Azure 的詳細資訊,請參閱 將內部部署網路連線至 Azure。
需要 Python 安裝。 若要檢查是否已安裝 Python,請在終端機中執行
python --version。確定 Apache Cassandra 叢集和內部部署 Cassandra 叢集的 Azure 受控實例都位於相同的虛擬網路上。 如果沒有,您需要建立網路對等互連或其他連線方式。 例如,使用 Azure ExpressRoute。
受控叢集和本機叢集的叢集名稱必須相同。
在 檔案中
cassandra.yaml,確定記憶體埠設定為 7001,且叢集名稱與受控叢集相同:cluster_name: managed_cluster-name storage_port: 7001UPDATE 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-IDAzure 訂用帳戶識別碼 cluster-resource-group叢集所在的資源群組 cluster-nameAzure Managed Instance for Apache Cassandra 叢集名稱 initial-password適用於 Apache Cassandra 叢集的 Azure 受控實例密碼 vnet-resource-group連結至虛擬網路的資源群組 vnet-name連結至叢集的虛擬網路名稱 subnet-name配置給 Cassandra 叢集的 IP 位址名稱 location部署叢集的位置 seed-nodes內部部署或自我裝載 Cassandra 叢集中現有資料中心的種子節點 mi-dc-name適用於 Apache Cassandra 叢集的 Azure 受控實例的數據中心名稱 dc-name內部部署叢集的數據中心名稱 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。在 Cassandra 在所有節點上完成重新啟動之後,請檢查
nodetool status。 這兩個數據中心都應該出現在清單中,且其節點處於UN (Up/Normal)狀態。接著,從 Apache Cassandra 的 Azure 受控實例實例中,您可以選取
AllKeyspaces以變更 Keyspace 架構中的複寫設定,並開始移轉至適用於 Cassandra 叢集的 Azure 受控實例。使用 Azure Resource Manager 模板 (ARM 模板) 啟用
autoReplicate設定。 ARM 範本應該包括:"properties":{ ... "externalDataCenters": ["dc-name-1","dc-name-2"], "autoReplicate": "AllKeyspaces", ... }所有鍵空間的定義都會變更為包含
WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }。 如果此拓撲不是您想要的,請調整拓撲,並在 Apache Cassandra 叢集的 Azure 受控實例上手動執行nodetool rebuild。深入了解自動復寫。
選取 [資料中心 ] 窗格,以更新和監視數據復寫進度。

