С GKE Autopilot, запрещающим аннотацию cluster-autoscaler.kubernetes.io/safe-to-evict=false, есть ли способ гарантировать, что модули заданий не будут вытеснены?

Наш кластер GKE Autopilot недавно был обновлен до версии 1.21.6-gke.1503, что, по-видимому, вызывает cluster-autoscaler.kubernetes.io/safe-to-evict=falseаннотацию запретить.

Я полностью понимаю это для развертываний, поскольку Google не хочет, чтобы развертывание предотвращало масштабирование, но для рабочих мест я бы сказал, что в некоторых случаях эта аннотация имеет смысл. Мы запускаем сложные задания, которые сами запускают и отслеживают другие задания, что затрудняет их устойчивость к перезапуску, учитывая огромное количество движущихся частей.

Есть ли способ сделать как можно более маловероятным перезапуск/перемещение модулей заданий при использовании автопилота?До перехода на автопилот мы использовали, чтобы наши задания заполняли один узел, запрашивая все его доступные ресурсы; в сочетании с классом Guaranteed QoS это гарантировало, что единственный способ выселить модуль — это если узел каким-то образом выйдет из строя, что почти никогда не случалось. Теперь все, что у нас, кажется, осталось, это гарантированный класс QoS, но это не предотвращает выселение модулей.

1 ответ

Теперь это поддерживается в GKE Autopilot, начиная с версии 1.27+.

cluster-autoscaler.kubernetes.io/safe-to-evict=falseпредотвратит сбои в работе модуля, инициированные GKE, в течение 7 дней (включая сбои, связанные с автоматическим масштабированием и обновлением).

Другие вопросы по тегам