Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Управляемый экземпляр для Apache Cassandra — это полностью управляемая служба для чистых кластеров Apache Cassandra с открытым кодом. Служба также позволяет переопределить конфигурации в зависимости от конкретных потребностей каждой рабочей нагрузки для максимальной гибкости и управления.
В этом кратком руководстве показано, как с помощью команд Azure CLI настроить кластер с несколькими регионами в Azure.
Необходимые компоненты
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Для этой статьи требуется Azure CLI версии 2.30.0 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
- Используйте виртуальную сеть Azure с подключением к вашей локальной или оборудованной среде. Дополнительные сведения о подключении локальных сред к Azure см. в статье "Подключение локальной сети к Azure".
Настройка сетевой среды
Так как все центры обработки данных, подготовленные этой службой, должны быть развернуты в выделенных подсетях с помощью внедрения виртуальной сети, настройте соответствующий пиринг сети заранее. Для этого краткого руководства создайте кластер с двумя центрами обработки данных в отдельных регионах: восточная часть США и восточная часть США 2. Сначала создайте виртуальные сети для каждого региона.
Войдите на портал Azure.
Создайте группу ресурсов с именем
cassandra-mi-multi-region:az group create --location eastus2 --name cassandra-mi-multi-regionСоздайте первую виртуальную сеть в восточной части США 2 с выделенной подсетью:
az network vnet create \ --name vnetEastUs2 \ --location eastus2 \ --resource-group cassandra-mi-multi-region \ --address-prefix 10.0.0.0/16 \ --subnet-name dedicated-subnetСоздайте вторую виртуальную сеть в Восточной части США, а также выделенную подсеть:
az network vnet create \ --name vnetEastUs \ --location eastus \ --resource-group cassandra-mi-multi-region \ --address-prefix 192.168.0.0/16 \ --subnet-name dedicated-subnetМы сознательно добавляем различные диапазоны IP-адресов, чтобы гарантировать отсутствие ошибок при пирингу.
Соедините первую виртуальную сеть со второй виртуальной сетью.
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet1ToMyVnet2 \ --vnet-name vnetEastUs2 \ --remote-vnet vnetEastUs \ --allow-vnet-access \ --allow-forwarded-trafficЧтобы подключить две виртуальные сети, создайте другой пиринг между второй виртуальной сетью и первой:
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet2ToMyVnet1 \ --vnet-name vnetEastUs \ --remote-vnet vnetEastUs2 \ --allow-vnet-access \ --allow-forwarded-trafficПри добавлении дополнительных регионов для каждой виртуальной сети требуется пиринг от неё ко всем другим виртуальным сетям и от всех других виртуальных сетей к ней.
Проверьте выходные данные предыдущей команды. Убедитесь, что значение
peeringStateтеперь равноConnected. Вы также можете проверить этот результат, выполнив следующую команду:az network vnet peering show \ --name MyVnet1ToMyVnet2 \ --resource-group cassandra-mi-multi-region \ --vnet-name vnetEastUs2 \ --query peeringStateПримените некоторые специальные разрешения для обеих виртуальных сетей. Для Azure Управляемый экземпляр для Apache Cassandra требуются эти разрешения. Выполните следующую команду. Замените
<SubscriptionID>идентификатором своей подписки.az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2 az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUsassigneeЗначенияrole, приведенные в предыдущей команде, являются фиксированными значениями. Введите эти значения точно, как показано в команде.
Если при запуске az role assignment createвозникают ошибки, возможно, у вас нет разрешений на его запуск. Обратитесь к администратору с разрешениями.
Создание кластера с несколькими регионами
Разверните ресурс кластера. Замените
<Subscription ID>идентификатором своей подписки. Развертывание может занять от 5 до 10 минут.resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' location='eastus2' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet' initialCassandraAdminPassword='myPassword' az managed-cassandra cluster create \ --cluster-name $clusterName \ --resource-group $resourceGroupName \ --location $location \ --delegated-management-subnet-id $delegatedManagementSubnetId \ --initial-cassandra-admin-password $initialCassandraAdminPassword \ --debugПосле создания ресурса кластера вы можете создать центр обработки данных. Сначала создайте центр обработки данных в восточной части США 2. Замените
<SubscriptionID>идентификатором своей подписки. Это действие может занять до 10 минут.resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' dataCenterName='dc-eastus2' dataCenterLocation='eastus2' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet' 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Создайте центр обработки данных на востоке США. Замените
<SubscriptionID>идентификатором своей подписки.resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' dataCenterName='dc-eastus' dataCenterLocation='eastus' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs/subnets/dedicated-subnet' 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следующих доступных уровней продуктов:- 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) службы. Дополнительные сведения см. в соглашениях об уровне обслуживания для Управляемого экземпляра Azure для Apache Cassandra.Зоны доступности не поддерживаются во всех регионах. Развертывание не удается, если выбрать регион, где зоны доступности не поддерживаются. Сведения о поддерживаемых регионах см. в регионах Azure с зонами доступности.
Успешное развертывание зон доступности также зависит от доступности вычислительных ресурсов во всех зонах в определенном регионе. Развертывание может завершиться ошибкой, если выбранный уровень продукта или емкость недоступен во всех зонах.
После создания второго датацентра проверьте статус узлов, чтобы убедиться, что все узлы Cassandra успешно запущены.
resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' az managed-cassandra cluster status\ --cluster-name $clusterName \ --resource-group $resourceGroupNameЗатем используйте CQLSH для подключения к кластеру. Используйте следующий запрос CQL, чтобы обновить стратегию репликации в каждом пространстве ключей, чтобы включить все центры обработки данных в кластере (системные таблицы обновляются автоматически):
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};Наконец, если вы добавите центр обработки данных в кластер, который уже содержит данные, необходимо выполнить репликацию
rebuildисторических данных. В этом случае предположим, что вdc-eastus2центре обработки данных уже есть данные. В Azure CLI выполните следующую команду, чтобы запуститьnodetool rebuildна каждом узле в новомdc-eastusцентре обработки данных. Замените<ip address>IP-адрес узла:az managed-cassandra cluster invoke-command \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --host <ip address> \ --command-name nodetool --arguments rebuild="" "dc-eastus2"=""Не разрешайте клиентам приложений записывать данные в новый центр обработки данных до тех пор, пока не будут применены изменения репликации пространства ключей. В противном случае перестроение не работает. Затем необходимо создать запрос на поддержку, чтобы наша команда выполнила
repairдля вас.
Устранение неполадок
При возникновении ошибки при применении разрешений к виртуальной сети с помощью Azure CLI можно применить то же разрешение вручную на портале Azure. Пример ошибки : "Не удается найти пользователя или субъекта-службы в графовой базе данных". e5007d2c-4b13-4a74-9b6a-605d99f03501 Дополнительные сведения см. на портале Azure для добавления субъекта-службы Azure Cosmos DB.
Назначение роли Azure Cosmos DB используется только в целях развертывания. Управляемый экземпляр Azure для Apache Cassandra не имеет внутренних зависимостей в Azure Cosmos DB.
Очистка ресурсов
Если вы не собираетесь продолжать использовать этот кластер управляемых экземпляров, выполните следующие действия, чтобы удалить его:
- На портале Azure в меню слева выберите Группы ресурсов.
- В списке выберите группу ресурсов, созданную для этого краткого руководства.
- В области Обзор на странице группы ресурсов выберите Удалить группу ресурсов.
- На следующей панели введите имя группы ресурсов, чтобы удалить, и нажмите кнопку "Удалить".
Следующий шаг
Из этого краткого руководства вы узнали, как создать кластер с несколькими регионами с помощью Azure CLI и Управляемого экземпляра Azure для Apache Cassandra. Теперь можно приступить к работе с кластером.