Ответ
Проверка Pod проходит в момент его создания или обновления, когда манифест отправляется в API-сервер Kubernetes. Этот процесс состоит из двух основных этапов:
- Валидация (Validation): Проверяется синтаксическая и структурная корректность манифеста (например, обязательные поля, корректные типы данных).
- Контроль допуска (Admission Control): Здесь применяются бизнес-логика и политики кластера. Это включает:
- Встроенные контроллеры: Например,
ResourceQuota(проверяет лимиты ресурсов в namespace) илиPodSecurity(проверяет политики безопасности). - Динамические контроллеры допуска (Admission Webhooks): Это пользовательские веб-хуки, которые могут выполнять любую дополнительную логику (например, проверку аннотаций, инъекцию sidecar-контейнеров как в Istio).
- Встроенные контроллеры: Например,
Практический пример: Команда kubectl apply --dry-run=server позволяет провести эту проверку без реального создания ресурса.
# Проверяем манифест на соответствие политикам кластера
kubectl apply -f my-pod.yaml --dry-run=server
Только после успешного прохождения всех этих проверок Pod будет принят API-сервером и запланирован для запуска на ноде.