У нас был пользователь по умолчанию в Dockerfile и сценарий оболочки точки входа, который нужно было выполнять во время выполнения. Когда мы развернули это в кластере Openshift (4.6), у модуля был другой пользователь, и из-за этого сценария оболочки точки входа произошел сбой, поэтому приложение не запускается. Прошу вас предложить, как выполнить эти сценарии оболочки, даже если пользователь находится в POD.
Модуль Openshift работает с идентификатором пользователя, не совпадающим с пользователем в Dockerfile
Ответы (1)
Openshift предоставляет ограничения контекста безопасности (SCC) для управления разрешениями для модулей. С их помощью вы можете контролировать разрешения/действия, которые может выполнять модуль или набор контейнеров, и к каким ресурсам они могут получить доступ. Несколько вещей, которые SCC позволяют администратору контролировать:
- Может ли модуль запускать привилегированные контейнеры.
- Контекст контейнера SELinux.
- Идентификатор пользователя контейнера.
- Распределение
FSGroup
, которому принадлежат тома модуля.- Конфигурация допустимых дополнительных групп.
- Требуется ли для контейнера использование корневой файловой системы только для чтения.
- Использование типов томов.
SCC состоят из настроек и стратегий, управляющих функциями безопасности, к которым у модуля есть доступ. Если я правильно понял ваши вопросы, вы хотите проверить RunAsUser
стратегии:
MustRunAs
— для настройки требуетсяrunAsUser
. Использует настроенныйrunAsUser
по умолчанию. Проверяет настроенныйrunAsUser
.MustRunAsRange
— требуется определить минимальные и максимальные значения, если не используются предварительно выделенные значения. Использует минимум по умолчанию. Проверяет весь допустимый диапазон.MustRunAsNonRoot
— требуется, чтобы модуль был отправлен с ненулевымrunAsUser
или имел директивуUSER
, определенную в образе. По умолчанию не предусмотрено.RunAsAny
— по умолчанию не предусмотрено. Позволяет указать любойrunAsUser
.
Дополнительную информацию см. на официальном сайте openshift. документы.