This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.14.3. 配置 SR-IOV Network Operator
Single Root I/O Virtualization(SR-IOV)Network Operator 管理集群中的 SR-IOV 网络设备和网络附加。
14.3.1. 配置 SR-IOV Network Operator
通常不需要修改 SR-IOV Network Operator 配置。我们推荐在大多数用例中使用默认配置。只有 Operator 的默认行为与您的用例不兼容时,才需要按照以下步骤修改相关配置。
					SR-IOV Network Operator 添加了 SriovOperatorConfig.sriovnetwork.openshift.io 自定义资源定义 (CRD)。Operator 会在 openshift-sriov-network-operator 命名空间中自动创建一个名为 default 的 SriovOperatorConfig 自定义资源 (CR)。
				
						default CR 包含集群的 SR-IOV Network Operator 配置。要更改 Operator 配置,您必须修改这个 CR。
					
					SriovOperatorConfig 对象为配置 Operator 提供以下几个字段:
				
- 
							enableInjector允许项目管理员启用或禁用 Network Resources Injector 守护进程集。
- 
							enableOperatorWebhook允许项目管理员启用或禁用 Operator Admission Controller webhook 守护进程集。
- 
							configDaemonNodeSelector允许项目管理员在所选节点上调度 SR-IOV 网络配置守护进程。
14.3.1.1. 关于 Network Resources Injector(网络资源注入器)。
Network Resources Injector 是一个 Kubernetes Dynamic Admission Controller 应用。它提供以下功能:
- 根据 SR-IOV 网络附加定义注解,对 Pod 规格中的资源请求和限值进行修改,以添加 SR-IOV 资源名称。
- 
								使用 Downward API 卷修改 pod 规格,以公开 pod 注解、标签和巨页请求和限制。在 pod 中运行的容器可以作为 /etc/podnetinfo路径下的文件来访问公开的信息。
默认情况下,Network Resources Injector 由 SR-IOV Network Operator 启用,并作为守护进程集在所有 control plane 节点上运行(也称为 master 节点)。以下是在具有三个 control plane 节点的集群中运行的 Network Resources Injector pod 示例:
oc get pods -n openshift-sriov-network-operator
$ oc get pods -n openshift-sriov-network-operator输出示例
NAME READY STATUS RESTARTS AGE network-resources-injector-5cz5p 1/1 Running 0 10m network-resources-injector-dwqpx 1/1 Running 0 10m network-resources-injector-lktz5 1/1 Running 0 10m
NAME                                      READY   STATUS    RESTARTS   AGE
network-resources-injector-5cz5p          1/1     Running   0          10m
network-resources-injector-dwqpx          1/1     Running   0          10m
network-resources-injector-lktz5          1/1     Running   0          10m14.3.1.2. 关于 SR-IOV Network Operator 准入控制器 Webhook
SR-IOV Network Operator Admission Controller Webhook 是一个 Kubernetes Dynamic Admission Controller 应用程序。它提供以下功能:
- 
								在创建或更新时,验证 SriovNetworkNodePolicyCR。
- 
								修改 SriovNetworkNodePolicyCR,在创建或更新 CR 时为priority和deviceType项设置默认值。
默认情况下,SR-IOV Network Operator Admission Controller Webhook 由 Operator 启用,并作为守护进程集在所有 control plane 节点上运行。以下是在具有三个 control plane 节点的集群中运行的 Operator Admission Controller webhook pod 的示例:
oc get pods -n openshift-sriov-network-operator
$ oc get pods -n openshift-sriov-network-operator输出示例
NAME READY STATUS RESTARTS AGE operator-webhook-9jkw6 1/1 Running 0 16m operator-webhook-kbr5p 1/1 Running 0 16m operator-webhook-rpfrl 1/1 Running 0 16m
NAME                                      READY   STATUS    RESTARTS   AGE
operator-webhook-9jkw6                    1/1     Running   0          16m
operator-webhook-kbr5p                    1/1     Running   0          16m
operator-webhook-rpfrl                    1/1     Running   0          16m14.3.1.3. 关于自定义节点选择器
						SR-IOV 网络配置守护进程在集群节点上发现并配置 SR-IOV 网络设备。默认情况下,它将部署到集群中的所有 worker 节点。您可以使用节点标签指定 SR-IOV 网络配置守护进程在哪些节点上运行。
					
14.3.1.4. 禁用或启用网络资源注入器
要禁用或启用默认启用的网络资源注入器,请完成以下步骤。
先决条件
- 
								安装 OpenShift CLI(oc)。
- 
								以具有 cluster-admin特权的用户身份登录。
- 您必须已安装了 SR-IOV Network Operator。
流程
- 设置 - enableInjector字段。将- <value>替换为- false来禁用这个功能;或替换为- true来启用这个功能。- oc patch sriovoperatorconfig default \ --type=merge -n openshift-sriov-network-operator \ --patch '{ "spec": { "enableInjector": <value> } }'- $ oc patch sriovoperatorconfig default \ --type=merge -n openshift-sriov-network-operator \ --patch '{ "spec": { "enableInjector": <value> } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 提示- 您还可以应用以下 YAML 来更新 Operator: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.3.1.5. 禁用或启用 SR-IOV Network Operator 准入控制器 Webhook
要禁用或启用默认启用的准入控制器 Webhook,请完成以下步骤。
先决条件
- 
								安装 OpenShift CLI(oc)。
- 
								以具有 cluster-admin特权的用户身份登录。
- 您必须已安装了 SR-IOV Network Operator。
流程
- 设置 - enableOperatorWebhook字段。将- <value>替换为- false来禁用这个功能;或替换为- true来启用这个功能:- oc patch sriovoperatorconfig default --type=merge \ -n openshift-sriov-network-operator \ --patch '{ "spec": { "enableOperatorWebhook": <value> } }'- $ oc patch sriovoperatorconfig default --type=merge \ -n openshift-sriov-network-operator \ --patch '{ "spec": { "enableOperatorWebhook": <value> } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 提示- 您还可以应用以下 YAML 来更新 Operator: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.3.1.6. 为 SR-IOV 网络配置守护进程配置自定义 NodeSelector
						SR-IOV 网络配置守护进程在集群节点上发现并配置 SR-IOV 网络设备。默认情况下,它将部署到集群中的所有 worker 节点。您可以使用节点标签指定 SR-IOV 网络配置守护进程在哪些节点上运行。
					
要指定部署了 SR-IOV 网络配置守护进程的节点,请完成以下步骤。
							当您更新 configDaemonNodeSelector 字段时,SR-IOV 网络配置守护进程会在所选节点中重新创建。在重新创建守护进程时,集群用户无法应用任何新的 SR-IOV 网络节点策略或创建新的 SR-IOV Pod。
						
流程
- 要为 Operator 更新节点选择器,请输入以下命令: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 - <node_label>替换为要应用的标签,如下例中:- "node-role.kubernetes.io/worker": ""。提示- 您还可以应用以下 YAML 来更新 Operator: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow