Как настроить сбор аудита для импортированных стандартных кластеров Kubernetes?
Описание сценария
После импорта стандартного кластера Kubernetes в платформу необходимо включить аудит Kubernetes API сервера на кластере, прежде чем платформа сможет собирать данные аудита с этого кластера.
Этот документ применим к стандартным кластерам Kubernetes, узлы управляющей плоскости которых находятся под вашим управлением, например, кластерам на базе kubeadm. Он не применим к управляемым облачным кластерам Kubernetes, где вы не можете войти или изменить узлы управляющей плоскости.
Предварительные условия
- Стандартный кластер Kubernetes уже импортирован в платформу.
- Вы можете войти на каждый узел управляющей плоскости в кластере.
- Кластер использует стандартный путь манифеста статического Pod API сервера в стиле kubeadm:
/etc/kubernetes/manifests/kube-apiserver.yaml.
Процедура
-
Создайте локальный файл
policy.yamlдля политики аудита.Установите
apiVersionв соответствии с версией Kubernetes:- Kubernetes до версии 1.24:
audit.k8s.io/v1beta1 - Kubernetes 1.24 и выше:
audit.k8s.io/v1
Используйте следующее содержимое:
TIPЕсли версия кластера ниже 1.24, измените только поле
apiVersionнаaudit.k8s.io/v1beta1. Остальное содержимое политики остается без изменений. - Kubernetes до версии 1.24:
-
Загрузите
policy.yamlв каталог/etc/kubernetes/audit/на каждом узле управляющей плоскости.WARNING- Если в кластере несколько узлов управляющей плоскости, загрузите файл на каждый из них.
- Создайте каталог вручную, если он не существует:
/etc/kubernetes/audit/
-
Обновите файл
/etc/kubernetes/manifests/kube-apiserver.yamlна каждом узле управляющей плоскости.Добавьте или обновите следующие флаги, связанные с аудитом, в
spec.containers[].command:Пример:
-
Добавьте конфигурацию монтирования каталога аудита в тот же файл
kube-apiserver.yaml.Добавьте следующий элемент в
spec.containers[].volumeMounts:Добавьте следующий элемент в
spec.volumes:WARNING- Обновляйте манифест на каждом узле управляющей плоскости, если их несколько.
- Значение
volumeMounts[].nameдолжно совпадать с соответствующим значениемvolumes[].name. - Не изменяйте путь монтирования
/etc/kubernetes/audit.
-
Сохраните файл и проверьте, что конфигурация вступила в силу.
Проверьте, создан ли файл
/etc/kubernetes/audit/audit.logна каждом узле управляющей плоскости. Если файл существует и содержит записи аудита, конфигурация работает.