Защитить узлы от автоматического перезапуска
Раздел «Администратору кластера»: быстрый переход по подразделам
На этой странице
В Штурвале предусмотрен механизм автоматического перезапуска узлов в случаях изменения конфигурации узлов (NCI), обновления кластера. Политику дрейна и перезагрузки задаёт оператор shturval-node-config. При автоматическом перезапуске узла выполняются действия:
- Cordon;
- Drain;
- Reboot.
При необходимости вы можете защитить узлы кластера от автоматического перезапуска при помощи специальных лейблов. Это применимо для случаев, когда перед drain или перезагрузкой узла кластера необходимо выполнить какие либо операции.
Последовательность действий будет такой:
- Установите запрет на drain узлов.
- Внесите необходимые изменения.
- Проверьте, что конфигурация узла получила condition reboot required.
- Установите разрешение применять изменения без drain узла поверх запрета на drain.
- Дождитесь перезагрузки узла или применения конфигурации.
- Снимите разрешение применять изменения без drain узла.
Команды необходимо выполнять, прописывая название узла вместо my-special-node.
- Для запрета Drain узла установите лейбл
node.shturval.tech/disable-drainс помощью команды:
Команда — иллюстрация
kubectl label node my-special-node node.shturval.tech/disable-drain=
Скриншот интерфейса платформы

- Для проверки установки лейбла выполните команду:
Команда — иллюстрация
kubectl get node my-special-node -o jsonpath='{.metadata.labels}' | jq -r
Скриншот интерфейса платформы

Обратите внимание! Выполните необходимые действия по подготовке узла к перезапуску. После выполнения действий выполните drain. Лейбл `disable-drain` блокирует только автоматический drain узла.
- Установите разрешение для применения изменений с помощью лейбла
node.shturval.tech/apply-as-is.
Обратите внимание! Лейбл `apply-as-is` разрешает немедленное применение изменений без проверки, был ли проведен drain узла.
Команда — иллюстрация
kubectl label node my-special-node node.shturval.tech/apply-as-is=
Скриншот интерфейса платформы

- Проверьте, что ресурс NodeConfig узла (
nodeconfig) применён и имеет статусready=true:
Команда — иллюстрация
kubectl get nodeconfig my-special-node -o jsonpath='{.status.ready}'
Скриншот интерфейса платформы

- Обязательно снимите лейбл
node.shturval.tech/apply-as-isс узла для отключения разрешения на безусловное применение изменений на узел, выполнив команду:
Команда — иллюстрация
kubectl label node my-special-node node.shturval.tech/apply-as-is-
Скриншот интерфейса платформы

Обратите внимание! На вашем узле остался установленным лейбл ```node.shturval.tech/disable-drain```, блокирующий Drain узла.