Я пытаюсь выяснить, как я могу заставить prometheus очищать время завершения, в частности время, когда узел был остановлен с отметкой времени UNIX, узла внутри кластера kubernetes. Я использую метрики состояния kube для экспорта информации об узле, однако в документации нет упоминания о времени завершения, как в случае с подами.
Мне интересно, нужно ли мне очищать метрику датчика kube_node_status_condition и просто знать, когда изменяется статус. Однако я не уверен, какой статус я бы искал в этом случае.
Дайте мне знать, если потребуется дополнительная информация.
Если узел не нужен более 10 минут, он будет закрыт. Средство автомасштабирования кластера завершает непустой узел, чтобы снизить риск создания новых незапланированных модулей.
Как только узел завершается, следующий узел будет в рабочем состоянии, если он также не нужен более 10 минут и не зависит от тех же узлов в моделировании, но не вместе. Пустые узлы можно отключать массово, до 10 узлов за раз, если они не нужны.
Когда под удаляется, статус будет отображаться как завершение некоторыми командами kubectl. Этот завершающий статус не является одной из фаз Pod. Поду предоставляется срок для корректного завершения
Что касается времени завершения, по умолчанию у модулей есть 10-минутное время постепенного завершения (настраивается с помощью --max-graceful-termition-sec). Если модуль не будет остановлен в течение этих 10 минут, узел будет остановлен.
Узлу потребуется 30 секунд для завершения работы после того, как он переместится в статус завершения.
Хорошо, но из этого ответа я получаю то, что нет конкретной записанной временной метки unix, о которой вы знаете, только ожидаемое состояние после изменения статуса на завершено. Поэтому мне нужно было бы отслеживать время изменения статуса, а затем экстраполировать точное время завершения. Дайте мне знать, если вы думаете, что это правильно или нет.
Да, вы правы, будет задержка из-за переключения контекста. Таким образом, общее время завершения равно задержке + время выполнения процесса.
Похоже, теперь есть экспериментальная функция, в которой это доступно: github.com/kubernetes/kube-state-metrics/issues/1889 Просто хотел сообщить вам, если вы можете отредактировать свой ответ, который может быть полезно для других.
Спасибо за ответ! Однако я думаю, что я сформулировал свой вопрос несколько плохо. В частности, я ищу точное время, когда статус узла перешел на завершение или был удален из кластера, аналогично тому, как работает метрика Pod времени завершения. Я не смотрю, сколько времени потребуется узлу, чтобы покинуть кластер.