13.2. 确保 PTP 和 SR-IOV 守护进程选择器兼容性
如果 DU 配置集使用 GitOps Zero Touch Provisioning (ZTP)插件版本 4.11 或更早版本部署,则 PTP 和 SR-IOV Operator 可能会被配置为仅将守护进程放在标记为 master
的节点上。此配置可防止 PTP 和 SR-IOV 守护进程在 worker 节点上运行。如果系统上正确配置了 PTP 和 SR-IOV 守护进程节点选择器,您必须更改守护进程,然后才能继续 worker DU 配置集配置。
流程
在其中一个 spoke 集群中检查 PTP Operator 的守护进程节点选择器设置:
$ oc get ptpoperatorconfig/default -n openshift-ptp -ojsonpath='{.spec}' | jq
PTP Operator 的输出示例
{"daemonNodeSelector":{"node-role.kubernetes.io/master":""}} 1
- 1
- 如果节点选择器设置为
master
,则 spoke 会使用需要更改的 GitOps ZTP 插件的版本进行部署。
在其中一个 spoke 集群中检查 SR-IOV Operator 的守护进程节点选择器设置:
$ oc get sriovoperatorconfig/default -n \ openshift-sriov-network-operator -ojsonpath='{.spec}' | jq
SR-IOV Operator 的输出示例
{"configDaemonNodeSelector":{"node-role.kubernetes.io/worker":""},"disableDrain":false,"enableInjector":true,"enableOperatorWebhook":true} 1
- 1
- 如果节点选择器设置为
master
,则 spoke 会使用需要更改的 GitOps ZTP 插件的版本进行部署。
在组策略中,添加以下
complianceType
和spec
条目:spec: - fileName: PtpOperatorConfig.yaml policyName: "config-policy" complianceType: mustonlyhave spec: daemonNodeSelector: node-role.kubernetes.io/worker: "" - fileName: SriovOperatorConfig.yaml policyName: "config-policy" complianceType: mustonlyhave spec: configDaemonNodeSelector: node-role.kubernetes.io/worker: ""
重要更改
daemonNodeSelector
字段会导致临时 PTP 同步丢失和 SR-IOV 连接丢失。- 提交 Git 中的更改,然后推送到由 GitOps ZTP ArgoCD 应用程序监控的 Git 存储库。