第 10 章 Kubernetes NMState
10.1. 观察和更新节点网络状态和配置 复制链接链接已复制到粘贴板!
安装 Kubernetes NMState Operator 后,您可以使用 Operator 观察和更新集群的节点网络状态和网络配置。
有关如何安装 NMState Operator 的更多信息,请参阅 Kubernetes NMState Operator。
您无法提供修改 br-ex 网桥的任何配置,即 OVN-Kubernetes 管理的 Open vSwitch 网桥。但是,您可以配置自定义 br-ex 网桥。
如需更多信息,请参阅在裸机中部署安装程序置备的集群文档或在裸机中安装用户置备的集群 文档中的"创建包括自定义 br-ex 网桥的清单对象"。
10.1.1. 使用 CLI 查看节点的网络状态 复制链接链接已复制到粘贴板!
节点网络状态是集群中所有节点的网络配置。一个 NodeNetworkState
对象存在于集群中的每个节点上。此对象定期更新,并捕获该节点的网络状态。
先决条件
-
已安装 OpenShift CLI(
oc
)。
流程
列出集群中的所有
NodeNetworkState
对象:oc get nns
$ oc get nns
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
NodeNetworkState
对象以查看该节点上的网络。为了清楚,这个示例中的输出已被重新编辑:oc get nns node01 -o yaml
$ oc get nns node01 -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.2. 从 Web 控制台查看节点(NNS)的网络状态 复制链接链接已复制到粘贴板!
作为管理员,您可以使用 OpenShift Container Platform Web 控制台观察 NodeNetworkState
资源和网络接口,并访问网络详情。
流程
进入到 Networking
NodeNetworkState。 在 NodeNetworkState 页面中,您可以查看
NodeNetworkState
资源列表以及节点上创建的对应接口。您可以基于接口状态, 接口类型, 和 IP 进行过滤,或者使用基于条件名称或标签的搜索栏来缩小显示的NodeNetworkState
资源范围。-
要访问
NodeNetworkState
资源的详细信息,请点 Name 列中列出的NodeNetworkState
资源名称。 -
要展开并查看
NodeNetworkState
资源的 Network Details 部分,点大于符号(>)。或者,您也可以点 Network interface 列下的每个接口类型来查看网络详情。
10.1.2.1. 查看 NNS 拓扑的图形表示 复制链接链接已复制到粘贴板!
为了便于在集群中配置节点网络,您可以以图的形式查看它。NNS 拓扑图显示所有节点组件(网络接口控制器、网桥、绑定和 VLAN)、其属性和配置,以及节点之间的连接。
要打开集群的拓扑视图,请执行以下操作:
-
在 Web 控制台的 Administrator 视图中,进入到 Networking
NodeNetworkState。 在页面右上角,点 Topology 图标。
此时会打开 NNS 拓扑图。每组组件代表一个节点。
- 要显示节点的配置和正确增加,请点节点的边框内。
- 要显示特定组件的功能或 YAML 文件(如接口或桥接),点组件的图标。
- 活跃组件的图标具有绿色的边框;断开连接的组件的图标具有红色边框。
10.1.3. NodeNetworkConfigurationPolicy 清单文件 复制链接链接已复制到粘贴板!
NodeNetworkConfigurationPolicy
(NNCP)清单文件定义 Kubernetes NMState Operator 用来为 OpenShift Container Platform 集群中存在的节点配置网络的策略。
将节点网络策略应用到节点后,Kubernetes NMState Operator 根据节点网络策略详情配置节点的网络配置。
您可以使用 OpenShift CLI (oc
)或 OpenShift Container Platform Web 控制台创建 NNCP。作为安装后任务,您可以创建 NNCP 或编辑现有的 NNCP。
在创建 NNCP 之前,请确保读取"示例不同接口的策略配置"文档。
如果要删除 NNCP,您可以使用 oc delete nncp
命令完成此操作。但是,此命令不会删除任何对象,如网桥接口。
删除向节点添加接口的节点网络策略不会更改节点上的策略配置。同样,删除接口不会删除策略,因为 Kubernetes NMState Operator 会在 pod 或节点重启时重新创建删除的接口。
要有效地删除 NNCP、节点网络策略和任何接口通常需要以下操作:
-
编辑 NNCP 并从文件中删除接口详情。确保您没有从文件中删除
name
,state
, 和type
参数。 -
在 NNCP 的
interfaces.state
部分下添加state: absent
。 -
运行
oc apply -f <nncp_file_name>
。在 Kubernetes NMState Operator 将节点网络策略应用到集群中的每个节点后,每个节点中存在的任何接口现在都会标记为 absent。 -
运行
oc delete nncp
以删除 NNCP。
其他资源
10.1.4. 从 Web 控制台管理策略 复制链接链接已复制到粘贴板!
您可以通过将 NodeNetworkConfigurationPolicy
清单应用到集群来更新节点网络的配置,如为节点添加或删除接口。通过访问 Networking 菜单下的 NodeNetworkConfigurationPolicy 页面中创建的策略列表,从 web 控制台管理策略。通过此页面,您可以创建、更新、监控和删除策略。
10.1.4.1. 监控策略状态 复制链接链接已复制到粘贴板!
您可以在 NodeNetworkConfigurationPolicy 页面中监控策略状态。本页以表格格式显示集群中创建的所有策略,其列如下:
- Name
- 创建的策略的名称。
- 匹配的节点
- 应用策略的节点计数。这可能是基于节点选择器或集群中的所有节点的节点子集。
- 节点网络状态
- 匹配节点的 Enactment 状态。您可以点 enactment 状态并查看状态的详细信息。
要查找所需的策略,您可以使用 Filter 选项或搜索选项根据 enactment 状态过滤列表。
10.1.4.2. 创建策略 复制链接链接已复制到粘贴板!
您可以使用 web 控制台中的表单或 YAML 创建策略。
流程
-
进入到 Networking
NodeNetworkConfigurationPolicy。 在 NodeNetworkConfigurationPolicy 页面中,点 Create,然后选择 From Form 选项。
如果没有现有策略,您可以使用表单点 Create NodeNetworkConfigurationPolicy 来创建策略。
注意要使用 YAML 创建策略,请点 Create,然后选择 With YAML 选项。以下步骤仅适用于使用表单创建策略。
- 可选:选择 Apply this NodeNetworkConfigurationPolicy only to specific subsets of nodes using the node selector 复选框,以指定必须应用策略的节点。
- 在 Policy name 字段中输入策略名称。
- 可选:在 Description 字段中输入策略的描述。
可选:在 Policy Interface (s) 部分中,默认添加了一个桥接接口,带有可编辑的字段中的预设置值。通过执行以下步骤来编辑值:
- 在 Interface name 字段中输入接口名称。
- 从 Network 状态下拉菜单中选择网络状态。默认选择的值是 Up。
从类型下拉菜单中选择接口类型。可用的值包括 Bridge, Bonding, 和 Ethernet。默认选择的值是 Bridge。
注意不支持使用表单添加 VLAN 接口。要添加 VLAN 接口,您必须使用 YAML 来创建策略。添加后,您无法使用表单编辑策略。
可选: 在 IP 配置部分中,选中 IPv4 复选框,为接口分配 IPv4 地址,并配置 IP 地址分配详情:
- 点IP 地址,将接口配置为使用静态 IP 地址;或点 DHCP 将接口配置为自动分配 IP 地址。
如果您选择了 IP 地址 选项,在 IPV4 address 字段中输入 IPv4 地址,并在 Prefix length 字段中输入前缀长度。
如果您选择了 DHCP 选项,请取消选择您要禁用的选项。可用选项包括 Auto-DNS、Auto-routes 和 Auto-gateway。所有选项都被默认选择。
- 可选:在 Port 字段中输入端口号。
- 可选: 选中启用 STP复选框以启用 STP。
- 可选: 要为策略添加一个接口,点 Add another interface to the policy。
- 可选: 要从策略中删除接口,点接口旁的 图标。
注意或者,您可以点页面顶部的 Edit YAML 继续使用 YAML 编辑表单。
- 点 Create 以完成策略创建。
10.1.5. 更新策略 复制链接链接已复制到粘贴板!
10.1.5.1. 使用表单更新策略 复制链接链接已复制到粘贴板!
流程
-
进入到 Networking
NodeNetworkConfigurationPolicy。 -
在 NodeNetworkConfigurationPolicy 页中,点您要编辑的策略旁的
图标,然后点 Edit。
- 编辑您要更新的字段。
- 点击 Save。
不支持使用表单添加 VLAN 接口。要添加 VLAN 接口,您必须使用 YAML 来创建策略。添加后,您无法使用表单编辑策略。
10.1.5.2. 使用 YAML 更新策略 复制链接链接已复制到粘贴板!
流程
-
进入到 Networking
NodeNetworkConfigurationPolicy。 - 在 NodeNetworkConfigurationPolicy 页面中,点您要编辑的策略的 Name 列下的策略名称。
- 点 YAML 选项卡,并编辑 YAML。
- 点击 Save。
10.1.5.3. 删除策略 复制链接链接已复制到粘贴板!
流程
-
进入到 Networking
NodeNetworkConfigurationPolicy。 -
在 NodeNetworkConfigurationPolicy 页面中,点您要删除的策略旁的
图标,然后点 Delete。
- 在弹出窗口中,输入策略名称以确认删除,然后点 Delete。
10.1.6. 使用 CLI 管理策略 复制链接链接已复制到粘贴板!
10.1.6.1. 在节点上创建接口 复制链接链接已复制到粘贴板!
通过将一个 NodeNetworkConfigurationPolicy
(NNCP) 清单应用到集群来在集群的节点上创建一个接口。清单详细列出了请求的接口配置。
默认情况下,清单会应用到集群中的所有节点。要将接口只添加到特定的节点,在节点选择器上添加 spec: nodeSelector
参数和适当的 <key>:<value>
。
您可以同时配置多个支持 nmstate 节点。该配置适用于并行节点的 50%。如果网络连接失败,此策略可防止整个集群不可用。要将策略配置并行应用到集群的特定部分,请使用 NodeNetworkConfigurationPolicy
清单配置文件中的 maxUnavailable
参数。
如果您有两个节点,并且对这些节点应用了一个 NNCP 清单,其中 maxUnavailable
参数设置为 50%
, 则一次只有一个节点可以接收 NNCP 配置。如果您引入一个额外的 NNCP 清单文件,其 maxUnavailable
参数设置为 50%
,则这个 NCCP 独立于初始 NNCP。这意味着,如果 NNCP 清单对节点应用错误配置,则您无法保证集群有一半的功能。
先决条件
-
已安装 OpenShift CLI(
oc
)。
流程
创建
NodeNetworkConfigurationPolicy
清单。以下示例在所有 worker 节点上配置了一个 Linux 桥接并配置 DNS 解析器:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建节点网络策略:
oc apply -f br1-eth1-policy.yaml
$ oc apply -f br1-eth1-policy.yaml
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 节点网络配置策略清单的文件名。
其他资源
10.1.6.2. 确认节点上的节点网络策略更新 复制链接链接已复制到粘贴板!
当您应用节点网络策略时,会为集群中的每个节点创建一个 NodeNetworkConfigurationEnactment
对象。节点网络配置是一个只读对象,代表在该节点上执行策略的状态。如果策略在节点上应用失败,则该节点会包括 traceback 用于故障排除。
先决条件
-
已安装 OpenShift CLI(
oc
)。
流程
要确认策略已应用到集群,请列出策略及其状态:
oc get nncp
$ oc get nncp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果策略配置成功的时间比预期的要长,您可以检查特定策略请求的状态和状态条件:
oc get nncp <policy> -o yaml
$ oc get nncp <policy> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果策略在所有节点上配置成功的时间比预期的要长,您可以列出集群中的 Enactments 的状态:
oc get nnce
$ oc get nnce
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:要查看特定的 Enactment 的配置,包括对失败配置进行任何错误报告:
oc get nnce <node>.<policy> -o yaml
$ oc get nnce <node>.<policy> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.6.3. 从节点中删除接口 复制链接链接已复制到粘贴板!
您可以通过编辑 NodeNetworkConfigurationPolicy
对象从集群中的一个或多个节点中删除接口,并将接口的状态
设置为 absent
。
从节点中删除接口不会自动将节点网络配置恢复到以前的状态。如果要恢复之前的状态,则需要在策略中定义节点网络配置。
如果删除了网桥或绑定接口,以前附加到该网桥或绑定接口的任何节点 NIC 都会处于 down
状态并变得不可访问。为了避免连接丢失,在相同策略中配置节点 NIC,使其具有 up
状态,以及使用 DHCP 或一个静态 IP 地址。
删除添加接口的节点网络策略不会更改节点上的策略配置。虽然 NodeNetworkConfigurationPolicy
是集群中的一个对象,但对象只代表请求的配置。同样,删除接口不会删除策略。
先决条件
-
已安装 OpenShift CLI(
oc
)。
流程
更新用来创建接口的
NodeNetworkConfigurationPolicy
清单。以下示例删除了 Linux 网桥,并使用 DHCP 配置eth1
NIC 以避免断开连接:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新节点上的策略并删除接口:
oc apply -f <br1-eth1-policy.yaml>
$ oc apply -f <br1-eth1-policy.yaml>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 策略清单的文件名。
10.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 可能会按顺序应用相互独立的策略,这会导致网络对象降级。
- 考虑在单个策略中指定所有相关网络配置。
10.1.7.1. 示例:以太网接口节点网络配置策略 复制链接链接已复制到粘贴板!
通过将 NodeNetworkConfigurationPolicy
清单应用到集群,在集群的节点上配置以太网接口。
以下 YAML 文件是一个以太接口的清单示例。它包含了示例值,需要使用自己的信息替换。
10.1.7.2. 示例: Linux bridge interface 节点网络配置策略 复制链接链接已复制到粘贴板!
通过将一个 NodeNetworkConfigurationPolicy
清单应用到集群来在集群的节点上创建一个 Linux 网桥接口。
以下 YAML 文件是 Linux 网桥界面的清单示例。如果运行 playbook,其中会包含必须替换为您自己的信息的样本值。
10.1.7.3. 示例:VLAN 接口节点网络配置策略 复制链接链接已复制到粘贴板!
通过将一个 NodeNetworkConfigurationPolicy
清单应用到集群来在集群的节点上创建一个 VLAN 接口。
在单个 NodeNetworkConfigurationPolicy
清单中为节点的 VLAN 接口定义所有相关配置。例如,在同一 NodeNetworkConfigurationPolicy
清单中为节点定义 VLAN 接口和相关路由。
当节点重启时,Kubernetes NMState Operator 无法控制应用策略的顺序。因此,如果您将单独的策略用于相关的网络配置,Kubernetes NMState Operator 可能会按顺序应用这些策略,从而导致网络对象降级。
以下 YAML 文件是 VLAN 接口的清单示例。如果运行 playbook,其中会包含必须替换为您自己的信息的样本值。
10.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
。
10.1.7.5. 示例:同一节点网络配置策略中的多个接口 复制链接链接已复制到粘贴板!
您可以在相同的节点网络配置策略中创建多个接口。这些接口可以相互引用,允许您使用单个策略清单来构建和部署网络配置。
以下示例 YAML 文件在两个 NIC 和 VLAN 之间创建一个名为 bond10
的绑定,名为 bond10.103
,它连接到绑定。
10.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 网络接口作为额外接口添加到绑定网络接口。
10.1.7.7. 示例:带有 VRF 实例网络配置策略的网络接口 复制链接链接已复制到粘贴板!
通过应用 NodeNetworkConfigurationPolicy
自定义资源(CR)将虚拟路由和转发(VRF)实例与网络接口关联。
通过将 VRF 实例与网络接口关联,您可以支持流量隔离、独立路由决策和网络资源的逻辑分离。
在配置 Virtual Route Forwarding (VRF) 时,您必须将 VRF 值改为小于 1000
的表 ID,因为 OpenShift Container Platform 保留大于 1000
的值。
在裸机环境中,您可以使用 MetalLB 通过属于 VRF 实例的接口宣布负载均衡器服务。如需更多信息,请参阅附加资源部分。
以下 YAML 文件是一个将 VRF 实例与网络接口关联的示例。如果运行 playbook,其中会包含必须替换为您自己的信息的样本值。
10.1.8. 在节点上通过 InfiniBand 接口创建 IP 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform web 控制台中,您可以安装红帽认证的第三方 Operator,如 NVIDIA Network Operator,它支持 InfiniBand (IPoIB) 模式。通常,您可以将第三方 Operator 与其他供应商基础架构搭配使用,以管理 OpenShift Container Platform 集群中的资源。要在集群中的节点上创建 IPoIB 接口,您必须在 NodeNetworkConfigurationPolicy
(NNCP) 清单文件中定义 InfiniBand (IPoIB) 接口。
OpenShift Container Platform 文档只描述了在 NodeNetworkConfigurationPolicy
(NNCP) 清单文件中定义 IPoIB 接口配置。对于大多数配置步骤,您必须参考 NVIDIA 和其他第三方供应商文档。红帽支持不会覆盖 NNCP 配置以外的任何内容。
如需有关 NVIDIA Operator 的更多信息,请参阅 Red Hat OpenShift (NVIDIA Docs Hub)入门。
先决条件
- 已安装支持 IPoIB 接口的红帽认证的第三方 Operator。
-
已安装 OpenShift CLI(
oc
)。
流程
创建或编辑
NodeNetworkConfigurationPolicy
(NNCP)清单文件,然后在文件中指定 IPoIB 接口。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
datagram
是 IPoIB 接口的默认模式,这个模式改进了性能和延迟。connected
模式是一个受支持的模式,但只在需要调整最大传输单元(MTU)值时考虑使用这个模式,以提高与周围的网络设备的节点连接。- 2
- 支持字符串或整数值。参数定义保护密钥或 P-key,用于身份验证和与第三方供应商(如 NVIDIA)的加密通信。值
None
和0xffff
代表 InfiniBand 系统中基本接口的保护密钥。 - 3
- 支持的值包括
name
、默认值和mac-address
。name
值将配置应用到包含指定接口名称的接口。 - 4
- 保存接口的 MAC 地址。对于 IP-over-InfiniBand (IPoIB) 接口,地址为 20 字节字符串。
- 5
- 将接口类型设置为
infiniband
。
运行以下命令,将 NNCP 配置应用到集群中的每个节点。然后,Kubernetes NMState Operator 可以在每个节点上创建一个 IPoIB 接口。
$ oc apply -f <nncp_file_name>
$ oc apply -f <nncp_file_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<nncp_file_name>
替换为 NNCP 文件的名称。
10.1.9. 使用动态匹配和模板的策略配置示例 复制链接链接已复制到粘贴板!
以下示例配置片段显示使用动态匹配和模板的节点网络策略。
应用使用动态匹配和模板的节点网络配置策略只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
在集群的节点上创建一个 Linux 网桥接口,并通过将单个 NodeNetworkConfigurationPolicy
清单应用到集群来将 NIC 的静态 IP 配置传输到桥接。
以下 YAML 文件是 Linux 网桥界面的清单示例。它包含了示例值,需要使用自己的信息替换。
10.1.9.2. 示例:启用 LLDP 报告的节点网络配置策略 复制链接链接已复制到粘贴板!
以下 YAML 文件是一个 NodeNetworkConfigurationPolicy
清单示例,它为 OpenShift Container Platform 集群中的所有以太网端口启用 Link Layer Discovery Protocol (LLDP)监听程序。本地区域网络上的设备可以使用 LLDP 来公告其身份、功能和邻居信息。
10.1.10. 示例:IP 管理 复制链接链接已复制到粘贴板!
以下配置片段示例演示了不同的 IP 管理方法。
这些示例使用 ethernet
接口类型来简化示例,同时显示 Policy 配置中相关的上下文。这些 IP 管理示例可与其他接口类型一起使用。
10.1.10.1. Static 复制链接链接已复制到粘贴板!
以下片段在以太网接口中静态配置 IP 地址:
- 1
- 使用接口的静态 IP 地址替换这个值。
10.1.10.2. 没有 IP 地址 复制链接链接已复制到粘贴板!
以下片段确保接口没有 IP 地址:
当您将 ipv4.enabled
和 ipv6.enabled
参数设置为 false
时,始终将 state
参数设置为 up
,以禁用接口。如果使用此配置设置了 state: down
,接口会因为自动 DHCP 分配而接收 DHCP IP 地址。
10.1.10.3. 动态主机配置 复制链接链接已复制到粘贴板!
以下片段配置了一个以太网接口,它使用动态 IP 地址、网关地址和 DNS:
以下片段配置了一个以太网接口,它使用动态 IP 地址,但不使用动态网关地址或 DNS:
10.1.10.4. 介质访问控制(MAC)地址 复制链接链接已复制到粘贴板!
您可以使用 MAC 地址来识别网络接口,而不使用网络接口的名称。网络接口名称可能会因为各种原因而改变,如操作系统配置更改。但是,每个网络接口都有一个不更改的唯一 MAC 地址。这意味着,使用 MAC 地址是更永久地识别特定网络接口的方法。
identifier
参数支持的值包括默认 name
值和 mac-address
值。name
值将配置应用到包含指定接口名称的接口。
将 mac-address
值用于 identifier
参数表示 MAC 地址是网络接口的标识符。如果将 identifier
值设置为 mac-address
,则必须在以下 mac-address
参数字段中输入特定的 MAC 地址。
您仍然可以为 name
参数指定一个值,但设置 identifier: mac-address
值表示 MAC 地址用作网络接口的主标识符。如果您指定了不正确的 MAC 地址,nmstate
会报告无效的参数错误。
以下片段将 MAC 地址指定为名为 eth1
的以太网设备的主标识符,其 MAC 地址为 8A:8C:92:1A:F6:98
:
10.1.10.5. DNS 复制链接链接已复制到粘贴板!
默认情况下,nmstate
API 会在全局范围内存储 DNS 值,而不是将其存储在网络接口中。在某些情况下,您必须配置网络接口来存储 DNS 值。
设置一个 DNS 配置与修改 /etc/resolv.conf
文件相当。
要为网络接口定义 DNS 配置,您必须首先在网络接口 YAML 配置文件中指定 dns-resolver
部分。要将 NNCP 配置应用到您的网络接口,您需要运行 oc apply -f <nncp_file_name>
命令。
以下示例显示了全局存储 DNS 值的默认情况:
配置没有网络接口的静态 DNS。请注意,当更新主机节点上的
/etc/resolv.conf
文件时,您不需要在NodeNetworkConfigurationPolicy
(NNCP)清单中指定一个接口 (IPv4 或 IPv6)。全局存储 DNS 值的网络接口的 DNS 配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您可以在 NNCP 文件的
dns-resolver.config
部分下指定 DNS 选项,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要从网络接口中删除 DNS 选项,请将以下配置应用到 NNCP,然后运行
oc apply -f <nncp_file_name>
命令:... ...
# ... dns-resolver: config: {} interfaces: [] # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下示例显示,配置一个网络接口来存储 DNS 值:
如果要将静态 DNS 名称服务器排名在动态 DNS 名称服务器上,请在网络接口 YAML 配置文件中定义运行动态主机配置协议(DHCP)或 IPv6 自动配置(
autoconf
)机制的接口。将
192.0.2.1
添加到从 DHCPv4 网络协议检索的 DNS 名称服务器中的示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您需要配置网络接口来存储 DNS 值,而不是使用默认方法(使用
nmstate
API 在全局范围内存储 DNS 值),您可以在网络接口 YAML 文件中设置静态 DNS 值和静态 IP 地址。重要在网络接口级别上存储 DNS 值可能会导致名称解析问题,如 Open vSwitch (OVS) 网桥、Linux 网桥或绑定。
在接口级别存储 DNS 值的配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要为您的网络接口设置静态 DNS 搜索域和动态 DNS 名称服务器,请在网络接口 YAML 配置文件中定义运行动态主机配置协议(DHCP)或 IPv6 自动配置(
autoconf
)机制的动态接口。设置
example.com
和example.org
静态 DNS 搜索域以及动态 DNS 名称服务器设置的示例配置Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.10.6. 静态路由 复制链接链接已复制到粘贴板!
以下片段在接口 eth1
中配置静态路由和静态 IP。
在配置静态路由时,您无法使用 OVN-Kubernetes br-ex
网桥作为下一个跃点接口,除非您手动配置自定义的 br-ex
网桥。
如需更多信息,请参阅在裸机中部署安装程序置备的集群文档或在裸机中安装用户置备的集群 文档中的"创建包括自定义 br-ex 网桥的清单对象"。