9.2. 更改集群网络 MTU
作为集群管理员,您可以增加或减少集群的最大传输单元 (MTU)。
您无法在 MTU 迁移过程中回滚节点的 MTU 值,但您可以在 MTU 迁移过程完成后回滚。
当 MTU 更新推出时,集群中的迁移具有破坏性且节点可能会临时不可用。
以下流程描述了如何使用机器配置、动态主机配置协议(DHCP)或 ISO 镜像更改集群网络 MTU。如果使用 DHCP 或 ISO 方法,则必须在安装集群后保留的配置工件来完成此流程。
先决条件
- 
						已安装 OpenShift CLI(oc)。
- 
						您可以使用具有 cluster-admin权限的账户访问集群。
- 已为集群识别目标 MTU。 - 
								OVN-Kubernetes 网络插件的 MTU 必须设置为比集群中的最低硬件 MTU 值小 100。
- 
								OpenShift SDN 网络插件的 MTU 必须设置为比集群中的最低硬件 MTU 值小 50。
 
- 
								OVN-Kubernetes 网络插件的 MTU 必须设置为比集群中的最低硬件 MTU 值小 
- 如果您的节点是物理计算机,请确保集群网络和连接的网络交换机支持巨型帧。
- 如果您的节点是虚拟机 (VM),请确保虚拟机监控程序和连接的网络交换机支持巨型帧。
流程
- 要获得集群网络的当前 MTU,请输入以下命令: - oc describe network.config cluster - $ oc describe network.config cluster- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为硬件 MTU 准备配置: - 如果您的硬件 MTU 通过 DHCP 指定,请使用以下 dnsmasq 配置更新 DHCP 配置: - dhcp-option-force=26,<mtu> - dhcp-option-force=26,<mtu>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <mtu>
- 指定要公告的 DHCP 服务器的硬件 MTU。
 
- 如果使用 PXE 的内核命令行指定硬件 MTU,请相应地更新该配置。
- 如果在 NetworkManager 连接配置中指定了硬件 MTU,请完成以下步骤。如果没有使用 DHCP、内核命令行或某种其他方法显式指定网络配置,则此方法是 OpenShift Container Platform 的默认方法。集群节点必须全部使用相同的底层网络配置,才能使以下过程未经修改地工作。 - 查找主网络接口: - 如果使用 OpenShift SDN 网络插件,请输入以下命令: - oc debug node/<node_name> -- chroot /host ip route list match 0.0.0.0/0 | awk '{print $5 }'- $ oc debug node/<node_name> -- chroot /host ip route list match 0.0.0.0/0 | awk '{print $5 }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <node_name>
- 指定集群中的节点的名称。
 
- 如果使用 OVN-Kubernetes 网络插件,请输入以下命令: - oc debug node/<node_name> -- chroot /host nmcli -g connection.interface-name c show ovs-if-phys0 - $ oc debug node/<node_name> -- chroot /host nmcli -g connection.interface-name c show ovs-if-phys0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <node_name>
- 指定集群中的节点的名称。
 
 
- 在 - <interface>-mtu.conf文件中创建以下 NetworkManager 配置:- NetworkManager 连接配置示例 - [connection-<interface>-mtu] match-device=interface-name:<interface> ethernet.mtu=<mtu> - [connection-<interface>-mtu] match-device=interface-name:<interface> ethernet.mtu=<mtu>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <mtu>
- 指定新的硬件 MTU 值。
- <interface>
- 指定主网络接口名称。
 
- 创建两个 - MachineConfig对象,一个用于 control plane 节点,另一个用于集群中的 worker 节点:- 在 - control-plane-interface.bu文件中创建以下 Butane 配置:注意- 您在配置文件中指定的 Butane 版本应与 OpenShift Container Platform 版本匹配,并且始终以 - 0结尾。例如:- 4.16.0。有关 Butane 的信息,请参阅"使用 Butane 创建机器配置"。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 - worker-interface.bu文件中创建以下 Butane 配置:注意- 您在配置文件中指定的 Butane 版本应与 OpenShift Container Platform 版本匹配,并且始终以 - 0结尾。例如:- 4.16.0。有关 Butane 的信息,请参阅"使用 Butane 创建机器配置"。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,从 Butane 配置创建 - MachineConfig对象:- for manifest in control-plane-interface worker-interface; do butane --files-dir . $manifest.bu > $manifest.yaml done- $ for manifest in control-plane-interface worker-interface; do butane --files-dir . $manifest.bu > $manifest.yaml done- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 警告- 在此流程的稍后明确指示之前,不要应用这些机器配置。应用这些机器配置现在会导致集群的稳定性丢失。 
 
 
 
- 要开始 MTU 迁移,请输入以下命令指定迁移配置。Machine Config Operator 在集群中执行节点的滚动重启,以准备 MTU 更改。 - oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": { "mtu": { "network": { "from": <overlay_from>, "to": <overlay_to> } , "machine": { "to" : <machine_to> } } } } }'- $ oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": { "mtu": { "network": { "from": <overlay_from>, "to": <overlay_to> } , "machine": { "to" : <machine_to> } } } } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <overlay_from>
- 指定当前的集群网络 MTU 值。
- <overlay_to>
- 
									指定集群网络的目标 MTU。这个值相对于 <machine_to>的值设置。对于 OVN-Kubernetes,这个值必须比<machine_to>的值小100。对于 OpenShift SDN,这个值必须比<machine_to>的值小50。
- <machine_to>
- 指定底层主机网络上的主网络接口的 MTU。
 - 增加集群 MTU 的示例 - oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": { "mtu": { "network": { "from": 1400, "to": 9000 } , "machine": { "to" : 9100} } } } }'- $ oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": { "mtu": { "network": { "from": 1400, "to": 9000 } , "machine": { "to" : 9100} } } } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 当 Machine Config Operator 更新每个机器配置池中的机器时,它会逐一重启每个节点。您必须等到所有节点都已更新。输入以下命令检查机器配置池状态: - oc get machineconfigpools - $ oc get machineconfigpools- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 成功更新的节点具有以下状态: - UPDATED=true、- UPDATING=false、- DEGRADED=false。注意- 默认情况下,Machine Config Operator 一次更新每个池中的一个机器,从而导致迁移总时间随着集群大小而增加。 
- 确认主机上新机器配置的状态: - 要列出机器配置状态和应用的机器配置名称,请输入以下命令: - oc describe node | egrep "hostname|machineconfig" - $ oc describe node | egrep "hostname|machineconfig"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done - kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 验证以下语句是否正确: - 
										machineconfiguration.openshift.io/state字段的值为Done。
- 
										machineconfiguration.openshift.io/currentConfig字段的值等于machineconfiguration.openshift.io/desiredConfig字段的值。
 
- 
										
- 要确认机器配置正确,请输入以下命令: - oc get machineconfig <config_name> -o yaml | grep ExecStart - $ oc get machineconfig <config_name> -o yaml | grep ExecStart- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 这里的 - <config_name>是- machineconfiguration.openshift.io/currentConfig字段中机器配置的名称。- 机器配置必须包括以下对 systemd 配置的更新: - ExecStart=/usr/local/bin/mtu-migration.sh - ExecStart=/usr/local/bin/mtu-migration.sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 更新底层网络接口 MTU 值: - 如果您要使用 NetworkManager 连接配置指定新 MTU,请输入以下命令。MachineConfig Operator 会自动执行集群中节点的滚动重启。 - for manifest in control-plane-interface worker-interface; do oc create -f $manifest.yaml done- $ for manifest in control-plane-interface worker-interface; do oc create -f $manifest.yaml done- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果您要使用 DHCP 服务器选项或内核命令行和 PXE 指定新 MTU,请对基础架构进行必要的更改。
 
- 当 Machine Config Operator 更新每个机器配置池中的机器时,它会逐一重启每个节点。您必须等到所有节点都已更新。输入以下命令检查机器配置池状态: - oc get machineconfigpools - $ oc get machineconfigpools- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 成功更新的节点具有以下状态: - UPDATED=true、- UPDATING=false、- DEGRADED=false。注意- 默认情况下,Machine Config Operator 一次更新每个池中的一个机器,从而导致迁移总时间随着集群大小而增加。 
- 确认主机上新机器配置的状态: - 要列出机器配置状态和应用的机器配置名称,请输入以下命令: - oc describe node | egrep "hostname|machineconfig" - $ oc describe node | egrep "hostname|machineconfig"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done - kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 验证以下语句是否正确: - 
										machineconfiguration.openshift.io/state字段的值为Done。
- 
										machineconfiguration.openshift.io/currentConfig字段的值等于machineconfiguration.openshift.io/desiredConfig字段的值。
 
- 
										
- 要确认机器配置正确,请输入以下命令: - oc get machineconfig <config_name> -o yaml | grep path: - $ oc get machineconfig <config_name> -o yaml | grep path:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 这里的 - <config_name>是- machineconfiguration.openshift.io/currentConfig字段中机器配置的名称。- 如果机器配置被成功部署,则前面的输出会包含 - /etc/NetworkManager/conf.d/99-<interface>-mtu.conf文件路径和- ExecStart=/usr/local/bin/mtu-migration.sh行。
 
- 完成插件的 MTU 迁移。在这两个示例命令中, - <mtu>指定了您使用- <overlay_to>指定的新集群网络 MTU。- 要完成 MTU 迁移,请为 OVN-Kubernetes 网络插件输入以下命令: - oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": null, "defaultNetwork":{ "ovnKubernetesConfig": { "mtu": <mtu> }}}}'- $ oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": null, "defaultNetwork":{ "ovnKubernetesConfig": { "mtu": <mtu> }}}}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要完成 MTU 迁移,请为 OpenShift SDN 网络插件输入以下命令: - oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": null, "defaultNetwork":{ "openshiftSDNConfig": { "mtu": <mtu> }}}}'- $ oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": null, "defaultNetwork":{ "openshiftSDNConfig": { "mtu": <mtu> }}}}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 最终调整 MTU 迁移后,每个机器配置池节点都会逐个重启一个。您必须等到所有节点都已更新。输入以下命令检查机器配置池状态: - oc get machineconfigpools - $ oc get machineconfigpools- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 成功更新的节点具有以下状态: - UPDATED=true、- UPDATING=false、- DEGRADED=false。
验证
- 要获得集群网络的当前 MTU,请输入以下命令: - oc describe network.config cluster - $ oc describe network.config cluster- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取节点的主网络接口的当前 MTU: - 要列出集群中的节点,请输入以下命令: - oc get nodes - $ oc get nodes- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要获取节点上主网络接口的当前 MTU 设置,请输入以下命令: - oc debug node/<node> -- chroot /host ip address show <interface> - $ oc debug node/<node> -- chroot /host ip address show <interface>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <node>
- 指定上一步中的输出节点。
- <interface>
- 指定节点的主网络接口名称。
 - 输出示例 - ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8051 - ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8051- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
9.2.1. 检查当前集群 MTU 值
使用以下步骤获取集群网络的当前最大传输单元(MTU)。
流程
- 要获得集群网络的当前 MTU,请输入以下命令: - oc describe network.config cluster - $ oc describe network.config cluster- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
9.2.2. 准备硬件 MTU 配置
有很多方法为集群节点配置硬件最大传输单元(MTU)。以下示例显示最常见的方法。验证基础架构 MTU 的正确性。选择在集群节点中配置硬件 MTU 的首选方法。
流程
- 为硬件 MTU 准备配置: - 如果您的硬件 MTU 通过 DHCP 指定,请使用以下 dnsmasq 配置更新 DHCP 配置: - dhcp-option-force=26,<mtu> - dhcp-option-force=26,<mtu>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <mtu>
- 指定要公告的 DHCP 服务器的硬件 MTU。
 
- 如果使用 PXE 的内核命令行指定硬件 MTU,请相应地更新该配置。
- 如果在 NetworkManager 连接配置中指定了硬件 MTU,请完成以下步骤。如果没有使用 DHCP、内核命令行或某种其他方法显式指定网络配置,则此方法是 OpenShift Container Platform 的默认方法。集群节点必须全部使用相同的底层网络配置,才能使以下过程未经修改地工作。 - 输入以下命令查找主网络接口: - oc debug node/<node_name> -- chroot /host nmcli -g connection.interface-name c show ovs-if-phys0 - $ oc debug node/<node_name> -- chroot /host nmcli -g connection.interface-name c show ovs-if-phys0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <node_name>
- 指定集群中的节点的名称。
 
- 在 < - interface>-mtu.conf文件中创建以下- NetworkManager配置:- [connection-<interface>-mtu] match-device=interface-name:<interface> ethernet.mtu=<mtu> - [connection-<interface>-mtu] match-device=interface-name:<interface> ethernet.mtu=<mtu>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <interface>
- 指定主网络接口名称。
- <mtu>
- 指定新的硬件 MTU 值。
 
 
 
9.2.3. 创建 MachineConfig 对象
					使用以下步骤创建 MachineConfig 对象。
				
流程
- 创建两个 - MachineConfig对象,一个用于 control plane 节点,另一个用于集群中的 worker 节点:- 在 - control-plane-interface.bu文件中创建以下 Butane 配置:注意- 您在配置文件中指定的 Butane 版本应与 OpenShift Container Platform 版本匹配,并且始终以 - 0结尾。例如:- 4.16.0。有关 Butane 的信息,请参阅"使用 Butane 创建机器配置"。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 - worker-interface.bu文件中创建以下 Butane 配置:注意- 您在配置文件中指定的 Butane 版本应与 OpenShift Container Platform 版本匹配,并且始终以 - 0结尾。例如:- 4.16.0。有关 Butane 的信息,请参阅"使用 Butane 创建机器配置"。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 运行以下命令,从 Butane 配置创建 - MachineConfig对象:- for manifest in control-plane-interface worker-interface; do butane --files-dir . $manifest.bu > $manifest.yaml done- $ for manifest in control-plane-interface worker-interface; do butane --files-dir . $manifest.bu > $manifest.yaml done- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 警告- 在此流程的稍后明确指示之前,不要应用这些机器配置。应用这些机器配置现在会导致集群的稳定性丢失。 
9.2.4. 开始 MTU 迁移
使用以下步骤启动 MTU 迁移。
流程
- 要开始 MTU 迁移,请输入以下命令指定迁移配置。Machine Config Operator 在集群中执行节点的滚动重启,以准备 MTU 更改。 - oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": { "mtu": { "network": { "from": <overlay_from>, "to": <overlay_to> } , "machine": { "to" : <machine_to> } } } } }'- $ oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": { "mtu": { "network": { "from": <overlay_from>, "to": <overlay_to> } , "machine": { "to" : <machine_to> } } } } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <overlay_from>
- 指定当前的集群网络 MTU 值。
- <overlay_to>
- 
										指定集群网络的目标 MTU。这个值相对于 <machine_to>的值设置。对于 OVN-Kubernetes,这个值必须比<machine_to>的值小100。
- <machine_to>
- 指定底层主机网络上的主网络接口的 MTU。
 - oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": { "mtu": { "network": { "from": 1400, "to": 9000 } , "machine": { "to" : 9100} } } } }'- $ oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": { "mtu": { "network": { "from": 1400, "to": 9000 } , "machine": { "to" : 9100} } } } }'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 当 Machine Config Operator 更新每个机器配置池中的机器时,Operator 会逐一重启每个节点。您必须等到所有节点都已更新。输入以下命令检查机器配置池状态: - oc get machineconfigpools - $ oc get machineconfigpools- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 成功更新的节点具有以下状态: - UPDATED=true、- UPDATING=false、- DEGRADED=false。注意- 默认情况下,Machine Config Operator 一次更新每个池中的一个机器,从而导致迁移总时间随着集群大小而增加。 
9.2.5. 验证机器配置
使用以下步骤验证机器配置。
流程
- 确认主机上新机器配置的状态: - 要列出机器配置状态和应用的机器配置名称,请输入以下命令: - oc describe node | egrep "hostname|machineconfig" - $ oc describe node | egrep "hostname|machineconfig"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done - kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 验证以下语句是否正确: - 
											machineconfiguration.openshift.io/state字段的值为Done。
- 
											machineconfiguration.openshift.io/currentConfig字段的值等于machineconfiguration.openshift.io/desiredConfig字段的值。
 
- 
											
- 要确认机器配置正确,请输入以下命令: - oc get machineconfig <config_name> -o yaml | grep ExecStart - $ oc get machineconfig <config_name> -o yaml | grep ExecStart- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <config_name>
- 
												指定来自 machineconfiguration.openshift.io/currentConfig字段的机器配置名称。
 - 机器配置必须包括以下对 systemd 配置的更新: - ExecStart=/usr/local/bin/mtu-migration.sh - ExecStart=/usr/local/bin/mtu-migration.sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
9.2.6. 应用新的硬件 MTU 值
使用以下步骤应用新的硬件最大传输单元(MTU)值。
流程
- 更新底层网络接口 MTU 值: - 如果您要使用 NetworkManager 连接配置指定新 MTU,请输入以下命令。MachineConfig Operator 会自动执行集群中节点的滚动重启。 - for manifest in control-plane-interface worker-interface; do oc create -f $manifest.yaml done- $ for manifest in control-plane-interface worker-interface; do oc create -f $manifest.yaml done- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果您要使用 DHCP 服务器选项或内核命令行和 PXE 指定新 MTU,请对基础架构进行必要的更改。
 
- 当 Machine Config Operator 更新每个机器配置池中的机器时,Operator 会逐一重启每个节点。您必须等到所有节点都已更新。输入以下命令检查机器配置池状态: - oc get machineconfigpools - $ oc get machineconfigpools- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 成功更新的节点具有以下状态: - UPDATED=true、- UPDATING=false、- DEGRADED=false。注意- 默认情况下,Machine Config Operator 一次更新每个池中的一个机器,从而导致迁移总时间随着集群大小而增加。 
- 确认主机上新机器配置的状态: - 要列出机器配置状态和应用的机器配置名称,请输入以下命令: - oc describe node | egrep "hostname|machineconfig" - $ oc describe node | egrep "hostname|machineconfig"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done - kubernetes.io/hostname=master-0 machineconfiguration.openshift.io/currentConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/desiredConfig: rendered-master-c53e221d9d24e1c8bb6ee89dd3d8ad7b machineconfiguration.openshift.io/reason: machineconfiguration.openshift.io/state: Done- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 验证以下语句是否正确: - 
											machineconfiguration.openshift.io/state字段的值为Done。
- 
											machineconfiguration.openshift.io/currentConfig字段的值等于machineconfiguration.openshift.io/desiredConfig字段的值。
 
- 
											
- 要确认机器配置正确,请输入以下命令: - oc get machineconfig <config_name> -o yaml | grep path: - $ oc get machineconfig <config_name> -o yaml | grep path:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <config_name>
- 
												指定来自 machineconfiguration.openshift.io/currentConfig字段的机器配置名称。
 - 如果机器配置被成功部署,则前面的输出会包含 - /etc/NetworkManager/conf.d/99-<interface>-mtu.conf文件路径和- ExecStart=/usr/local/bin/mtu-migration.sh行。
 
9.2.7. 最终调整 MTU 迁移
使用以下步骤完成 MTU 迁移。
流程
- 要完成 MTU 迁移,请为 OVN-Kubernetes 网络插件输入以下命令: - oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": null, "defaultNetwork":{ "ovnKubernetesConfig": { "mtu": <mtu> }}}}'- $ oc patch Network.operator.openshift.io cluster --type=merge --patch \ '{"spec": { "migration": null, "defaultNetwork":{ "ovnKubernetesConfig": { "mtu": <mtu> }}}}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <mtu>
- 
										指定您使用 <overlay_to>指定的新集群网络 MTU。
 
- 最终调整 MTU 迁移后,每个机器配置池节点都会逐个重启一个。您必须等到所有节点都已更新。输入以下命令检查机器配置池状态: - oc get machineconfigpools - $ oc get machineconfigpools- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 成功更新的节点具有以下状态: - UPDATED=true、- UPDATING=false、- DEGRADED=false。
验证
- 要获得集群网络的当前 MTU,请输入以下命令: - oc describe network.config cluster - $ oc describe network.config cluster- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取节点的主网络接口的当前 MTU: - 要列出集群中的节点,请输入以下命令: - oc get nodes - $ oc get nodes- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要获取节点上主网络接口的当前 MTU 设置,请输入以下命令: - oc adm node-logs <node> -u ovs-configuration | grep configure-ovs.sh | grep mtu | grep <interface> | head -1 - $ oc adm node-logs <node> -u ovs-configuration | grep configure-ovs.sh | grep mtu | grep <interface> | head -1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 其中: - <node>
- 指定上一步中的输出节点。
- <interface>
- 指定节点的主网络接口名称。
 - 输出示例 - ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8051 - ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8051- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow