admission-policy-engine не даёт запустить privileged-под или смонтировать hostPath

Viewed 25

Под с privileged или hostPath (агент мониторинга, vector, CSI) не создаётся: admission webhook "admission-policy-engine.deckhouse.io" denied the request.

1 Answers

В кластерах, установленных на Deckhouse Platform 1.55 и новее, в несистемных пространствах имён по умолчанию действует Pod Security Standard Baseline. Он запрещает privileged, hostPath, hostNetwork и т. п.

Варианты:

  1. Снять ограничение для пространства имён. Лейбл ставится на пространство имён, где запускается сам под (не на пространство имён оператора):

    d8 k label ns <ns> security.deckhouse.io/pod-policy=privileged --overwrite
    

    Для пространства имён проекта (Project) политику меняют параметром проекта podSecurityProfile, а не лейблом.

  2. Поменять политику по умолчанию: podSecurityStandards.defaultPolicy (Privileged, Baseline, Restricted) в ModuleConfig admission-policy-engine.

  3. Точечно, ресурсом SecurityPolicy. Он не ослабляет встроенный PSS, а только добавляет требования. Поэтому сначала снимите PSS с пространства имён (пункт 1), затем опишите нужные ограничения в SecurityPolicy с match.namespaceSelector на это пространство имён. Пути hostPath перечисляйте явно: пустой allowedHostPaths: [] запрещает все пути, а отсутствие поля снимает ограничение.

    allowedHostPaths:
    - pathPrefix: /var/log
      readOnly: true
    

Подробнее в документации: Как включить одну или несколько политик Pod Security Standards, не отключая весь набор.

Related