Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Управляемый экземпляр для Apache Cassandra — это полностью управляемая служба для чистых кластеров Apache Cassandra с открытым кодом. Служба также позволяет переопределить конфигурации в зависимости от конкретных потребностей каждой рабочей нагрузки для максимальной гибкости и управления.
В этом кратком руководстве показано, как использовать команды Azure CLI для создания кластера с управляемым экземпляром Azure для Apache Cassandra. В нем также показано, как создать центр обработки данных и масштабировать узлы вверх или вниз в центре обработки данных.
Необходимые компоненты
Используйте среду 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 с подключением к вашей локальной или оборудованной среде. Дополнительные сведения о подключении локальных сред к Azure см. в статье "Подключение локальной сети к Azure".
- Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Внимание
Для этой статьи требуется Azure CLI версии 2.30.0 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Создание кластера с управляемым экземпляром
Войдите на портал Azure.
Задайте идентификатор подписки в Azure CLI:
az account set --subscription <Subscription_ID>Создайте виртуальную сеть с выделенной подсетью в группе ресурсов:
az network vnet create --name <VNet_Name> --location eastus2 \ --resource-group <Resource_Group_Name> --subnet-name <Subnet Name>Для развертывания экземпляра Управляемого экземпляра Azure для Apache Cassandra требуется доступ к Интернету. Развертывание будет завершаться сбоем в средах с ограниченным доступом к Интернету. Убедитесь, что вы не блокируете доступ в виртуальной сети к следующим службам Azure, необходимым для правильной работы Управляемого экземпляра Azure для Apache Cassandra:
- Хранилище Azure
- Azure Key Vault
- Масштабируемые наборы виртуальных машин Azure
- Azure Monitor
- Microsoft Entra ID
- Microsoft Defender для облака
Примените эти определенные разрешения к виртуальной сети. Управляемому экземпляру они необходимы. Используйте команду
az role assignment createи замените<subscriptionID>,<resourceGroupName>и<vnetName>соответствующими значениями.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являются фиксированными. Введите эти значения точно так же, как упоминалось в команде. Если это не сделать, возникают ошибки при создании кластера. Если при выполнении этой команды возникают какие-либо ошибки, возможно, у вас нет разрешений на его запуск. Обратитесь к администратору Azure за разрешениями.Создайте кластер в созданной виртуальной сети с помощью команды az managed-cassandra cluster create . Выполните следующую команду со значением переменной
delegatedManagementSubnetId. (ЗначениеdelegatedManagementSubnetIdявляется тем же самым именем виртуальной сети, для которого были применены разрешения.)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='5.0' # 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Создайте датацентр для кластера с тремя виртуальными машинами. Используйте следующую конфигурацию:
- Размер виртуальной машины: стандартный E8s версии 5
- Диски данных: 4 диска P30, подключенные к каждой развернутой виртуальной машине
После выполнения всех сведений используйте команду az managed-cassandra datacenter create :
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следующих доступных размеров виртуальных машин:- Standard_E8s_v5
- Standard_E16s_v5
- Standard_E20s_v5
- Standard_E32s_v5
По умолчанию свойство
--availability-zoneимеет значениеfalse. Чтобы включить зоны доступности, задайте для него значениеtrue. Зоны доступности помогают повысить доступность службы. Дополнительные сведения см. в разделе Соглашения об уровнях обслуживания для веб-служб.Зоны доступности не поддерживаются во всех регионах Azure. Развертывание не удается, если выбрать регион, где зоны доступности не поддерживаются. Поддерживаемые регионы см. в списке регионов Azure.
Успешное развертывание зон доступности зависит от доступности вычислительных ресурсов во всех зонах выбранного региона. Развертывание завершается ошибкой, если выбранный размер виртуальной машины недоступен в выбранном регионе.
После создания центра обработки данных можно запустить команду 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
Подключение к кластеру
Управляемый экземпляр Azure для Apache Cassandra не создает узлы с общедоступными IP-адресами. Чтобы подключиться к новому кластеру Cassandra, необходимо создать другой ресурс в одной виртуальной сети. Этот ресурс может быть приложением или виртуальной машиной с установленной оболочкой языка запросов Cassandra (CQLSH). CQLSH — это средство запросов с открытым кодом Apache.
Для развертывания виртуальной машины Ubuntu можно использовать шаблон Azure Resource Manager .
Из-за некоторых известных проблем с версиями Python рекомендуется использовать образ Ubuntu 22.04, который поставляется с Python3.10.12 или виртуальной средой Python для запуска CQLSH.
Подключитесь из CQLSH
После развертывания виртуальной машины используйте Secure Shell для подключения к компьютеру и установки CQLSH. Используйте следующие команды:
# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre
Проверьте, какие версии Cassandra по-прежнему поддерживаются , и выберите нужную версию. Рекомендуется использовать стабильную версию.
Установите библиотеки Cassandra, чтобы получить CQLSH. Выполните официальные шаги из документации Cassandra.
Подключение из приложения
Как и в CQLSH, при использовании одного из поддерживаемых клиентских драйверов Apache Cassandra для подключения из приложения необходимо включить шифрование протокола TLS/SSL, а проверка сертификата должна быть отключена. Примеры см. в разделе Java, .NET, Node.jsи Python.
Рекомендуется отключить проверку сертификата, так как она не работает, если вы не сопоставляете IP-адреса узлов кластера с соответствующим доменом. Если внутренняя политика требует проверки TLS/SSL-сертификата для любого приложения, добавьте записи, как 10.0.1.5 host1.managedcassandra.cosmos.azure.com в файле узлов для каждого узла, чтобы упростить эту настройку. При таком подходе также необходимо добавить новые записи при каждом масштабировании узлов.
Для Java рекомендуется включить политику спекулятивного выполнения в случае, если приложения чувствительны к задержке хвоста. Демонстрация, демонстрирующая работу этого подхода и сведения о том, как включить политику, см. в разделе "Реализация политики спекулятивного выполнения".
Обычно не требуется настраивать сертификаты (напримерrootCA, , nodeclientилиtruststore) для подключения к Управляемому экземпляру Azure для Apache Cassandra. Шифрование TLS/SSL использует хранилище доверия по умолчанию и выбранный клиентом пароль среды выполнения. Пример кода см. в разделе Java, .NET, Node.jsи Python). Сертификаты по умолчанию являются доверенными. Если нет, добавьте их в хранилище доверенных сертификатов.
Настройка сертификатов клиента (необязательно)
Настройка сертификатов клиента является необязательным. Клиентское приложение может подключиться к Управляемому экземпляру Azure для Apache Cassandra после выполнения описанных выше действий. Если вы предпочитаете, можно также создать и настроить сертификаты клиента для проверки подлинности. Как правило, существует два способа создания сертификатов:
- Самозаверяющий сертификат: Частные и общедоступные сертификаты без центра сертификации (ЦС) для каждого узла. В этом случае требуются все общедоступные сертификаты.
- Сертификаты, подписанные ЦС: Сертификаты, выданные самозаверяющей ЦС или общедоступным ЦС. Для этой установки вам потребуется корневой сертификат ЦС и все промежуточные сертификаты, если это применимо. Дополнительные сведения см. в статье "Подготовка SSL-сертификатов для рабочей среды".
Чтобы реализовать проверку подлинности сертификата клиента к узлу или взаимную безопасность транспортного уровня, предоставьте сертификаты с помощью Azure CLI. Следующая команда загружает и применяет клиентские сертификаты в хранилище сертификатов для управляемого экземпляра Azure в кластере Apache Cassandra. Вам не нужно изменять cassandra.yaml параметры. После применения сертификатов кластеру требуется Cassandra для проверки сертификатов во время клиентских подключений. См. дополнительные сведения в require_client_auth: true в client_encryption_options Cassandra.
resourceGroupName='<Resource_Group_Name>'
clusterName='<Cluster Name>'
az managed-cassandra cluster update \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--client-certificates /usr/csuser/clouddrive/rootCert.pem /usr/csuser/clouddrive/intermediateCert.pem
Устранение неполадок
При возникновении ошибки при применении разрешений к виртуальной сети с помощью Azure CLI можно применить то же разрешение вручную на портале Azure. Пример такой ошибки : "Не удается найти пользователя или представитель службы в графовой базе данных для e5007d2c-4b13-4a74-9b6a-605d99f03501." Дополнительные сведения см. в разделе Используйте портал Azure для добавления представителя службы Azure Cosmos DB.
Назначение роли Azure Cosmos DB используется только в целях развертывания. Управляемый экземпляр Azure для Apache Cassandra не имеет внутренних зависимостей в Azure Cosmos DB.
Очистка ресурсов
Если ресурс больше не нужен, используйте az group delete команду для удаления группы ресурсов, управляемого экземпляра и всех связанных ресурсов:
az group delete --name <Resource_Group_Name>
Следующий шаг
Из этого краткого руководства вы узнали, как создать управляемый экземпляр Azure для кластера Apache Cassandra с помощью Azure CLI. Теперь можно приступить к работе с кластером: