你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用客户端配置器和 Azure Managed Instance for Apache Cassandra 配置混合群集
Azure 客户端配置器是一种工具,旨在帮助配置混合群集和简化迁移到适用于 Apache Cassandra 的 Azure 托管实例的过程。 如果当前有本地数据中心或在自承载环境中运行,则可以使用适用于 Apache Cassandra 的 Azure 托管实例将其他数据中心无缝整合到群集中,同时有效维护这些数据中心。
重要
客户端配置器工具为公共预览版。 此功能不附带服务级别协议,不建议将其用于生产工作负载。 有关详细信息,请参阅 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 订阅 ID。
- cluster-resource-group:群集所在的资源组。
- cluster-name:Azure 托管实例群集名称。
- initial-password:适用于 Apache Cassandra 的 Azure 托管实例群集的密码。
- vnet-resource-group:附加到虚拟网络的资源组。
- vnet-name:附加到群集的虚拟网络的名称。
- subnet-name:分配给 Cassandra 群集的 IP 地址的名称。
- 位置:群集的部署位置。
- 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
确保该脚本可执行。 - 该脚本安装连接到 Azure 托管实例群集所需的新证书,并将 Cassandra 指向这些新证书。
- 然后,该脚本提示用户重启 Cassandra。
- 通过运行
一旦 Cassandra 在所有节点上重启完毕,就可以检查
nodetool status
。 这两个数据中心均应在列表中显示,且其节点为 UN(启用/正常)状态。然后可从适用于 Apache Cassandra 的 Azure 托管实例中选择
AllKeyspaces
,更改 Keyspace 架构中的复制设置并启动迁移到 Cassandra 托管实例群集的过程。
提示
应通过 arm 模板启用自动复制设置。 arm 模板应包括:
"properties":{
...
"externalDataCenters": ["dc-name-1","dc-name-2"],
"autoReplicate": "AllKeyspaces",
...
}
警告
这会更改所有密钥空间定义,使其包含 WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }
。
如果这不是所需拓扑,需要调整它并在 Cassandra 托管实例群集上手动运行 nodetool rebuild
。
详细了解自动复制
[!INFO]
后续步骤
在本快速入门中,你了解了如何使用 Azure Managed Instance for Apache Cassandra 客户端配置器创建混合群集。 现在你可开始使用该群集了。