Каков интервал цикла управления kube-controller-manager?
Я вижу это в документации Kubernetes,
В Kubernetes контроллеры — это циклы управления, которые следят за состоянием вашего кластера, а затем при необходимости вносят или запрашивают изменения. Каждый контроллер пытается приблизить текущее состояние кластера к желаемому состоянию.
Также это,
Контроллер развертывания и контроллер заданий являются примерами контроллеров, которые входят в состав самого Kubernetes («встроенные» контроллеры).
Но я не мог найти, как работает контур управления. Проверяет ли он текущее состояние кластера каждые несколько секунд? Если да, то какое значение по умолчанию?
Я тоже нашел здесь кое-что интересное,
Каков период синхронизации контроллера развертывания для kube-controller-manager?
1 ответ
Я хотел бы начать объяснять, что kube-controller-manager — это набор отдельных процессов управления, связанных вместе для уменьшения сложности.
При этом управляющим процессом, отвечающим за мониторинг работоспособности узла и некоторых других параметров, является Node Controller, и он делает это, считывая в узлах .пульсации, отправляемые агентом Kubelet
Согласно документации Kubernete:
Для узлов есть две формы сердцебиения:
- обновления узла
- Объекты аренды в пределах
kube-node-lease
пространство имен. Каждый узел имеет связанный с ним объект аренды.По сравнению с обновлениями узла, аренда — это легкий ресурс. Использование аренды для тактов снижает влияние этих обновлений на производительность для больших кластеров.
kubelet отвечает за создание и обновление узлов, а также за обновление связанных с ними договоров аренды.
- Кублет обновляет узел либо при изменении статуса, либо при отсутствии обновлений в течение настроенного интервала. Интервал обновления узлов по умолчанию составляет 5 минут, что намного больше, чем 40-секундный тайм-аут по умолчанию для недоступных узлов.
- Kubelet создает и затем обновляет свой объект Lease каждые 10 секунд (интервал обновления по умолчанию). Обновления аренды происходят независимо от обновлений Узла.
.status
. Если обновление Lease завершается с ошибкой, kubelet повторяет попытку, используя экспоненциальную отсрочку, которая начинается с 200 миллисекунд и ограничивается 7 секундами.
Что касается объектов Kubernetes , работающих в узлах:
Объекты Kubernetes — это постоянные сущности в системе Kubernetes. Kubernetes использует эти сущности для представления состояния вашего кластера. В частности, они могут описывать:
- Какие контейнерные приложения работают (и на каких узлах)
- Ресурсы, доступные этим приложениям
- Политики поведения этих приложений, такие как политики перезапуска, обновления и отказоустойчивость.
Объект Kubernetes — это «запись о намерениях»: как только вы создадите объект, система Kubernetes будет постоянно работать над тем, чтобы этот объект существовал. Создавая объект, вы фактически сообщаете системе Kubernetes, какой должна быть рабочая нагрузка вашего кластера; это желаемое состояние вашего кластера.
В зависимости от объекта Kubernetes механизм контроллера отвечает за поддержание желаемого состояния. Например , объект развертывания использует набор реплик внизу для поддержания желаемого описанного состояния модулей; в то время как объект Statefulset использует свой собственный контроллер для той же цели.
Чтобы увидеть полный список объектов Kubernetes, управляемых вашим кластером, вы можете запустить команду:
kubectl api-resources