Поделиться через


Краткое руководство: создание управляемого экземпляра Azure для кластера Apache Cassandra на портале Microsoft Azure

Azure Управляемый экземпляр для Apache Cassandra — это полностью управляемый сервис для кластеров Apache Cassandra с чистым открытым исходным кодом. Служба также позволяет переопределить конфигурации в зависимости от конкретных потребностей каждой рабочей нагрузки для максимальной гибкости и управления.

В этом кратком руководстве описывается, как создать управляемый экземпляр Azure для кластера Apache Cassandra на портале Microsoft Azure.

Предпосылка

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Создайте кластер управляемых экземпляров

  1. Войдите на портал Azure.

  2. На панели поиска найдите управляемый экземпляр Apache Cassandra и выберите результат.

    Снимок экрана: поиск управляемого экземпляра SQL Azure для Apache Cassandra.

  3. Выберите "Создать управляемый экземпляр" для кластера Apache Cassandra.

    Снимок экрана: кнопка, используемая для создания кластера.

  4. На панели "Создание управляемого экземпляра для Apache Cassandra " введите следующие сведения:

    • Подписка. В раскрывающемся списке выберите подписку Azure.

    • Группа ресурсов. Укажите, хотите ли вы создать новую группу ресурсов или использовать существующую. Группа ресурсов — это контейнер, содержащий связанные ресурсы для решения Azure.

    • Имя кластера: введите имя кластера.

    • Расположение. Выберите расположение для развертывания кластера.

    • Версия Cassandra: выберите версию Apache Cassandra для развертывания.

    • Расширение: выберите расширения для добавления, включая Cassandra Lucene Index. Это относится только к Cassandra версии 3.11.

    • Начальный пароль администратора Cassandra: введите пароль, используемый для создания кластера.

    • Подтвердите пароль администратора Cassandra: повторно введите пароль.

    • Виртуальная сеть: выберите существующую виртуальную сеть и подсеть или создайте новую. Запишите правила сети или вы можете использовать конфигурацию на основе VPN.

    • Назначение ролей. Виртуальные сети требуют специальных разрешений для развертывания управляемых кластеров Cassandra. Установите этот флажок, если вы создаете новую виртуальную сеть или используете существующую виртуальную сеть без разрешений. Если вы используете виртуальную сеть, в которой вы ранее развернули кластеры Cassandra управляемого экземпляра SQL Azure, снимите этот флажок.

      Снимок экрана: вкладка

    Если вы используете виртуальную частную сеть, вам не нужно открывать другое подключение.

    Для развертывания Управляемого экземпляра Azure для Apache Cassandra требуется доступ к Интернету. Развертывание не удается в средах с ограниченным доступом к Интернету. Убедитесь, что вы не блокируете доступ в виртуальной сети к следующим жизненно важным службам Azure, необходимым для правильной работы Управляемого Cassandra. Дополнительные сведения см. в разделе "Обязательные правила исходящей сети".

    • Хранилище Azure

    • Azure Key Vault

    • Масштабируемые наборы виртуальных машин Azure

    • Azure Monitor

    • Microsoft Entra ID

    • Microsoft Defender для облака

    • Автоматическая репликация: выберите форму автоматической репликации. Дополнительные сведения см. в разделе "Репликация по ключу".

    • Стратегия запланированных событий: стратегия, используемая кластером для запланированных событий.

    Совет

    • StopANY означает остановку любого узла при наличии запланированного события для узла.
    • StopByRack означает остановку узлов только в определенной стойке для определенного запланированного события. Например, если для узлов в разных стойках одновременно запланировано несколько событий, узлы остановятся только в одной стойке. Другие узлы в других стойких задерживаются.
  5. Перейдите на вкладку "Центр обработки данных ".

  6. Введите следующие сведения:

    • Имя центра обработки данных: введите имя центра обработки данных в текстовом поле.

    • Зона доступности. Установите этот флажок, если вы хотите включить зоны доступности.

    • Размер номера SKU: выберите из доступных размеров уровня продуктов виртуальной машины.

      Снимок экрана: выбор размера уровня продукта.

    Мы представили кэширование через запись (общедоступную предварительную версию) с помощью уровней продуктов виртуальной машины серии L. Эта реализация направлена на минимизацию хвостовой задержки и повышение производительности чтения, особенно для рабочих процессов с интенсивным чтением. Эти уровни продуктов оснащены локально подключенными дисками, что обеспечивает увеличение IOPS для операций чтения и снижение конечной задержки.

    Кэширование с записью предоставляется без соглашения об уровне обслуживания (SLA). Мы не рекомендуем использовать ее при нагрузках, обычных для рабочих средах. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

    • № дисков: выберите количество дисков p30, которые необходимо подключить к каждому узлу Cassandra.

    • № узлов: выберите количество узлов Cassandra для развертывания в этом центре обработки данных.

      Снимок экрана, на котором показана вкладка центра обработки данных, в которой можно просмотреть значения.

    Зоны доступности не поддерживаются во всех регионах. Развертывание не удается, если выбрать регион, где зоны доступности не поддерживаются. Дополнительные сведения см. в списке регионов Azure.

    Успешное развертывание зон доступности также зависит от доступности вычислительных ресурсов во всех зонах в определенном регионе. Развертывание может завершиться неудачей, если выбранный уровень продукта или емкость недоступны во всех зонах.

  7. Выберите Просмотреть и создать>Создать.

    Создание кластера может занять до 15 минут.

    Снимок экрана: страница проверки и создания кластера.

  8. После завершения развертывания проверьте группу ресурсов, чтобы убедиться, что новый кластер управляемых экземпляров был успешно создан.

    Снимок экрана: страница обзора после создания кластера.

  9. Чтобы просмотреть узлы кластера, перейдите к ресурсу кластера и откройте панель Центра обработки данных .

    Снимок экрана: узлы центра обработки данных.

Масштабирование центра обработки данных

После развертывания кластера с одним центром обработки данных можно масштабировать горизонтально или вертикально. Выделите центр обработки данных и выберите "Масштаб".

Снимок экрана: масштабирование узлов центра обработки данных.

Горизонтальное масштабирование

Для увеличения или уменьшения масштаба на узлах переместите ползунок на нужное значение. Можно также изменить значение. По завершении выберите "Масштаб".

Снимок экрана: выбор количества узлов центра обработки данных.

Вертикальное масштабирование

Чтобы увеличить или уменьшить размер уровня продукта для узлов, выберите параметры в раскрывающемся списке размера SKU . По завершении выберите "Масштаб".

Снимок экрана: выбор размера уровня продукта.

Время, которое требуется для операции масштабирования, зависит от различных факторов. Операция может занять несколько минут. Когда Azure уведомляет вас о завершении операции масштабирования, это не означает, что все узлы присоединились к кольцу Cassandra. Узлы полностью введены в эксплуатацию, когда все они имеют статус работоспособности, и состояние центра обработки данных отображает успешно.

Масштабирование является онлайн-операцией и работает так же, как описано для внесения исправлений. Дополнительные сведения см. в разделе "Исправление".

Добавление центра обработки данных

  1. Чтобы добавить другой центр обработки данных, на панели Центра обработки данных нажмите кнопку "Добавить".

    Снимок экрана: добавление центра обработки данных.

    При добавлении центра обработки данных в другом регионе необходимо выбрать другую виртуальную сеть. Убедитесь, что эта виртуальная сеть имеет подключение к виртуальной сети основного региона, созданной ранее. Кроме того, убедитесь, что все другие виртуальные сети, в которых размещаются центры обработки данных, находятся в кластере управляемых экземпляров. Дополнительные сведения см. в разделе Подключение виртуальных сетей с помощью пиринга виртуальных сетей.

    Перед развертыванием кластера управляемых экземпляров убедитесь, что вы применили соответствующую роль к вашей виртуальной сети. Используйте следующую команду Azure CLI:

       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>
    
  2. Заполните соответствующие поля:

    • Имя центра обработки данных: в раскрывающемся списке выберите подписку Azure.

    • Зона доступности. Выберите, нужно ли включить зоны доступности в этом центре обработки данных.

    • Расположение: расположение, в котором развернут центр обработки данных.

    • Размер SKU: выберите из доступных размеров уровня продуктов виртуальной машины.

    • № дисков: выберите количество дисков p30, которые необходимо подключить к каждому узлу Cassandra.

    • № узлов: выберите количество узлов Cassandra для развертывания в этом центре обработки данных.

    • Виртуальная сеть: выберите существующую виртуальную сеть и подсеть.

      Снимок экрана: страница

    Портал Azure не разрешает создание новой виртуальной сети при добавлении центра обработки данных. Необходимо выбрать существующую виртуальную сеть и убедиться, что есть соединение между подсетями назначения, где развернуты центры обработки данных. Кроме того, необходимо применить соответствующую роль к виртуальной сети, чтобы разрешить развертывание, как описано ранее.

  3. При развертывании центра обработки данных вы сможете просмотреть все сведения о центре обработки данных на панели Центра обработки данных .

    Снимок экрана: ресурсы кластера.

  4. Чтобы обеспечить репликацию между центрами обработки данных, подключитесь к оболочке языка запросов Cassandra (CQLSH) и используйте следующий запрос CQL, чтобы обновить стратегию репликации в каждом пространстве ключей, чтобы включить все центры обработки данных в кластере. Системные таблицы обновляются автоматически.

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc': 3, 'dc2': 3};
    
  5. Если вы добавляете центр обработки данных в кластер, имеющий данные, выполните репликацию rebuild исторических данных. В Azure CLI выполните следующую команду и запустите nodetool rebuild на каждом узле нового центра обработки данных. Это действие заменяет <new dc ip address> IP-адрес узла и заменяет <olddc> имя существующего центра обработки данных:

     az managed-cassandra cluster invoke-command \
       --resource-group $resourceGroupName \
       --cluster-name $clusterName \
       --host <new dc ip address> \
       --command-name nodetool --arguments rebuild="" "<olddc>"=""
    

Не разрешайте клиентам приложений записывать данные в новый центр обработки данных, пока не будут применены изменения репликации пространства ключей. В противном случае перестроение не удается, и вам нужно создать запрос на поддержку, чтобы наша команда запустила repair для вас.

Обновление конфигурации Cassandra

Вы можете использовать команды портала Azure или CLI для обновления конфигурации YamL Cassandra в центре обработки данных. Чтобы обновить параметры на портале, выполните следующие действия.

  1. В разделе "Параметры" выберите "Конфигурация Cassandra". Выделите центр обработки данных, конфигурация которого требуется изменить, а затем нажмите кнопку "Обновить".

    Снимок экрана: выбор центра обработки данных для обновления конфигурации.

  2. В открывавшемся окне введите имена полей в формате YAML, как показано здесь. После этого нажмите кнопку Обновить.

    Снимок экрана: обновление конфигурации Cassandra центра обработки данных.

  3. По завершении обновления на панели конфигурации Cassandra отображаются переопределенные значения.

    Снимок экрана: обновленная конфигурация Cassandra.

    На портале Azure отображаются только переопределенные значения конфигурации Cassandra.

    Убедитесь, что параметры Cassandra YAML соответствуют версии Cassandra, которую вы развернули. Дополнительные сведения см. в разделе [Cassandra v5.0] (https://github.com/apache/cassandra/blob/cassandra-5.0/conf/cassandra.yaml) и Cassandra версии 4.0 для параметров Cassandra версии 3.11 для Cassandra версии 3.11. Невозможно обновить следующие параметры YAML:

    • cluster_name
    • seed_provider
    • initial_token
    • autobootstrap
    • client_encryption_options
    • server_encryption_options
    • transparent_data_encryption_options
    • audit_logging_options
    • authenticator
    • authorizer
    • role_manager
    • storage_port
    • ssl_storage_port
    • native_transport_port
    • native_transport_port_ssl
    • listen_address
    • listen_interface
    • broadcast_address
    • hints_directory
    • data_file_directories
    • commitlog_directory
    • cdc_raw_directory
    • saved_caches_directory
    • endpoint_snitch
    • partitioner
    • rpc_address
    • rpc_interface

Обновление версии Cassandra

Обновления версий Cassandra 5.0 и Turnkey доступны в общедоступной предварительной версии. Эти функции предоставляются без соглашения об уровне обслуживания. Мы не рекомендуем использовать эти функции в производственной среде. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

Вы можете выполнять обновления основной версии на месте непосредственно с портала или с помощью шаблонов Azure CLI, Terraform или Azure Resource Manager.

  1. На вкладке "Обзор" выберите "Обновить".

    Снимок экрана: обновление версии Cassandra.

  2. Выберите версию Cassandra из раскрывающегося списка.

    Не пропускайте версии. Рекомендуется обновить только одну версию на другую. Например, обновите 3.11 до версии 4.0 или 4.0 до версии 4.1 или 4.1 до 5.0.

    Снимок экрана: выбор версии Cassandra.

  3. Нажмите кнопку "Обновить", чтобы сохранить.

Репликация под ключ

Cassandra 5.0 представляет упрощенный подход к развертыванию кластеров с несколькими регионами, которые обеспечивают повышенное удобство и эффективность. Если вы используете функцию репликации под ключом, настройка кластеров с несколькими регионами и управление ими становится более доступным. Вы получаете более гладкую интеграцию и операцию в распределенных средах.

Это обновление сокращает сложности, связанные с развертыванием и обслуживанием конфигураций нескольких регионов. Пользователи могут использовать возможности Cassandra с большей легкостью и эффективностью.

Снимок экрана: выбор параметра из раскрывающегося списка.

  • Нет. Для параметра автоматической репликации задано значение None.
  • Системные пространства ключей: автоматическое восстановление всех системных пространств ключей (system_auth, system_tracesи system_auth).
  • Все пространства ключей: авторепликация всех пространств ключей, мониторинг создания новых пространств и автоматическое применение параметров авторепликации.

Сценарии авторепликации

При добавлении нового центра обработки данных функция авторепликации в Cassandra беспрепятственно выполняется nodetool rebuild для обеспечения успешной репликации данных в добавленном центре обработки данных. Удаление датацентра приводит к его автоматическому удалению из пространств ключей.

Для внешних центров обработки данных, таких как размещенные локально, используйте свойство внешнего центра обработки данных, чтобы включить их в ключевые пространства. Этот подход позволяет Cassandra включать эти внешние центры обработки данных в качестве источников для процесса перестроения.

Если вы установите автоматическую репликацию на все ключевые пространства, ваши пространства ключей будут изменены следующими образом:

WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'on-prem-datacenter-1' : 3, 'mi-datacenter-1': 3 }

Если эта топология вам не подходит, используйте SystemKeyspaces, настройте их вручную и запустите nodetool rebuild вручную в кластере управляемого экземпляра Azure для Apache Cassandra.

Освободить кластер

Для непроизводственных сред можно приостановить или отменить выделение ресурсов в кластере, чтобы избежать их оплаты. Плата за хранение по-прежнему взимается. Сначала измените тип кластера на nonProduction, а затем выберите Deallocate.

Используйте тип кластера NonProduction только для экономии затрат на разработку. Этот тип кластера может быть связан с меньшими уровнями продуктов. Не используйте его для выполнения рабочих нагрузок.

  • Типы кластеров, определенные как NonProduction , не имеют гарантий обслуживания, примененных к ним.
  • Не выполняйте никаких операций со схемами или записи во время деаллокации. Это действие может привести к потере данных. В редких случаях может возникнуть повреждение схемы, требующее ручного вмешательства из группы поддержки.

Снимок экрана, показывающий приостановку кластера.

Устранение неполадок

Если при применении разрешений к виртуальной сети при использовании Azure CLI возникает ошибка, вы можете применить то же разрешение вручную на портале Azure. Пример такой ошибки : "Не удается найти пользователя или представитель службы в графовой базе данных для e5007d2c-4b13-4a74-9b6a-605d99f03501." Дополнительные сведения см. в разделе Используйте портал Azure для добавления представителя службы Azure Cosmos DB.

Назначение роли Azure Cosmos DB предназначено только для целей развертывания. Управляемый экземпляр Azure для Apache Cassandra не имеет внутренних зависимостей в Azure Cosmos DB.

Подключитесь к вашему кластеру

Управляемый экземпляр Azure для Apache Cassandra не создает узлы с общедоступными IP-адресами. Чтобы подключиться к созданному кластеру Cassandra, создайте другой ресурс в виртуальной сети. Этот ресурс может быть приложением или виртуальной машиной с установленным средством запросов с открытым исходным кодом Apache CQLSH . Шаблон можно использовать для развертывания виртуальной машины Ubuntu.

Подключение из CQLSH

После развертывания виртуальной машины используйте Secure Shell для подключения к компьютеру. Чтобы установить CQLSH, используйте следующие команды:

# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre

# Install the Cassandra libraries in order to get CQLSH:
echo "deb http://archive.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -
sudo apt-get update
sudo apt-get install cassandra

# Export the SSL variables:
export SSL_VERSION=TLSv1_2
export SSL_VALIDATE=false

# Connect to CQLSH (replace <IP> with the private IP addresses of a node in your Datacenter):
host=("<IP>")
initial_admin_password="Password provided when creating the cluster"
cqlsh $host 9042 -u cassandra -p $initial_admin_password --ssl

Подключение из приложения

Как и в CQLSH, при использовании одного из поддерживаемых клиентских драйверов Apache Cassandra для подключения из приложения необходимо включить шифрование протокола TLS/SSL, а проверка сертификата должна быть отключена. Примеры, используемые для подключения к Управляемому экземпляру Azure для Apache Cassandra, см. в статье 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, используйте хранилище доверия по умолчанию и пароль среды выполнения, используемой клиентом. Эта среда доверяет управляемому экземпляру Azure для сертификатов Apache Cassandra. В редких случаях, если сертификат не является доверенным, может потребоваться добавить его в хранилище доверия. Пример кода см. в разделе Java, .NET, Node.jsи Python.

Настройка сертификатов клиента (необязательно)

Настройка сертификатов клиента является необязательным. Клиентское приложение может подключиться к Управляемому экземпляру Azure для Apache Cassandra, если предыдущие шаги завершены. Если вы предпочитаете, можно также создать и настроить сертификаты клиента для проверки подлинности. Как правило, существует два способа создания сертификатов:

  • Самозаверяющий сертификат: Частные и общедоступные сертификаты без центра сертификации (ЦС) для каждого узла. В этом случае вам потребуется все общедоступные сертификаты.
  • Сертификаты, подписанные ЦС: Сертификаты, выданные самозаверяющей ЦС или общедоступным ЦС. В этом случае вам нужен сертификат корневого ЦС и все промежуточные сертификаты, если это применимо. Дополнительные сведения см. в статье "Подготовка SSL-сертификатов для рабочей среды".

Если вы хотите реализовать проверку подлинности сертификата клиента на узел или взаимную проверку подлинности на уровне транспорта (mTLS), используйте Azure CLI для предоставления сертификатов. Следующая команда загружает и применяет клиентские сертификаты в хранилище доверенных данных для управляемого кластера экземпляров. Вам не нужно изменять 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

Очистка ресурсов

Если вы не собираетесь продолжать использовать этот кластер управляемых экземпляров, выполните следующие действия, чтобы удалить его:

  1. На портале Azure в меню слева выберите Группы ресурсов.
  2. В списке выберите группу ресурсов, созданную для этого краткого руководства.
  3. В области Обзор на странице группы ресурсов выберите Удалить группу ресурсов.
  4. На следующей панели введите имя группы ресурсов, чтобы удалить, и нажмите кнопку "Удалить".

Следующий шаг