3.6. 在 SR-IOV 网络策略更新过程中配置并行节点排空
默认情况下,SR-IOV Network Operator 会在每次策略更改前从节点排空工作负载。Operator 一次执行这个操作,一个节点以确保没有工作负载受到重新配置的影响。
在大型集群中,按顺序排空节点可能非常耗时,需要几小时甚至几天。在时间敏感的环境中,您可以在 SriovNetworkPoolConfig
自定义资源 (CR) 中启用并行节点排空,以更快地推出 SR-IOV 网络配置。
要配置并行排空,请使用 SriovNetworkPoolConfig
CR 创建节点池。然后,您可以在池中添加节点,并在 Operator 可以并行排空的池中定义最大节点数。使用这个方法,您可以启用并行排空来更快地重新配置,同时确保池中仍有足够的节点来处理任何正在运行的工作负载。
节点只能属于一个 SR-IOV 网络池配置。如果节点不是池的一部分,则会将其添加到虚拟(默认)中,该池配置为仅排空一个节点。
节点可能会在排空过程中重启。
先决条件
-
安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
特权的用户身份登录。 - 安装 SR-IOV Network Operator。
- 节点具有支持 SR-IOV 的硬件。
流程
创建一个
SriovNetworkPoolConfig
资源:创建一个定义
SriovNetworkPoolConfig
资源的 YAML 文件:sriov-nw-pool.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
SriovNetworkPoolConfig
资源:oc create -f sriov-nw-pool.yaml
$ oc create -f sriov-nw-pool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令来创建
sriov-test
命名空间:oc create namespace sriov-test
$ oc create namespace sriov-test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
SriovNetworkNodePolicy
资源:创建一个定义
SriovNetworkNodePolicy
资源的 YAML 文件:sriov-node-policy.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
SriovNetworkNodePolicy
资源:oc create -f sriov-node-policy.yaml
$ oc create -f sriov-node-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建一个
SriovNetwork
资源:创建一个定义
SriovNetwork
资源的 YAML 文件:sriov-network.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
SriovNetwork
资源:oc create -f sriov-network.yaml
$ oc create -f sriov-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,查看您创建的节点池:
oc get sriovNetworkpoolConfig -n openshift-sriov-network-operator
$ oc get sriovNetworkpoolConfig -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME AGE pool-1 67s
NAME AGE pool-1 67s
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 在本例中,
pool-1
包含具有worker
角色的所有节点。
要使用上述流程中的示例场景演示节点排空过程,请完成以下步骤:
更新
SriovNetworkNodePolicy
资源中的虚拟功能数量,以触发集群中的工作负载排空:oc patch SriovNetworkNodePolicy sriov-nic-1 -n openshift-sriov-network-operator --type merge -p '{"spec": {"numVfs": 4}}'
$ oc patch SriovNetworkNodePolicy sriov-nic-1 -n openshift-sriov-network-operator --type merge -p '{"spec": {"numVfs": 4}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令监控目标集群上的排空状态:
oc get sriovNetworkNodeState -n openshift-sriov-network-operator
$ oc get sriovNetworkNodeState -n openshift-sriov-network-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAMESPACE NAME SYNC STATUS DESIRED SYNC STATE CURRENT SYNC STATE AGE openshift-sriov-network-operator worker-0 InProgress Drain_Required DrainComplete 3d10h openshift-sriov-network-operator worker-1 InProgress Drain_Required DrainComplete 3d10h
NAMESPACE NAME SYNC STATUS DESIRED SYNC STATE CURRENT SYNC STATE AGE openshift-sriov-network-operator worker-0 InProgress Drain_Required DrainComplete 3d10h openshift-sriov-network-operator worker-1 InProgress Drain_Required DrainComplete 3d10h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当排空过程完成后,
SYNC STATUS
变为Succeeded
,DESIRED SYNC STATE
和CURRENT SYNC STATE
值返回到IDLE
。