Skip to main content

Развертывание кластера Red Hat OpenShift Kubernetes Engine

Перед развертыванием ArcGIS Enterprise on Kubernetes в RedHat OpenShift Kubernetes Engine необходимо подготовить кластер RedHat OpenShift Kubernetes Engine, который соответствует системным требованиям ArcGIS Enterprise.

Подготовка кластера RedHat OpenShift включает шаги, общие для поддерживаемых параметров среды, такие как настройка кластера Kubernetes и соответствующих узлов, а также шаги, специфичные для среды, такие как создание выделенного контекстного ограничения безопасности (SCC) и обработка входа для приложения.

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

  1. Создайте кластер RedHat OpenShift.

    Существует множество методов, с помощью которых можно развернуть кластер RHOS. Для локального развертывания обратитесь к документации RedHat. Для развертывания в облаке обратитесь к документации RedHat OpenShift on AWS (ROSA) или Azure RedHat OpenShift.

  2. Обновите конфигурацию ос (kubectl).

    После создания кластера интерфейс командной строки (CLI) OpenShift можно использовать для извлечения информации о подключении аутентифицированного пользователя в ваш файл kubeconfig. Это можно сделать с помощью следующей команды:

    oc login https://<serverName>:<serverPort>

  3. Создайте классы хранилища.

    Чтобы адаптировать свойства reclaimPolicy и allowVolumeExpansion к потребностям вашей организации и рабочим нагрузкам, рекомендуется создать класс хранения, ссылающийся на один из поддерживаемых провизоров, таких как Cinder, Manila или vSphere Volume. Соответствующий файл YAML должен быть применен к кластеру с помощью следующей команды:

    oc apply -f <storageClass.yaml>

    Для получения дополнительной информации смотрите пример класса хранения по умолчанию YAML и пример класса хранения резервных копий YAML.

  4. Управление ограничениями контекста безопасности.

    В OpenShift SCC выступают в качестве специализированного контроллера допуска для модулей перед планированием. По умолчанию все модули допускаются на основе SCC restricted или restricted-v2, так как разрешенной группой является system:authenticated.

    В зависимости от вашей настройки, вам может потребоваться предоставить дополнительные права, чтобы соответствовать требованиям ArcGIS Enterprise. Просмотрите следующее:

    1. Позволяет запускать модули с определенным fsGroup.

      Рабочие нагрузки ArcGIS Enterprise имеют жестко закодированное значение fsGroup для инициализации прав доступа к тому на недавно подготовленных томах постоянного блочного хранилища. Это значение fsGroup должно быть разрешено SCC, так как по умолчанию используется произвольный диапазон. Для этого копию SCC restricted или restricted-v2 следует обновить, добавив следующую секцию:

      fsGroup:
         ranges:
           - max: 117932853
             min: 117932853
         type: MustRunAs
         groups:
            - 'system:serviceaccounts:<deployment-project>'
      
    2. Разрешить привязку на привилегированных портах для входящего контроллера.

      Для версий OpenShift до 4.11 ограниченный контекст не позволяет добавлять возможность NET_BIND_SERVICE к модулям, что требуется для контроллера входа. Новый SCC должен быть клонирован из правил ограничений, и в него должен быть добавлен следующий раздел:

      allowedCapabilities:
         - NET_BIND_SERVICE
      

      Этот SCC должен разрешать учетной записи сервиса arcgis-ingress-serviceaccount позволить контроллеру входа правильно начать работу.

      oc adm policy add-scc-to-user restricted-esri system:serviceaccount:<deployment-project>:arcgis-ingress-serviceaccount

      Для версии OpenShift 4.11 и более поздних, в SCC restricted-v2 требуемая возможность уже разрешена.

    3. Увеличение максимальных областей карты памяти.

      Пространственно-временной StatefulSet требует, чтобы базовый узел имел увеличенное значение для vm.max_map_count. По умолчанию это включено с помощью контейнера init, но для выполнения команды требуется привилегированный доступ к базовому хосту:

      sysctl -w vm.max_map_count=262144

      Рабочие узлы могут быть изменены при запуске путем внесения изменений в конфигурационный файл Ignition для выполнения этой команды во время загрузки. Свойство для ALLOW_PRIVILEGED_CONTAINERS должно быть установлено в значение false в сценарии выполнения развертывания.

      Дополнительные сведения см. в документации RedHat OpenShift.

      Кроме того, вы должны предоставить учетной записи сервиса arcgis-spatiotemporalindex-serviceaccount право доступа на запуск привилегированного контейнера, чтобы позволить контейнеру init выполнить требуемую команду sysctl.

      oc adm policy add-scc-to-user privileged-esri system:serviceaccount:<deployment-project>:arcgis-spatiotemporalindex-serviceaccount

    Просмотрите примеры файлов SCC YAML для получения дополнительной информации.

  5. Настройка маршрутов Red Hat OpenShift.

    OpenShift включает готовый контроллер входа, который можно использовать совместно с контроллером входа, поставляемым с ArcGIS Enterprise on Kubernetes. Если OpenShift Route создается через командную строку, его можно создать, используя образец yaml. Чтобы настроить маршрут через консоль OpenShift, сначала необходимо запустить скрипт развертывания, затем можно создать маршрут для ссылки на цель внутреннего сервиса.

    Ответив yes на вопрос об OpenShift Route в сценарии выполнения развертывания, сервис arcgis-ingress-controller не будет открыт за пределами подсети кластера и будет создан как тип ClusterIP.

    В зависимости от того, где вы предпочитаете завершать клиентский SSL, безопасный маршрут должен использовать либо re-encrypt, либо passthrough в качестве режима завершения. Выбор re-encrypt потребует TLS-сертификат в качестве входных данных для маршрута, в то время как passthrough представит TLS-сертификат, определенный во время фазы развертывания, внешним клиентам.