Контейнеры и оркестрация · проверено по источникам

Контроллер Kubernetes

Контроллер Kubernetes — программа, которая наблюдает объекты и поддерживает заданное состояние управляемых ресурсов. Например, контроллер Deployment управляет наборами экземпляров, а контроллер ReplicaSet — нужным числом Pod. Контроллеры используют API и повторяют согласование.

Также ищут: K8s controller · cluster controller · Kubernetes controller

Практический смысл

Почему это важно

Чтобы исправление сохранилось, нужно знать владельца объекта. Изменение Pod, которым управляет другой объект, часто не меняет исходную цель. При диагностике проверяйте цепочку владельцев и селекторы: два несогласованных контроллера могут вмешиваться в одну нагрузку.

Доказательная часть

Что подтверждено

  1. Контроллер наблюдает состояние и выполняет изменения через API, чтобы поддерживать цель управляемых объектов. Он может снова действовать после отклонения от этой цели.

    Граница применимости: Архитектура контроллеров Kubernetes.

  2. Пересекающиеся селекторы управляющих объектов могут заставить контроллеры вмешиваться в одни и те же Pod. Для Deployment нужно избегать такого пересечения с другими контроллерами нагрузки.

    Граница применимости: Предупреждение о пересекающихся селекторах Deployment и других контроллеров Kubernetes.

  3. Контроллер Deployment управляет ReplicaSet, а контроллер ReplicaSet — Pod. Эти объекты образуют цепочку управления; редактирование одного Pod не меняет автоматически шаблон Deployment.

    Граница применимости: Управление ReplicaSet и Pod через Deployment Kubernetes.

  4. Контроллер может создать Pod, но выбор подходящего узла выполняет планировщик. Отсутствие места для нового экземпляра нужно разбирать по требованиям и ресурсам, а не только по состоянию контроллера.

    Граница применимости: Граница контроллера и планировщика Kubernetes.

  5. Контроллер может управлять ресурсом вне самого кластера, взаимодействуя с внешней системой. Запись цели в API Kubernetes ещё не означает успешное изменение внешнего ресурса.

    Граница применимости: Модель контроллеров Kubernetes, включая управление внешними системами.

Граница терминов

Не путать

Управляющие компоненты Kubernetes

Контроллер — один из участников управления: он поддерживает свою часть состояния. Управляющие компоненты шире и включают также API, хранилище состояния и планировщик.

Перед спецификацией

Что проверить

  1. Определите тип контроллера и объект, задающий цель приложения.
  2. Проследите владельца каждого управляемого ReplicaSet и Pod.
  3. Проверьте, не пересекаются ли селекторы разных контроллеров.
  4. Внесите постоянное изменение в шаблон или число экземпляров нужного владельца.
  5. Разделите ошибку создания Pod и отказ планировщика разместить уже созданный Pod.
  6. Для внешних ресурсов проверьте результат и в Kubernetes, и в целевой системе.
Открытые основания

Первоисточники

  • Официальная документация

    Controllers

    Kubernetes · Kubernetes current documentation

    Определяет управляющий цикл, целевое состояние и повторяющееся согласование наблюдаемого состояния с заданным.

    Открыть первоисточник
  • Официальная документация

    Deployments

    Kubernetes · Kubernetes current documentation

    Описывает управление ReplicaSet, стратегии обновления, параметры maxUnavailable и maxSurge, ход выпуска и историю для отката.

    Открыть первоисточник
  • Официальная документация

    Kubernetes Scheduler

    Kubernetes · Kubernetes current documentation

    Описывает отбор допустимых узлов, оценку вариантов и назначение узла для ещё не размещённого Pod.

    Открыть первоисточник
  • Официальная документация

    Kubernetes Components

    Kubernetes · Kubernetes current documentation

    Описывает управляющие компоненты, узлы, сервер API, планировщик, контроллеры, kubelet и среду выполнения контейнеров.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие