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


Развертывание кластеров больших данных SQL Server в локальной среде OpenShift и Azure Red Hat OpenShift

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

Important

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

В этой статье объясняется, как развернуть кластер больших данных SQL Server в средах OpenShift, локально или в Azure Red Hat OpenShift (ARO).

Tip

Чтобы быстро загрузить пример среды с помощью ARO, а затем развернуть BDC на этой платформе, можно использовать скрипт Python, доступный здесь.

Кластеры больших данных можно развернуть в локальной среде OpenShift или в Azure Red Hat OpenShift (ARO). Проверьте версию OpenShifts CRI-O по сравнению с протестированными конфигурациями, указанными в заметках о выпуске кластеров больших данных SQL Server. Хотя рабочий процесс развертывания аналогичен развертыванию на других платформах на основе Kubernetes (kubeadm и AKS), существуют некоторые различия. Разница в основном заключается в запуске приложений от имени пользователя, не обладающего правами root, и в контексте безопасности, в котором развертывается пространство имен BDC.

Сведения о развертывании кластера OpenShift в локальной среде см. в документации по Red Hat OpenShift. Для развертываний ARO см. Azure Red Hat OpenShift.

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

Pre-requisites

Important

Предварительные условия должны быть выполнены администратором кластера OpenShift (роль кластера cluster-admin), который имеет достаточные разрешения для создания этих объектов уровня кластера. Дополнительные сведения о ролях кластера в OpenShift см. в статье Использование RBAC для определения и применения разрешений.

  1. Убедитесь, что pidsLimit настройка OpenShift была обновлена для размещения рабочих нагрузок SQL Server. Значение по умолчанию в OpenShift слишком низко для производственной среды с рабочими нагрузками. Начните по крайней мере с 4096, но оптимальное значение зависит от max worker threads параметра в SQL Server и количества процессоров на узле OpenShift.

    • Чтобы узнать, как обновить pidsLimit кластер OpenShift, используйте эти инструкции. Обратите внимание, что версии OpenShift до 4.3.5 имели дефект, из-за которого обновленное значение не вступает в силу. Обязательно обновите OpenShift до последней версии.
    • Чтобы вычислить оптимальное значение в зависимости от среды и запланированных рабочих нагрузок SQL Server, можно использовать оценку и примеры ниже.
    Количество процессоров Максимальное число рабочих потоков по умолчанию Работники по умолчанию на один процессор Минимальное значение pidsLimit
    64 512 16 512 + (64 *16) = 1536
    128 512 32 512 + (128*32) = 4608

    Note

    Другие процессы (например, резервные копии, CLR, Fulltext, SQLAgent) также добавляют некоторые издержки, поэтому добавьте буфер в предполагаемое значение.

  2. Скачайте пользовательское ограничение контекста безопасности (SCC): bdc-scc.yaml

    curl https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/features/sql-big-data-cluster/deployment/openshift/bdc-scc.yaml -o bdc-scc.yaml
    
  3. Примените SCC к кластеру.

    oc apply -f bdc-scc.yaml
    

    Note

    Пользовательский SCC для BDC основан на встроенном SCC nonroot в OpenShift и включает дополнительные разрешения. Дополнительные сведения о ограничениях контекста безопасности в OpenShift см. в статье "Управление ограничениями контекста безопасности". Подробные сведения о том, какие дополнительные разрешения необходимы для кластеров больших данных в дополнение к nonroot SCC, скачайте технический документ здесь.

  4. Создайте пространство имен или проект:

    oc new-project <namespaceName>
    
  5. Привязите пользовательский SCC с учетными записями служб в пространстве имен, в котором развертывается BDC:

    oc create clusterrole bdc-role --verb=use --resource=scc --resource-name=bdc-scc -n <namespaceName>
    oc create rolebinding bdc-rbac --clusterrole=bdc-role --group=system:serviceaccounts:<namespaceName>
    
  6. Назначьте пользователю соответствующее разрешение на развертывание BDC. Выполните одно из следующих действий.

    • Если пользователь, развертывающий BDC, имеет роль администратора кластера, перейдите к развертыванию кластера больших данных.

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

    oc create rolebinding bdc-user-rbac --clusterrole=cluster-admin --user=<userName> -n <namespaceName>
    

    Затем пользователь, развертывающий кластер больших данных, должен войти в консоль OpenShift:

    oc login -u <deployingUser> -p <password>
    

Развертывание кластера больших данных

  1. Установите последнюю версию azdata.

  2. Клонируйте один из встроенных файлов конфигурации для OpenShift в зависимости от целевой среды (OpenShift в локальной среде или ARO) и сценария развертывания. Сведения о параметрах, относящихся к OpenShift, см. в разделе "Файлы конфигурации развертывания " ниже для параметров, относящихся к OpenShift в встроенных файлах конфигурации. Дополнительные сведения о доступных файлах конфигурации см. в руководстве по развертыванию.

    Список всех доступных встроенных файлов конфигурации.

    azdata bdc config list
    

    Чтобы клонировать один из встроенных файлов конфигурации, выполните следующую команду (при необходимости можно заменить профиль на основе целевой платформы или сценария):

    azdata bdc config init --source openshift-dev-test --target custom-openshift
    

    Для развертывания на ARO начните с одного из aro- профилей, который включает значения по умолчанию для serviceType и storageClass, подходящие для этой среды. For example:

    azdata bdc config init --source aro-dev-test --target custom-openshift
    
  3. Настройте файлы конфигурации control.json и bdc.json. Ниже приведены некоторые дополнительные ресурсы, которые помогут вам выполнить настройки для различных вариантов использования:

    Note

    Интеграция с идентификатором Microsoft Entra (ранее Azure Active Directory) для BDC не поддерживается, поэтому этот метод проверки подлинности нельзя использовать при развертывании в ARO.

  4. Задание переменных среды

  5. Развертывание кластера больших данных

    azdata bdc create --config custom-openshift --accept-eula yes
    
  6. После успешного развертывания можно войти в систему и просмотреть список конечных точек внешнего кластера.

       azdata login -n mssql-cluster
       azdata bdc endpoint list
    

Определенные параметры OpenShift в файлах конфигурации развертывания

SQL Server 2019 CU5 представляет переключатели функций для управления сбором метрик подов и узлов. Эти параметры устанавливаются false по умолчанию в встроенных профилях OpenShift, так как контейнеры мониторинга требуют привилегированного контекста безопасности, что ослабляет некоторые ограничения безопасности для пространства имен, в котором развернут BDC.

    "security": {
      "allowNodeMetricsCollection": false,
      "allowPodMetricsCollection": false
}

Имя класса хранилища по умолчанию в ARO — managed-premium (в отличие от AKS, где класс хранилища по умолчанию называется default). Это можно найти в control.json, соответствующем aro-dev-test и aro-dev-test-ha.

    },
    "storage": {
      "data": {
        "className": "managed-premium",
        "accessMode": "ReadWriteOnce",
        "size": "15Gi"
      },
      "logs": {
        "className": "managed-premium",
        "accessMode": "ReadWriteOnce",
        "size": "10Gi"
      }

Файл bdc-scc.yaml

Файл SCC для этого развертывания:

Next steps

Руководство. Загрузка примеров данных в кластер больших данных SQL Server