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