7.2. 为启用 SR-IOV 的工作负载配置 QinQ 支持
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您可以使用具有
cluster-admin
角色的用户访问集群。 - 已安装 SR-IOV Network Operator。
流程
使用以下内容创建一个名为
sriovnetpolicy-810-sriov-node-network.yaml
的文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
SriovNetworkNodePolicy
对象:oc create -f sriovnetpolicy-810-sriov-node-network.yaml
$ oc create -f sriovnetpolicy-810-sriov-node-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开一个单独的终端窗口,运行以下命令来监控
openshift-sriov-network-operator
命名空间中指定节点的 SR-IOV 网络节点状态的同步状态:watch -n 1 'oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath="{.status.syncStatus}"'
$ watch -n 1 'oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath="{.status.syncStatus}"'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 同步状态表示从
InProgress
更改为Succeeded
。创建一个
SriovNetwork
对象,并设置名为 S-tag 或Service Tag
的外部 VLAN,因为它属于基础架构。重要您必须在交换机的中继接口上配置 VLAN。另外,您可能需要进一步配置一些交换机来支持 QinQ 标记。
使用以下内容创建一个名为
nad-sriovnetwork-1ad-810.yaml
的文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建对象:
oc create -f nad-sriovnetwork-1ad-810.yaml
$ oc create -f nad-sriovnetwork-1ad-810.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用内部 VLAN 创建
NetworkAttachmentDefinition
对象。内部 VLAN 通常被称为 C-tag 或Customer Tag
,它属于 Network Function:使用以下内容,创建一个名为
nad-cvlan100.yaml
的文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定 pod 中的 VF 接口。默认名称为
net1
,因为 pod 注解中没有设置名称。
运行以下命令来应用 YAML 文件:
oc apply -f nad-cvlan100.yaml
$ oc apply -f nad-cvlan100.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
按照以下步骤,在节点上验证 QinQ 是否活跃:
使用以下内容创建一个名为
test-qinq-pod.yaml
的文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建测试 pod:
oc create -f test-qinq-pod.yaml
$ oc create -f test-qinq-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在存在 pod 的目标节点上进入 debug 会话,运行以下命令显示网络接口
ens5f0
的信息:oc debug node/my-cluster-node -- bash -c "ip link show ens5f0"
$ oc debug node/my-cluster-node -- bash -c "ip link show ens5f0"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出中的
vlan protocol 802.1ad
ID 表示接口支持带有协议 802.1ad (QinQ)的 VLAN 标记。VLAN ID 为 171。