Развертывание кластера 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 для получения более подробных инструкций о том, как подготовить вашу среду.
Создайте кластер RedHat OpenShift.
Существует множество методов, с помощью которых можно развернуть кластер RHOS. Для локального развертывания обратитесь к документации RedHat. Для развертывания в облаке обратитесь к документации RedHat OpenShift on AWS (ROSA) или Azure RedHat OpenShift.
Обновите конфигурацию ос (kubectl).
После создания кластера интерфейс командной строки (CLI) OpenShift можно использовать для извлечения информации о подключении аутентифицированного пользователя в ваш файл
kubeconfig. Это можно сделать с помощью следующей команды:oc login https://<serverName>:<serverPort>Создайте классы хранилища.
Чтобы адаптировать свойства
reclaimPolicyиallowVolumeExpansionк потребностям вашей организации и рабочим нагрузкам, рекомендуется создать класс хранения, ссылающийся на один из поддерживаемых провизоров, таких как Cinder, Manila или vSphere Volume. Соответствующий файл YAML должен быть применен к кластеру с помощью следующей команды:oc apply -f <storageClass.yaml>Для получения дополнительной информации смотрите пример класса хранения по умолчанию YAML и пример класса хранения резервных копий YAML.
Управление ограничениями контекста безопасности.
В OpenShift SCC выступают в качестве специализированного контроллера допуска для модулей перед планированием. По умолчанию все модули допускаются на основе SCC
restrictedилиrestricted-v2, так как разрешенной группой являетсяsystem:authenticated.В зависимости от вашей настройки, вам может потребоваться предоставить дополнительные права, чтобы соответствовать требованиям ArcGIS Enterprise. Просмотрите следующее:
Позволяет запускать модули с определенным
fsGroup.Рабочие нагрузки ArcGIS Enterprise имеют жестко закодированное значение
fsGroupдля инициализации прав доступа к тому на недавно подготовленных томах постоянного блочного хранилища. Это значениеfsGroupдолжно быть разрешено SCC, так как по умолчанию используется произвольный диапазон. Для этого копию SCCrestrictedилиrestricted-v2следует обновить, добавив следующую секцию:fsGroup: ranges: - max: 117932853 min: 117932853 type: MustRunAs groups: - 'system:serviceaccounts:<deployment-project>'Разрешить привязку на привилегированных портах для входящего контроллера.
Для версий 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требуемая возможность уже разрешена.Увеличение максимальных областей карты памяти.
Пространственно-временной 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 для получения дополнительной информации.
Настройка маршрутов 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-сертификат, определенный во время фазы развертывания, внешним клиентам.