В какой момент проходит проверка Pods в Kubernetes?

«В какой момент проходит проверка Pods в Kubernetes?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Проверка Pod проходит в момент его создания или обновления, когда манифест отправляется в API-сервер Kubernetes. Этот процесс состоит из двух основных этапов:

  1. Валидация (Validation): Проверяется синтаксическая и структурная корректность манифеста (например, обязательные поля, корректные типы данных).
  2. Контроль допуска (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-сервером и запланирован для запуска на ноде.