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