Управление конфигурацией узлов
Вы можете использовать задачи, описанные в этом разделе, для создания объектов MachineConfig, которые изменяют файлы, unit-файлы systemd и публичные SSH-ключи на узлах, а также для восстановления узлов, у которых возник дрейф конфигурации.
MachineConfig поддерживает версию 3.4 спецификации Ignition. Все объекты MachineConfig должны создаваться в соответствии с этой версией.
В некоторых ситуациях конфигурация на узле может не полностью совпадать с конфигурацией, которая в данный момент применяется через MachineConfig. Такое состояние называется дрейфом конфигурации. Демон конфигурации машин периодически проверяет, не произошёл ли дрейф конфигурации узла. Если дрейф обнаружен, узлу присваивается состояние Degraded, и он остаётся в этом состоянии, пока администратор не восстановит ожидаемую конфигурацию.
Следующие примеры демонстрируют, как использовать объекты MachineConfig для управления конфигурациями узлов.
Содержание
Настройка службы времени ChronyОтключение службы времени ChronyНастройка публичного SSH-ключа для пользователяbootВосстановление после дрейфа конфигурацииНастройка службы времени Chrony
Чтобы настроить службу синхронизации времени Chrony (chronyd) и указать NTP-серверы и связанные параметры, вы можете обновить файл chrony.conf на целевых узлах с помощью объекта MachineConfig.
-
Сначала создайте временный файл, содержащий нужную конфигурацию Chrony:
-
Затем закодируйте содержимое файла в base64:
-
Создайте объект
MachineConfigс именем99-worker-chrony. В поле.spec.config.storage.files[0].contents.sourceвставьте строку, закодированную в base64, в форматеdata:text/plain;base64,<encoded-content>:Эта конфигурация создаёт объект
MachineConfig, который применяет настроенный файлchrony.confк узлам, связанным с пулом конфигурации машинworker. Файл будет записан в/etc/chrony.confна каждом узле, а права доступа к файлу будут установлены в0o644.
Отключение службы времени Chrony
Чтобы отключить службу синхронизации времени Chrony на узлах с определённой ролью, можно создать объект MachineConfig, который переопределяет определение unit systemd и отключает службу.
Пример конфигурации:
Эта конфигурация передаёт пользовательскую версию файла unit chronyd.service на узлы в пуле конфигурации машин worker. Служба явно отключена. После применения конфигурации и перезагрузки узлов служба Chrony больше не будет запускаться автоматически.
Настройка публичного SSH-ключа для пользователя boot
Система конфигурации машин позволяет настроить публичный SSH-ключ для пользователя boot на управляемых узлах. Настройка для других учётных записей пользователей не поддерживается. Обратите внимание, что machine configuration не создаёт пользователей или группы автоматически — перед применением конфигурации необходимо убедиться, что пользователь и группа boot существуют на узле.
Пример конфигурации:
Этот MachineConfig установит указанный SSH-ключ в файл /home/boot/.ssh/authorized_keys на узлах в пуле конфигурации машин worker.
Восстановление после дрейфа конфигурации
Если конфигурация узла отличается от назначенного ему MachineConfig, узлу будет присвоено состояние Degraded. В этом состоянии узел продолжает работать, но не может получать дальнейшие обновления конфигурации, пока проблема не будет устранена.
Существует два способа восстановить узел из этого деградированного состояния:
-
Вручную вернуть конфигурацию Вы можете вручную изменить файлы и права доступа на узле так, чтобы они в точности соответствовали значениям, указанным в назначенном
MachineConfig. Система обнаружит исправление и снимет статус деградированного состояния. -
Принудительно применить конфигурацию повторно Создайте пустой файл
/run/machine-config-daemon-forceна затронутом узле. Демон конфигурации машин обнаружит этот триггер, повторно применит текущийMachineConfig, удалит файл-триггер и перезагрузит узел. После перезагрузки узел перейдёт из состоянияDegradedобратно вDone.