Развертывание кластера больших данных SQL Server в Службе Azure Kubernetes (AKS) с помощью скрипта Python

Область применения: SQL Server 2019 (15.x)

Важно!

Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.

В этом руководстве вы используете пример скрипта развертывания Python для развертывания SQL Server 2019 Кластеры больших данных в Служба Azure Kubernetes (AKS).

Совет

AKS — это единственный вариант размещения Kubernetes для кластера больших данных. Дополнительные сведения о других вариантах развертывания, а также о настройке параметров развертывания см. в статье "Как развернуть SQL Server Кластеры больших данных в Kubernetes".

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

Необходимые компоненты

  • Подписка Azure.
  • Средства больших данных:
    • azdata
    • kubectl
    • Azure Data Studio
    • Расширение SQL Server 2019
    • Azure CLI

Вход в учетную запись Azure

Скрипт использует Azure CLI для автоматизации создания кластера AKS. Перед выполнением скрипта необходимо по крайней мере один раз войти в учетную запись Azure с помощью Azure CLI. В командной строке выполните следующую команду: Дополнительные сведения см. в разделе Вход с помощью Azure CLI.

az login

Скачивание скрипта развертывания

В этом руководстве рассматривается автоматизация создания кластера больших данных в AKS с помощью скрипта Python deploy-sql-big-data-aks.py. Если вы уже установили Python для azdata, вы сможете успешно запустить скрипт, который приводится в этом руководстве.

В командной строке PowerShell в Windows или Bash в Linux выполните следующую команду, чтобы скачать скрипт развертывания из GitHub:

curl -o deploy-sql-big-data-aks.py "https://raw.githubusercontent.com/Microsoft/sql-server-samples/master/samples/features/sql-big-data-cluster/deployment/aks/deploy-sql-big-data-aks.py"

Выполнение скрипта развертывания

В командной строке PowerShell в Windows или Bash в Linux выполните следующие шаги, чтобы выполнить скрипт развертывания. Этот скрипт создаст службу AKS в Azure, а затем развернет кластер больших данных SQL Server 2019 в AKS. Можно также изменить переменные среды в скрипте, чтобы создать пользовательское развертывание.

  1. Выполните скрипт с помощью следующей команды:

    python deploy-sql-big-data-aks.py
    

    Примечание.

    При наличии как python3, так и python2 по пути на клиентском компьютере команду необходимо выполнить с использованием python3: python3 deploy-sql-big-data-aks.py.

  2. При появлении запроса введите указанные ниже сведения.

    значение Описание
    Идентификатор подписки Azure Идентификатор подписки Azure, которую следует использовать для AKS. Чтобы получить список всех подписок и их идентификаторов, выполните команду az account list из другой командной строки.
    Группа ресурсов Azure Имя группы ресурсов Azure, создаваемой для кластера AKS.
    Регион Azure Регион Azure для нового кластера AKS (по умолчанию westus).
    Размер машины Размер машины, который следует использовать для узлов в кластере AKS (по умолчанию Standard_D16s_v3).
    Рабочие узлы Число рабочих узлов в кластере AKS (по умолчанию 1).
    Имя кластера Имя кластера AKS и кластера больших данных. Имя кластера больших данных должно содержать только строчные буквы и цифры без пробелов. (Имя по умолчанию — sqlbigdata.)
    Пароль Пароль для контроллера, шлюза HDFS/Spark и главного экземпляра (по умолчанию MySQLBigData2019).
    Username Имя пользователя контроллера (по умолчанию admin).

    Важно!

    Размер компьютера по умолчанию Standard_D16s_v3 может быть недоступен в каждом регионе Azure. Если вы выбираете другой размер машины, имейте в виду, что общее количество дисков, которые можно подключить во всех узлах кластера, должно быть не меньше 24. Для каждого утверждения постоянного тома в кластере требуется подключенный диск. В настоящее время для кластера больших данных требуется 24 утверждения постоянных томов.

    Выполните следующую команду, чтобы определить доступные типы виртуальных машин.

    az vm list-sizes --query "sort_by(@,&name)[?contains(name,'Standard_D16s')]" -l westus2 -o table
    

    Примечание.

    Учетная запись sa SQL Server отключена во время развертывания кластера больших данных. В основном экземпляре SQL Server подготавливается новая учетная запись sysadmin с именем пользователя, соответствующим введенному в поле Имя пользователя значению, и паролем, соответствующим значению, введенному в поле Пароль. Те же значения Имя пользователя и Пароль используются для подготовки пользователя с полномочиями администратора контроллера. В кластерах, развернутых до выпуска SQL Server 2019 с накопительным пакетом обновления 5 (CU5), единственный пользователь, поддерживаемый для шлюза (Knox), — root. При этом пароль такой же, как указано выше.

    Начиная с SQL Server 2019 (15.x) CU 5 при развертывании нового кластера с базовой проверкой подлинности всех конечных точек, включая использование AZDATA_USERNAME шлюза и AZDATA_PASSWORD. Конечные точки в кластерах, которые обновлены до накопительного пакета обновления 5, продолжают использовать root в качестве имени пользователя для подключения к конечной точке шлюза. Это изменение не применяется к развертываниям, в которых используется проверка подлинности с помощью Active Directory. Подробные сведения см. в заметках о выпуске в разделе Учетные данные для доступа к службам через конечную точку шлюза.

  3. Скрипт сначала создает кластер AKS, используя указанные параметры. Это может занять несколько минут.

Отслеживание состояния

После того как скрипт создаст кластер AKS, он задаст необходимые переменные среды с использованием ранее указанных параметров. Далее он вызовет azdata для развертывания кластера больших данных в AKS.

Состояние развертывания выводится в командном окне клиента. В процессе развертывания вы увидите ряд сообщений об ожидании pod контроллера.

2018-11-15 15:42:02.0209 UTC | INFO | Waiting for controller pod to be up...

В течение 10–20 минут вы должны получить уведомление о том, что pod контроллера работает.

2018-11-15 15:50:50.0300 UTC | INFO | Controller pod is running.
2018-11-15 15:50:50.0585 UTC | INFO | Controller Endpoint: https://111.111.111.111:30080

Важно!

Полное развертывание может занять много времени из-за временных затрат на скачивание образов контейнеров для компонентов кластера больших данных. Однако это не должно занять несколько часов. Если у вас возникли проблемы с развертыванием, см. статью "Мониторинг и устранение неполадок с SQL Server Кластеры больших данных".

Проверка кластера

В любой момент во время развертывания можно использовать kubectl или azdata для проверки состояния и сведений о работающем кластере больших данных.

Использование kubectl

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

  1. Чтобы получить сводку состояния всего кластера, выполните следующую команду:

    kubectl get all -n <your-big-data-cluster-name>
    

    Совет

    Если вы не изменили имя кластера больших данных, по умолчанию используется имя sqlbigdata.

  2. Проверьте службы Kubernetes и их внутренние и внешние конечные точки с помощью следующей команды kubectl:

    kubectl get svc -n <your-big-data-cluster-name>
    
  3. Вы также можете проверить состояние объектов pod Kubernetes с помощью следующей команды:

    kubectl get pods -n <your-big-data-cluster-name>
    
  4. Чтобы получить дополнительные сведения об определенном объекте pod, выполните следующую команду:

    kubectl describe pod <pod name> -n <your-big-data-cluster-name>
    

Совет

Дополнительные сведения о мониторинге и устранении неполадок развертывания см. в статье "Мониторинг и устранение неполадок SQL Server Кластеры больших данных".

Подключение к кластеру

После завершения работы скрипта развертывания выходные данные указывают на успешное выполнение.

2018-11-15 16:10:25.0583 UTC | INFO | Cluster state: Ready
2018-11-15 16:10:25.0583 UTC | INFO | Cluster deployed successfully.

Кластер больших данных SQL Server теперь развернут в AKS. Вы можете подключиться к кластеру с помощью Azure Data Studio. Дополнительные сведения см. в статье Подключение к кластеру больших данных SQL Server с помощью Azure Data Studio.

Очистка

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

Предупреждение

Приведенные ниже инструкции служат для удаления кластера AKS, что также приводит к удалению кластера больших данных SQL Server. Если вы хотите сохранить какие-либо базы данных или данные HDFS, перед удалением кластера следует выполнить их резервное копирование.

Выполните следующую команду в Azure CLI, чтобы удалить кластер больших данных и службу AKS в Azure (замените <resource group name> на имя группы ресурсов Azure, указанное в скрипте развертывания):

az group delete -n <resource group name>