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