NetworkPolicy, которые
ограничивают трафик, способный достигать пода controller manager — то есть самого
процесса оператора, а не подов ClickHouse server или Keeper. По умолчанию они отключены,
поэтому их включают только тогда, когда требуется изолировать входящий трафик оператора.
Эти политики охватывают два порта, которые оператор открывает для других клиентов: конечную точку метрик
и вебхук допуска.
NetworkPolicy применяется только если CNI-плагин кластера поддерживает эту функцию
(например, Calico или Cilium). В CNI без поддержки NetworkPolicy эти
ресурсы создаются, но фактически не действуют — Kubernetes не возвращает
ошибку. Прежде чем полагаться на эти политики, убедитесь, что ваш CNI применяет их.Что создает Helm-чарт
В обеих политиках указано только
policyTypes: [Ingress]. Они не ограничивают исходящий трафик оператора и не затрагивают поды ClickHouse server или Keeper.
Поведение с запретом по умолчанию
NetworkPolicy, этот под переходит в режим запрета
входящего трафика по умолчанию: как только начинает действовать хотя бы одна
политика, любой входящий трафик к поду controller-manager, который не разрешён
явно, отбрасывается. После включения до оператора доходят только:
- сбор метрик из пространства имен с меткой
metrics: enabled, и - вызов вебхука допуска из пространства имен с меткой
webhook: enabled.
Включение политик
allow-webhook-traffic также требует webhook.enabled: true (это
значение по умолчанию), поэтому при отключении вебхука его политика тоже удаляется.
При использовании исходных манифестов kubectl раскомментируйте раздел [NETWORK POLICY],
как описано в руководстве по установке kubectl.
В исходные манифесты входят те же две политики.
Назначение меток клиентским пространствам имен
namespaceSelector, каждое пространство имен,
которому нужен доступ к оператору, должно иметь соответствующую метку. Запрос
на сбор метрик или вызов вебхука из пространства имен без такой метки отбрасывается.
NetworkPolicy управляет сетевой доступностью, а привязка РольКластера —
авторизацией. Для успешного защищенного сбора метрик необходимо настроить оба механизма.
Проверка
- Prometheus по-прежнему выполняет сбор метрик с конечной точки метрик (его пространство имен помечено
как
metrics: enabledи привязано к РольКластера metrics-reader). - Создание или обновление
ClickHouseClusterпо-прежнему проходит проверку допуска (вебхук доступен).
- Мониторинг оператора — конечная точка метрик, её RBAC и защита сбора метрик.
- Установка с помощью kubectl — где нужно раскомментировать раздел сетевой политики.
- Установка с помощью Helm — значения values chart’а, относящиеся к оператору.