管理节点配置
您可以使用本节所述任务来创建 MachineConfig 对象,以修改节点上的文件、systemd 单元和 SSH 公钥,并恢复已发生配置漂移的节点。
MachineConfig 支持 Ignition 规范版本 3.4。所有 MachineConfig 对象都必须按此版本创建。
在某些情况下,节点上的配置可能与当前通过 MachineConfig 应用的配置不完全匹配。这种情况称为配置漂移。machine configuration daemon 会定期检查节点配置是否发生漂移。如果检测到漂移,节点将被标记为 Degraded,并保持该状态,直到管理员恢复预期配置为止。
以下示例演示如何使用 MachineConfig 对象管理节点配置。
配置 Chrony 时间服务
要配置 Chrony 时间同步服务(chronyd)并指定 NTP 服务器及相关设置,您可以通过 MachineConfig 对象更新目标节点上的 chrony.conf 文件。
-
首先,创建一个包含所需 Chrony 配置的临时文件:
-
然后,对该文件内容进行 base64 编码:
-
创建名为
99-worker-chrony的MachineConfig对象。在.spec.config.storage.files[0].contents.source字段中,插入格式为data:text/plain;base64,<encoded-content>的 base64 编码字符串:此配置会创建一个
MachineConfig对象,将自定义的chrony.conf文件应用到与workermachine configuration 池关联的节点。该文件将写入每个节点上的/etc/chrony.conf,文件权限设置为0o644。要使更改生效,请为
/etc/chrony.conf配置一个节点中断策略,以重启该服务:对
chronyd使用Restart;该服务不支持 reload 操作。在应用MachineConfig之前,请确认该策略已显示在status.nodeDisruptionPolicyStatus中。
禁用 Chrony 时间服务
要在具有特定角色的节点上禁用 Chrony 时间同步服务,您可以创建一个 MachineConfig 对象,覆盖 systemd 单元定义并禁用该服务。
示例配置:
此配置会将自定义版本的 chronyd.service 单元文件推送到 worker machine configuration 池中的节点。该服务会被显式禁用。配置应用并且节点重启后,Chrony 服务将不再自动启动。
为 boot 用户配置 SSH 公钥
machine configuration 系统允许您为受管节点上的 boot 用户配置 SSH 公钥。不支持为其他用户账户进行配置。请注意,machine configuration 不会自动创建用户或组——在应用配置之前,您必须确保节点上已存在 boot 用户和组。
示例配置:
此 MachineConfig 会在 worker machine configuration 池中的节点上,将指定的 SSH 密钥安装到 /home/boot/.ssh/authorized_keys 文件中。
从配置漂移中恢复
如果节点的配置与其分配的 MachineConfig 不一致,它将被标记为 Degraded。在此状态下,节点仍可继续运行,但在问题解决之前无法接收进一步的配置更新。
要让节点从这种降级状态恢复,有两种方式:
-
手动还原配置 您可以手动调整节点上的文件和权限,使其与分配的
MachineConfig中指定的内容完全一致。系统会检测到更正并清除降级状态。 -
强制重新应用配置 在受影响的节点上创建一个空文件
/run/machine-config-daemon-force。machine configuration daemon 会检测到该触发器,重新应用当前的MachineConfig,删除触发文件,并重启节点。重启后,节点将从Degraded变为Done。