Целевое состояние описывает требуемый результат, цикл согласования — способ его поддержания. Сохранённая цель не равна завершению цикла: доступных ресурсов может не хватать.
Почему это важно
Успешный ответ на отправку конфигурации подтверждает её принятие, а не готовность приложения. Для приёмки нужны наблюдаемый результат, причины задержки и рабочий запрос к сервису. Иначе поставщик сдаёт записанное намерение вместо действующей системы.
Что подтверждено
Контроллер наблюдает объект и выполняет действия, чтобы фактическое состояние приблизилось к заданному. Цель хранится отдельно от результата отдельных попыток.
Граница применимости: Модель контроллеров Kubernetes.
Спецификация задаёт намерение, а статус и условия отражают наблюдаемый ход работы. Сохранённое описание трёх экземпляров не доказывает, что три Pod уже готовы.
Граница применимости: Спецификация и наблюдаемое состояние объектов Kubernetes.
Kubernetes может принять описание Pod, который не помещается ни на одном подходящем узле. Повторная отправка той же конфигурации не добавит ресурсов: сначала нужно устранить причину отсутствия размещения.
Граница применимости: Принятие описания и планирование Pod по требованиям; ошибка недостатка ресурсов уже установлена.
Для Deployment требуемое число экземпляров является частью целевого состояния. Если управляемый Pod удалён, контроллер стремится восстановить это число, а не запомнить удаление как новую цель.
Граница применимости: Управляемые Pod Deployment при неизменной спецификации числа экземпляров.
Успех одного этапа не закрывает остальные: назначение узла не означает запуск контейнера, а Running не означает готовность. Итог сравнивают с требованием к приложению, а не с одним успешным статусом.
Граница применимости: Этапы жизненного цикла Pod Kubernetes.
Не путать
Что проверить
- Запишите образ, число экземпляров, ресурсы и требования к размещению.
- После принятия конфигурации проверьте созданные объекты и их владельцев.
- Сравните требуемое и фактическое число готовых экземпляров.
- При задержке прочитайте условия и события, чтобы назвать конкретную причину.
- Не меняйте вручную производные объекты, если цель должна быть изменена в Deployment.
- Сдавайте результат по пользовательскому запросу и согласованным условиям работы.
Первоисточники
Controllers
Kubernetes · Kubernetes current documentation
Определяет управляющий цикл, целевое состояние и повторяющееся согласование наблюдаемого состояния с заданным.
Открыть первоисточникPod Lifecycle
Kubernetes · Kubernetes current documentation
Описывает назначение узла, состояния Pod и контейнеров, перезапуски контейнеров и создание нового Pod с другим UID взамен прежнего.
Открыть первоисточникKubernetes Scheduler
Kubernetes · Kubernetes current documentation
Описывает отбор допустимых узлов, оценку вариантов и назначение узла для ещё не размещённого Pod.
Открыть первоисточникDeployments
Kubernetes · Kubernetes current documentation
Описывает управление ReplicaSet, стратегии обновления, параметры maxUnavailable и maxSurge, ход выпуска и историю для отката.
Открыть первоисточник