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