Skip to main content
Оператор включает необязательные ресурсы Kubernetes NetworkPolicy, которые ограничивают трафик, способный достигать пода controller manager — то есть самого процесса оператора, а не подов ClickHouse server или Keeper. По умолчанию они отключены, поэтому их включают только тогда, когда требуется изолировать входящий трафик оператора. Эти политики охватывают два порта, которые оператор открывает для других клиентов: конечную точку метрик и вебхук допуска.
NetworkPolicy применяется только если CNI-плагин кластера поддерживает эту функцию (например, Calico или Cilium). В CNI без поддержки NetworkPolicy эти ресурсы создаются, но фактически не действуют — Kubernetes не возвращает ошибку. Прежде чем полагаться на эти политики, убедитесь, что ваш CNI применяет их.

Что создает Helm-чарт

Если эта опция включена, чарт создает до двух политик, разрешающих только входящий трафик; обе применяются к поду controller manager: В обеих политиках указано только policyTypes: [Ingress]. Они не ограничивают исходящий трафик оператора и не затрагивают поды ClickHouse server или Keeper.

Поведение с запретом по умолчанию

Если для пода выбрана входящая NetworkPolicy, этот под переходит в режим запрета входящего трафика по умолчанию: как только начинает действовать хотя бы одна политика, любой входящий трафик к поду controller-manager, который не разрешён явно, отбрасывается. После включения до оператора доходят только:
  • сбор метрик из пространства имен с меткой metrics: enabled, и
  • вызов вебхука допуска из пространства имен с меткой webhook: enabled.
Весь остальной трафик к поду блокируется. Это и есть ожидаемое усиление защиты, но это означает, что немаркированный сборщик метрик или источник вызова вебхука перестанут работать сразу после того, как политики вступят в силу.

Включение политик

При использовании Helm установите этот флаг в values:
allow-webhook-traffic также требует webhook.enabled: true (это значение по умолчанию), поэтому при отключении вебхука его политика тоже удаляется. При использовании исходных манифестов kubectl раскомментируйте раздел [NETWORK POLICY], как описано в руководстве по установке kubectl. В исходные манифесты входят те же две политики.

Назначение меток клиентским пространствам имен

Поскольку обе политики сопоставляют источник с помощью namespaceSelector, каждое пространство имен, которому нужен доступ к оператору, должно иметь соответствующую метку. Запрос на сбор метрик или вызов вебхука из пространства имен без такой метки отбрасывается.
Сочетайте это с RBAC для метрик, описанным в Мониторинг → Защита конечной точки метрик: NetworkPolicy управляет сетевой доступностью, а привязка РольКластера — авторизацией. Для успешного защищенного сбора метрик необходимо настроить оба механизма.
Запросы вебхука допуска поступают от API-сервера Kubernetes, а не от обычного пода. Подпадает ли этот трафик под действие NetworkPolicy и от какого источника он исходит, зависит от топологии control plane и CNI — в частности, managed control plane может обращаться к вебхуку с адреса, который не может быть сопоставлен ни с одним namespaceSelector. Если трафик API-сервера не охватывается пространством имен с webhook: enabled, включение allow-webhook-traffic может заблокировать допуск и привести к тайм-аутам запросов на создание и обновление ClickHouseCluster/KeeperCluster. После включения проверьте работу допуска на непродакшн-кластере и при необходимости добавьте явное разрешающее правило для API-сервера.

Проверка

После включения убедитесь, что:
  • Prometheus по-прежнему выполняет сбор метрик с конечной точки метрик (его пространство имен помечено как metrics: enabled и привязано к РольКластера metrics-reader).
  • Создание или обновление ClickHouseCluster по-прежнему проходит проверку допуска (вебхук доступен).
Если при сборе метрик данные не возвращаются или применение CR зависает, наиболее вероятная причина — пространство имен источника без метки или описанное выше ограничение доступности API-сервера.
Последнее изменение 3 июля 2026 г.