Как защитить узлы от автоматического перезапуска
В Штурвале предусмотрен механизм автоматического перезапуска узлов в случаях изменения конфигурации узлов, обновления кластера. При автоматическом перезапуске узла выполняются действия:
- 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) применена и имеет статус
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 узла.