1.7. 不同接口的策略配置示例
在读取不同示例 NodeNetworkConfigurationPolicy
(NNCP) 清单配置前,当您将策略应用到节点时请考虑以下因素,以便集群在其最佳性能条件下运行:
-
当您需要将策略应用到多个节点时,为每个目标节点创建一个
NodeNetworkConfigurationPolicy
清单。Kubernetes NMState Operator 会以未指定顺序定义的 NNCP 将策略应用到每个节点。使用此方法限制策略会缩短策略应用程序的时长,但如果集群的配置中出现错误,则可能会有在集群范围内出现运行中断的风险。为了避免这种类型的错误,首先将 NNCP 应用到某些节点,请确认为这些节点正确配置了 NNCP,然后继续将策略应用到剩余的节点。 -
当您需要将策略应用到多个节点时,但只想为所有目标节点创建一个 NNCP,Kubernetes NMState Operator 会按顺序将策略应用到每个节点。您可以使用集群配置中的
maxUnavailable
参数为目标节点设置策略应用程序的速度和覆盖范围。通过为参数设置一个较低的百分比值,您可以在中断只会影响接收策略应用程序的一小部分节点时,降低出现集群范围中断的风险。 -
如果您在两个 NNCP 清单中将
maxUnavailable
参数设置为50%
,策略配置覆盖会应用到集群中的 100% 节点。 - 当节点重启时,Kubernetes NMState Operator 无法控制它将策略应用到节点的顺序。Kubernetes NMState Operator 可能会按顺序应用相互独立的策略,这会导致网络对象降级。
- 考虑在单个策略中指定所有相关网络配置。
1.7.1. 示例:以太网接口节点网络配置策略 复制链接链接已复制到粘贴板!
通过将 NodeNetworkConfigurationPolicy
清单应用到集群,在集群的节点上配置以太网接口。
以下 YAML 文件是一个以太接口的清单示例。它包含了示例值,需要使用自己的信息替换。
1.7.2. 示例: Linux bridge interface 节点网络配置策略 复制链接链接已复制到粘贴板!
通过将一个 NodeNetworkConfigurationPolicy
清单应用到集群来在集群的节点上创建一个 Linux 网桥接口。
以下 YAML 文件是 Linux 网桥界面的清单示例。如果运行 playbook,其中会包含必须替换为您自己的信息的样本值。
1.7.3. 示例:VLAN 接口节点网络配置策略 复制链接链接已复制到粘贴板!
通过将一个 NodeNetworkConfigurationPolicy
清单应用到集群来在集群的节点上创建一个 VLAN 接口。
在单个 NodeNetworkConfigurationPolicy
清单中为节点的 VLAN 接口定义所有相关配置。例如,在同一 NodeNetworkConfigurationPolicy
清单中为节点定义 VLAN 接口和相关路由。
当节点重启时,Kubernetes NMState Operator 无法控制应用策略的顺序。因此,如果您将单独的策略用于相关的网络配置,Kubernetes NMState Operator 可能会按顺序应用这些策略,从而导致网络对象降级。
以下 YAML 文件是 VLAN 接口的清单示例。如果运行 playbook,其中会包含必须替换为您自己的信息的样本值。
1.7.4. 示例:绑定接口节点网络配置策略 复制链接链接已复制到粘贴板!
通过将一个 NodeNetworkConfigurationPolicy
清单应用到集群来在集群的节点上创建一个绑定接口。
OpenShift Container Platform 只支持以下绑定模式:
-
mode=1 active-backup
-
mode=2 balance-xor
-
mode=4 802.3ad
不支持其他绑定模式。
以下 YAML 文件是绑定接口的清单示例。如果运行 playbook,其中会包含必须替换为您自己的信息的样本值。
- 1
- 策略的名称。
- 2
- 可选: 如果没有包括
nodeSelector
参数,策略会应用到集群中的所有节点。 - 3
- 这个示例使用
hostname
节点选择器。 - 4
- 接口的名称。
- 5
- 可选:接口人类可读的接口描述。
- 6
- 接口的类型。这个示例创建了一个绑定。
- 7
- 创建后接口的请求状态。
- 8
- 可选:如果您不使用
dhcp
,可以设置静态 IP,或让接口没有 IP 地址。 - 9
- 在这个示例中启用
ipv4
。 - 10
- Bond 的驱动模式。这个示例使用 active 备份模式。
- 11
- 可选:本例使用 miimon 检查每 140ms 的绑定链接。
- 12
- 绑定中的下级节点 NIC。
- 13
- 可选:绑定的最大传输单元(MTU)。如果没有指定,其默认值为
1500
。
1.7.5. 示例:同一节点网络配置策略中的多个接口 复制链接链接已复制到粘贴板!
您可以在相同的节点网络配置策略中创建多个接口。这些接口可以相互引用,允许您使用单个策略清单来构建和部署网络配置。
以下示例 YAML 文件在两个 NIC 和 VLAN 之间创建一个名为 bond10
的绑定,名为 bond10.103
,它连接到绑定。
1.7.6. 示例:虚拟功能的节点网络配置策略 复制链接链接已复制到粘贴板!
通过应用 NodeNetworkConfigurationPolicy
清单,更新现有集群中的单根 I/O 虚拟化 (SR-IOV) 网络功能 (VF) 的主机网络设置。
您可以将 NodeNetworkConfigurationPolicy
清单应用到现有集群,以完成以下任务:
- 为 VF 配置 QoS 主机网络设置以优化性能。
- 为网络接口添加、删除或更新 VF。
- 管理 VF 绑定配置。
要在也通过 SR-IOV Network Operator 管理的物理功能上使用 NMState 更新 SR-IOV VF 的主机网络设置,您必须将相关 SriovNetworkNodePolicy
资源中的 externallyManaged
参数设置为 true
。如需更多信息,请参阅附加资源部分。
以下 YAML 文件是一个清单示例,它为 VF 定义 QoS 策略。此 YAML 包含示例值,您必须替换为您自己的信息。
以下 YAML 文件是为网络接口添加 VF 的清单示例。
在这一示例配置中,ens1f1v0
VF 在 ens1f1
物理接口创建,此 VF 被添加到绑定网络接口 bond0
中。该绑定使用 active-backup
模式来实现冗余。在本例中,VF 被配置为使用硬件卸载来直接在物理接口上管理 VLAN。
- 1
- 策略的名称。
- 2
- 可选: 如果没有包括
nodeSelector
参数,策略会应用到集群中的所有节点。 - 3
- 这个示例适用于具有
worker
角色的所有节点。 - 4
- VF 网络接口的名称。
- 5
- 要创建的 VF 数量。
- 6
- 设置以允许活跃和备份 VF 之间的故障转移绑定。
- 7
- VLAN 的 ID。这个示例使用硬卸载在 VF 上直接定义 VLAN。
- 8
- 绑定网络接口的名称。
- 9
- 可选:接口人类可读的接口描述。
- 10
- 接口的类型。
- 11
- 配置后接口的请求状态。
- 12
- 绑定的绑定策略。
- 13
- 主附加绑定端口。
- 14
- 绑定网络接口的端口。
- 15
- 在本例中,VLAN 网络接口作为额外接口添加到绑定网络接口。
1.7.7. 示例:带有 VRF 实例网络配置策略的网络接口 复制链接链接已复制到粘贴板!
通过应用 NodeNetworkConfigurationPolicy
自定义资源(CR)将虚拟路由和转发(VRF)实例与网络接口关联。
将 VRF 实例与网络接口关联只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
通过将 VRF 实例与网络接口关联,您可以支持流量隔离、独立路由决策和网络资源的逻辑分离。
在配置 Virtual Route Forwarding (VRF) 时,您必须将 VRF 值改为小于 1000
的表 ID,因为 OpenShift Container Platform 保留大于 1000
的值。
在裸机环境中,您可以使用 MetalLB 通过属于 VRF 实例的接口宣布负载均衡器服务。如需更多信息,请参阅附加资源部分。
以下 YAML 文件是一个将 VRF 实例与网络接口关联的示例。如果运行 playbook,其中会包含必须替换为您自己的信息的样本值。