2.5. 配置自节点修复 Operator
Self Node Remediation Operator 创建 SelfNodeRemediationConfig CR 和 SelfNodeRemediationTemplate 自定义资源定义(CRD)。
2.5.1. 了解 Self Node Remediation Operator 配置
Self Node Remediation Operator 创建了名为 self-node-remediation-config 的 SelfNodeRemediationConfig CR。CR 在 Self Node Remediation Operator 的命名空间中创建。
SelfNodeRemediationConfig CR 的更改重新创建 Self Node Remediation 守护进程集。
SelfNodeRemediationConfig CR 类似于以下 YAML 文件:
apiVersion: self-node-remediation.medik8s.io/v1alpha1 kind: SelfNodeRemediationConfig metadata: name: self-node-remediation-config namespace: openshift-operators spec: safeTimeToAssumeNodeRebootedSeconds: 180 1 watchdogFilePath: /dev/watchdog 2 isSoftwareRebootEnabled: true 3 apiServerTimeout: 15s 4 apiCheckInterval: 5s 5 maxApiErrorThreshold: 3 6 peerApiServerTimeout: 5s 7 peerDialTimeout: 5s 8 peerRequestTimeout: 5s 9 peerUpdateInterval: 15m 10
- 1
- 指定存活对等点的超时持续时间,然后 Operator 可以假定一个不健康的节点已被重启。Operator 自动计算这个值的下限。但是,如果不同的节点有不同的 watchdog 超时,则必须将此值改为更高的值。
- 2
- 指定节点中 watchdog 设备的文件路径。如果您为 watchdog 设备输入了一个错误的路径,则 Self Node Remediation Operator 会自动检测到 softdog 设备路径。
如果 watchdog 设备不可用,则
SelfNodeRemediationConfigCR 将使用软件重启。 - 3
- 指定是否启用不健康节点的软件重启。默认情况下,
SoftwareRebootEnabled的值设置为true。要禁用软件重启,请将参数设置为false。 - 4
- 指定检查每个 API 服务器的连接的超时持续时间。此超过了此持续时间,Operator 会启动补救。超时持续时间必须大于或等于 10 毫秒。
- 5
- 指定检查每个 API 服务器的连接的频率。超时持续时间必须大于或等于 1 秒。
- 6
- 指定一个阈值。达到这个阈值后,节点开始联系其同级服务器。阈值必须大于或等于 1 秒。
- 7
- 指定对等对等服务器连接 API 服务器的超时时间。超时持续时间必须大于或等于 10 毫秒。
- 8
- 指定与对等连接建立超时的持续时间。超时持续时间必须大于或等于 10 毫秒。
- 9
- 指定超时从对等点获得响应的时长。超时持续时间必须大于或等于 10 毫秒。
- 10
- 指定更新对等信息的频率,如 IP 地址。超时持续时间必须大于或等于 10 秒。
您可以编辑由 Self Node Remediation Operator 创建的 self-node-remediation-config CR。但是,当您尝试为 Self Node Remediation Operator 创建新 CR 时,日志中会显示以下信息:
controllers.SelfNodeRemediationConfig
ignoring selfnoderemediationconfig CRs that are not named 'self-node-remediation-config'
or not in the namespace of the operator:
'openshift-operators' {"selfnoderemediationconfig":
"openshift-operators/selfnoderemediationconfig-copy"}2.5.2. 了解自助节点修复模板配置
Self Node Remediation Operator 还创建 SelfNodeRemediationTemplate 自定义资源定义(CRD)。此 CRD 为节点定义补救策略。可用的补救策略如下:
ResourceDeletion-
此补救策略移除节点上的 pod 和关联的卷附加,而不是节点对象。此策略有助于更快地恢复工作负载。
ResourceDeletion是默认的补救策略。 NodeDeletion-
此补救策略已弃用,并将在以后的发行版本中删除。在当前发行版本中,即使选择了
NodeDeletion策略,也会使用ResourceDeletion策略。
Self Node Remediation Operator 为策略 self-node-remediation-resource-deletion-template 创建 SelfNodeRemediationTemplate CR,其 ResourceDeletion 补救策略使用。
SelfNodeRemediationTemplate CR 类似于以下 YAML 文件:
apiVersion: self-node-remediation.medik8s.io/v1alpha1 kind: SelfNodeRemediationTemplate metadata: creationTimestamp: "2022-03-02T08:02:40Z" name: self-node-remediation-<remediation_object>-deletion-template 1 namespace: openshift-operators spec: template: spec: remediationStrategy: <remediation_strategy> 2