Политики прерывания узлов
Содержание
Понимание прерывания узлов в конфигурации машинЧто можно контролировать с помощью политик прерывания узловПример: Политика прерывания узлов по умолчаниюПример: Настройка поведения для файловПример: Применение политики к конкретному файлуПонимание прерывания узлов в конфигурации машин
По умолчанию, при внесении определённых изменений в раздел systemd units объекта MachineConfig, оператор Machine Configuration выполнит дренаж и перезагрузку узлов, связанных с этим MachineConfig. Однако изменения в обычных файловых записях, как правило, не вызывают перезагрузку, что может привести к тому, что конфигурация не вступит в силу, как ожидалось. Чтобы решить эту проблему, вы можете определить политики прерывания узлов, которые указывают, какие типы изменений должны вызывать перезагрузку узлов или другие действия прерывания. Эти политики настраиваются в объекте MachineConfiguration, расположенном в пространстве имён cpaas-system. См. пример ниже для настройки политики прерывания узлов.
После определения оператор Machine Configuration проверяет политику на наличие ошибок, таких как неверный формат. Затем он записывает политику в поле status.nodeDisruptionPolicyStatus объекта MachineConfiguration. Эти пользовательские политики переопределяют настройки прерывания по умолчанию в кластере.
По умолчанию с кластером устанавливается ресурс MachineConfiguration с именем cluster. Вы можете настроить поведение прерывания узлов в этом ресурсе.
Что можно контролировать с помощью политик прерывания узлов
Политики прерывания узлов позволяют определить, что происходит при изменениях в следующих областях конфигурации:
-
Файлы: Вы можете задать поведение для изменений файлов (за исключением изменений в корневом каталоге). По умолчанию изменения файлов не вызывают прерывания. Вы можете изменить это поведение с помощью поля
spec.defaultNodeDisruptionPolicySpecAction.files. -
Systemd Units: Вы можете создавать или изменять службы
systemd, включая их включение, отключение или изменение состояния. По умолчанию изменения вsystemdunits вызывают дренаж узла и перезагрузку. -
Публичные SSH ключи: Вы можете добавлять или обновлять SSH ключи для пользователя
boot. Эти изменения применяются немедленно по умолчанию и не вызывают перезагрузку или дренаж.
Каждое изменение оценивается в соответствии с политикой прерывания узлов, которая может вызвать одно или несколько из следующих действий:
Reboot: Дренаж и перезагрузка узла.None: Прерывание не вызывается; изменение применяется бесшумно.Drain: Дренаж узла без перезагрузки.Restart: Перезапуск указанной службыsystemd.DaemonReload: Перезагрузка всех конфигурацийsystemdunits.
Пример: Политика прерывания узлов по умолчанию
Ниже приведена конфигурация по умолчанию для ресурса MachineConfiguration с именем cluster после установки:
Эта конфигурация означает:
- Изменения файлов не вызывают никаких действий.
- Изменения в systemd units вызывают дренаж узла и перезагрузку.
- Изменения SSH ключей применяются без прерывания.
Пример: Настройка поведения для файлов
Вы можете изменить действие по умолчанию для изменений файлов, чтобы они вызывали перезагрузку:
С этой конфигурацией любое изменение управляемого файла приведёт к дренажу и перезагрузке затронутого узла оператором Machine Configuration.
Пример: Применение политики к конкретному файлу
Вы также можете определить действия прерывания для конкретного пути файла. В следующем примере изменения в /usr/local/bin/myapp.sh не вызовут перезагрузку узла, а вместо этого перезагрузят конфигурацию systemd и перезапустят соответствующую службу:
В этом случае при обновлении /usr/local/bin/myapp.sh оператор Machine Configuration перезагрузит все systemd units и перезапустит myapp.service — без дренажа или перезагрузки узла.