[Документация Yandex Cloud](../../../index.md) > [Yandex Managed Service for Kubernetes](../../index.md) > [Пошаговые инструкции](../index.md) > Установка приложений из Cloud Marketplace > Установка Gatekeeper

# Установка Gatekeeper

[Gatekeeper](https://open-policy-agent.github.io/gatekeeper/website/) — настраиваемый контроллер и аудитор [политик](../../concepts/network-policy.md) для Kubernetes. Gatekeeper принимает поступающие в кластер запросы и в реальном времени проверяет их на соответствие предварительно настроенным политикам.

## Перед началом работы {#before-you-begin}

[Убедитесь](../connect/security-groups.md), что группы безопасности для кластера Managed Service for Kubernetes и его групп узлов настроены корректно. Если отсутствует какое-либо из правил — [добавьте](../../../vpc/operations/security-group-add-rule.md) его.

{% note warning %}

От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.

{% endnote %}

## Установка с помощью Yandex Cloud Marketplace {#marketplace-install}

1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог.

1. [Перейдите](https://kz.console.yandex.cloud/link/managed-kubernetes) в сервис **Managed Service for&nbsp;Kubernetes**.

1. Нажмите на имя нужного кластера и выберите вкладку ![image](../../../_assets/console-icons/shopping-cart.svg) **Marketplace**.

1. В разделе **Доступные для установки приложения** выберите [Gatekeeper](https://yandex.cloud/ru/marketplace/products/yc/gatekeeper) и нажмите кнопку **Перейти к установке**.

1. Задайте настройки приложения:
    * **Пространство имен** — создайте новое [пространство имен](../../concepts/index.md#namespace) (например, `gatekeeper-space`). Если вы оставите пространство имен по умолчанию, Gatekeeper может работать некорректно.
    * **Название приложения** — укажите название приложения.
    * **Интервал между аудитами** — задайте время в секундах между запусками аудитов. Значение `0` отключает выполнение аудитов.
    * **Лимит нарушений ограничения** — укажите максимальное количество нарушений, которое будет фиксироваться для каждого ограничения.
    * **Только совпадающие типы ресурсов** — выберите эту опцию, если для каждого ограничения нужно проверять только те типы ресурсов Kubernetes, которые указаны в ограничении в явном виде. Если типы ресурсов не указаны или опция выключена, будут проверяться все ресурсы.
    * **Создавать события при аудите** — выберите эту опцию, если для каждого выявленного при аудите нарушения ограничения нужно создавать событие (Kubernetes event) с подробной информацией о нарушении.
    * **События в затронутом пространстве имен** — выберите эту опцию, если события с подробной информацией о нарушении нужно создавать в том пространстве имен, где было зафиксировано нарушение ограничения. Применимо только при включенной опции **Создавать события при аудите**.
    
      Если опция **События в затронутом пространстве имен** выключена, события будут создаваться в пространстве имен, в котором установлен Gatekeeper.

    * **Разрешить внешние данные** — выберите эту опцию, если нужно включить экспериментальную поддержку внешних источников данных.

1. Нажмите кнопку **Установить**.

1. Дождитесь перехода приложения в статус `Deployed`.

## Установка с помощью Helm-чарта {#helm-install}

1. [Установите kubectl](https://kubernetes.io/ru/docs/tasks/tools/install-kubectl) и [настройте его на работу с созданным кластером](../connect/index.md#kubectl-connect).

1. [Установите менеджер пакетов Helm](https://helm.sh/ru/docs/intro/install/) версии не ниже 3.8.0.

1. Для установки [Helm-чарта](https://helm.sh/docs/topics/charts/) с Gatekeeper выполните команду:
  
    ```bash
    helm pull oci://cr.yandexcloud.kz/yc-marketplace/yandex-cloud/marketplace/gatekeeper/helm-chart/gatekeeper \
      --version 3.12.0 \
      --untar && \
    helm install \
      --namespace <пространство_имен> \
      --create-namespace \
      gatekeeper ./gatekeeper/
    ```

  Если вы укажете в параметре `namespace` пространство имен по умолчанию, Gatekeeper может работать некорректно. Рекомендуем указывать значение, отличное от всех существующих пространств имен (например, `gatekeeper-space`).

  Необязательные параметры можно переопределить в команде установки с помощью ключа `--set <имя_параметра>=<новое_значение>`.

  Список доступных для переопределения параметров и их значения по умолчанию приведены в таблице:

  Имя параметра | Описание | Значение по умолчанию
  --- | --- | ---
  `auditInterval` | Время в секундах между запусками аудитов | `60`
  `constraintViolationsLimit` | Максимальное количество нарушений, которое будет фиксироваться для каждого ограничения | `20`
  `auditMatchKindOnly` | Только совпадающие типы ресурсов | `false`
  `emitAuditEvents` | Создавать события при аудите | `false`
  `auditEventsInvolvedNamespace` | Создавать события в затронутом пространстве имен | `false`
  `enableExternalData` | Экспериментальная поддержка внешних источников данных | `true`

#### Полезные ссылки {#see-also}

* [Документация Gatekeeper](https://open-policy-agent.github.io/gatekeeper/website/docs/)

* [Библиотека политик Gatekeeper](https://open-policy-agent.github.io/gatekeeper-library/website/)