3.2. 在机器配置更改时配置节点重启行为
您可以创建一个节点中断策略来定义,哪些机器配置改变会对集群造成中断,哪些改变不会造成中断。
您可以控制节点如何响应对 /var
或 /etc
目录中的文件、systemd 单元、SSH 密钥和 registry.conf
文件的更改。
当您进行任何这样的更改时,节点中断策略将决定在 MCO 实现更改时,需要进行以下的哪些操作:
- Reboot: MCO 排空并重启节点。这是默认的行为。
- None: MCO 不排空或重启节点。MCO 在不进行其他操作的情况下应用更改。
- Drain :MCO 会封锁并排空其工作负载的节点。工作负载使用新配置重启。
- Reload: 对于服务,MCO 会在不重启该服务的情况下重新载入指定的服务。
- Restart :对于服务,MCO 会完全重启指定的服务。
- DaemonReload :MCO 重新加载 systemd 管理器配置。
- Special :这是一个内部的 MCO 操作,用户无法设置。
注意
-
Reboot
和None
操作不能用于任何其他操作,因为Reboot
和None
操作会覆盖其他操作。 - 操作会按照节点中断策略列表中设置的顺序应用。
- 如果您进行了其他机器配置更改,它们需要重新引导节点或对节点有其他的中断影响,则重新引导会取代节点中断策略操作。
流程
编辑
machineconfigurations.operator.openshift.io
对象以定义节点中断策略:$ oc edit MachineConfiguration cluster -n openshift-machine-config-operator
添加类似如下的节点中断策略:
apiVersion: operator.openshift.io/v1 kind: MachineConfiguration metadata: name: cluster # ... spec: nodeDisruptionPolicy: 1 files: 2 - actions: 3 - reload: 4 serviceName: chronyd.service 5 type: Reload path: /etc/chrony.conf 6 sshkey: 7 actions: - type: Drain - reload: serviceName: crio.service type: Reload - type: DaemonReload - restart: serviceName: crio.service type: Restart units: 8 - actions: - type: Drain - reload: serviceName: crio.service type: Reload - type: DaemonReload - restart: serviceName: crio.service type: Restart name: test.service
验证
查看您创建的
MachineConfiguration
对象文件:$ oc get MachineConfiguration/cluster -o yaml
输出示例
apiVersion: operator.openshift.io/v1 kind: MachineConfiguration metadata: labels: machineconfiguration.openshift.io/role: worker name: cluster # ... status: nodeDisruptionPolicyStatus: 1 clusterPolicies: files: # ... - actions: - reload: serviceName: chronyd.service type: Reload path: /etc/chrony.conf sshkey: actions: - type: Drain - reload: serviceName: crio.service type: Reload - type: DaemonReload - restart: serviceName: crio.service type: Restart units: - actions: - type: Drain - reload: serviceName: crio.service type: Reload - type: DaemonReload - restart: serviceName: crio.service type: Restart name: test.se # ...
- 1
- 指定当前的 cluster-validated 策略。