mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
Modularizes complex procedure
This commit is contained in:
committed by
openshift-cherrypick-robot
parent
8e4ce85c55
commit
6455094f41
@@ -30,7 +30,11 @@ You might need to change the maximum transmission unit (MTU) value for the clust
|
||||
include::modules/nw-cluster-mtu-change-about.adoc[leveloffset=+2]
|
||||
|
||||
// Changing the cluster network MTU
|
||||
include::modules/nw-cluster-mtu-change.adoc[leveloffset=+3]
|
||||
include::modules/nw-cluster-mtu-change.adoc[leveloffset=+2]
|
||||
include::modules/nw-cluster-mtu-checking.adoc[leveloffset=+3]
|
||||
include::modules/nw-cluster-mtu-migration.adoc[leveloffset=+3]
|
||||
include::modules/nw-cluster-mtu-verifying-configuration.adoc[leveloffset=+3]
|
||||
include::modules/nw-cluster-mtu-finalizing-migration.adoc[leveloffset=+3]
|
||||
|
||||
// Opting in to AWS Local Zones or Wavelength Zones
|
||||
include::modules/installation-aws-add-zone-locations.adoc[leveloffset=+2]
|
||||
|
||||
@@ -42,6 +42,10 @@ To extend your VPC cluster into an Outpost, you must complete the following netw
|
||||
|
||||
//Changing the Cluster Network MTU to support AWS Outposts
|
||||
include::modules/nw-cluster-mtu-change.adoc[leveloffset=+2]
|
||||
include::modules/nw-cluster-mtu-checking.adoc[leveloffset=+3]
|
||||
include::modules/nw-cluster-mtu-migration.adoc[leveloffset=+3]
|
||||
include::modules/nw-cluster-mtu-verifying-configuration.adoc[leveloffset=+3]
|
||||
include::modules/nw-cluster-mtu-finalizing-migration.adoc[leveloffset=+3]
|
||||
[role="_additional-resources"]
|
||||
.Additional resources
|
||||
* xref:../../../networking/advanced_networking/changing-cluster-network-mtu.adoc#changing-cluster-network-mtu[Changing the MTU for the cluster network]
|
||||
|
||||
79
modules/nw-cluster-mtu-applying-mtu-value.adoc
Normal file
79
modules/nw-cluster-mtu-applying-mtu-value.adoc
Normal file
@@ -0,0 +1,79 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/changing-cluster-network-mtu.adoc
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="nw-cluster-mtu-applying-mtu-value_{context}"]
|
||||
= Applying the new hardware MTU value
|
||||
|
||||
Use the following procedure to apply the new hardware maximum transmission unit (MTU) value.
|
||||
|
||||
.Procedure
|
||||
|
||||
. Update the underlying network interface MTU value:
|
||||
|
||||
** If you are specifying the new MTU with a NetworkManager connection configuration, enter the following command. The MachineConfig Operator automatically performs a rolling reboot of the nodes in your cluster.
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ for manifest in control-plane-interface worker-interface; do
|
||||
oc create -f $manifest.yaml
|
||||
done
|
||||
----
|
||||
|
||||
** If you are specifying the new MTU with a DHCP server option or a kernel command line and PXE, make the necessary changes for your infrastructure.
|
||||
|
||||
. As the Machine Config Operator updates machines in each machine config pool, the Operator reboots each node one by one. You must wait until all the nodes are updated. Check the machine config pool status by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfigpools
|
||||
----
|
||||
+
|
||||
A successfully updated node has the following status: `UPDATED=true`, `UPDATING=false`, `DEGRADED=false`.
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
By default, the Machine Config Operator updates one machine per pool at a time, causing the total time the migration takes to increase with the size of the cluster.
|
||||
====
|
||||
|
||||
. Confirm the status of the new machine configuration on the hosts:
|
||||
|
||||
.. To list the machine configuration state and the name of the applied machine configuration, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe node | egrep "hostname|machineconfig"
|
||||
----
|
||||
+
|
||||
.Example output
|
||||
[source,text]
|
||||
----
|
||||
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
|
||||
----
|
||||
+
|
||||
Verify that the following statements are true:
|
||||
+
|
||||
--
|
||||
* The value of `machineconfiguration.openshift.io/state` field is `Done`.
|
||||
* The value of the `machineconfiguration.openshift.io/currentConfig` field is equal to the value of the `machineconfiguration.openshift.io/desiredConfig` field.
|
||||
--
|
||||
|
||||
.. To confirm that the machine config is correct, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfig <config_name> -o yaml | grep path:
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<config_name>`:: Specifies the name of the machine config from the `machineconfiguration.openshift.io/currentConfig` field.
|
||||
--
|
||||
+
|
||||
If the machine config is successfully deployed, the previous output contains the `/etc/NetworkManager/conf.d/99-<interface>-mtu.conf` file path and the `ExecStart=/usr/local/bin/mtu-migration.sh` line.
|
||||
@@ -19,7 +19,7 @@ Only the OVN-Kubernetes cluster network plugin supports changing the MTU value.
|
||||
[id="service-interruption-considerations_{context}"]
|
||||
== Service interruption considerations
|
||||
|
||||
When you initiate an MTU change on your cluster the following effects might impact service availability:
|
||||
When you initiate a maximum transmission unit (MTU) change on your cluster the following effects might impact service availability:
|
||||
|
||||
* At least two rolling reboots are required to complete the migration to a new MTU. During this time, some nodes are not available as they restart.
|
||||
|
||||
@@ -28,7 +28,7 @@ When you initiate an MTU change on your cluster the following effects might impa
|
||||
[id="mtu-value-selection_{context}"]
|
||||
== MTU value selection
|
||||
|
||||
When planning your MTU migration there are two related but distinct MTU values to consider.
|
||||
When planning your maximum transmission unit (MTU) migration there are two related but distinct MTU values to consider.
|
||||
|
||||
* *Hardware MTU*: This MTU value is set based on the specifics of your network infrastructure.
|
||||
* *Cluster network MTU*: This MTU value is always less than your hardware MTU to account for the cluster network overlay overhead. The specific overhead is determined by your network plugin. For OVN-Kubernetes, the overhead is `100` bytes.
|
||||
|
||||
@@ -38,7 +38,7 @@ The migration is disruptive and nodes in your cluster might be temporarily unava
|
||||
ifdef::outposts[For more details about the migration process, including important service interruption considerations, see "Changing the MTU for the cluster network" in the additional resources for this procedure.]
|
||||
|
||||
ifndef::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
The following procedure describes how to change the cluster network MTU by using either machine configs, Dynamic Host Configuration Protocol (DHCP), or an ISO image. If you use either the DHCP or ISO approaches, you must refer to configuration artifacts that you kept after installing your cluster to complete the procedure.
|
||||
The following procedures describe how to change the cluster network MTU by using machine configs, Dynamic Host Configuration Protocol (DHCP), or an ISO image. If you use either the DHCP or ISO approaches, you must refer to configuration artifacts that you kept after installing your cluster to complete the procedure.
|
||||
endif::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
|
||||
.Prerequisites
|
||||
@@ -47,391 +47,4 @@ endif::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
* You have access to the cluster using an account with `cluster-admin` permissions.
|
||||
* You have identified the target MTU for your cluster. The MTU for the OVN-Kubernetes network plugin must be set to `100` less than the lowest hardware MTU value in your cluster.
|
||||
* If your nodes are physical machines, ensure that the cluster network and the connected network switches support jumbo frames.
|
||||
* If your nodes are virtual machines (VMs), ensure that the hypervisor and the connected network switches support jumbo frames.
|
||||
|
||||
.Procedure
|
||||
|
||||
. To obtain the current MTU for the cluster network, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe network.config cluster
|
||||
----
|
||||
+
|
||||
.Example output
|
||||
[source,text]
|
||||
----
|
||||
...
|
||||
Status:
|
||||
Cluster Network:
|
||||
Cidr: 10.217.0.0/22
|
||||
Host Prefix: 23
|
||||
Cluster Network MTU: 1400
|
||||
Network Type: OVNKubernetes
|
||||
Service Network:
|
||||
10.217.4.0/23
|
||||
...
|
||||
----
|
||||
|
||||
ifndef::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
. Prepare your configuration for the hardware MTU:
|
||||
+
|
||||
[IMPORTANT]
|
||||
====
|
||||
There are many ways to configure the hardware MTU for your cluster nodes. The following examples show only the most common methods. You must verify that your infrastructure MTU is correct and that your preferred method for configuring your hardware MTU in the cluster nodes is in effect before proceeding.
|
||||
====
|
||||
|
||||
** If your hardware MTU is specified with DHCP, update your DHCP configuration such as with the following dnsmasq configuration:
|
||||
+
|
||||
[source,text]
|
||||
----
|
||||
dhcp-option-force=26,<mtu>
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<mtu>`:: Specifies the hardware MTU for the DHCP server to advertise.
|
||||
--
|
||||
|
||||
** If your hardware MTU is specified with a kernel command line with PXE, update that configuration accordingly.
|
||||
|
||||
** If your hardware MTU is specified in a NetworkManager connection configuration, complete the following steps. This approach is the default for {product-title} if you do not explicitly specify your network configuration with DHCP, a kernel command line, or some other method. Your cluster nodes must all use the same underlying network configuration for the following procedure to work unmodified.
|
||||
|
||||
... Find the primary network interface by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc debug node/<node_name> -- chroot /host nmcli -g connection.interface-name c show ovs-if-phys0
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<node_name>`:: Specifies the name of a node in your cluster.
|
||||
--
|
||||
|
||||
... Create the following NetworkManager configuration in the `<interface>-mtu.conf` file:
|
||||
+
|
||||
.Example NetworkManager connection configuration
|
||||
[source,ini]
|
||||
----
|
||||
[connection-<interface>-mtu]
|
||||
match-device=interface-name:<interface>
|
||||
ethernet.mtu=<mtu>
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<mtu>`:: Specifies the new hardware MTU value.
|
||||
`<interface>`:: Specifies the primary network interface name.
|
||||
--
|
||||
|
||||
... Create two `MachineConfig` objects, one for the control plane nodes and another for the worker nodes in your cluster:
|
||||
|
||||
.... Create the following Butane config in the `control-plane-interface.bu` file:
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
include::snippets/butane-version.adoc[]
|
||||
====
|
||||
+
|
||||
[source,yaml, subs="attributes+"]
|
||||
----
|
||||
variant: openshift
|
||||
version: {product-version}.0
|
||||
metadata:
|
||||
name: 01-control-plane-interface
|
||||
labels:
|
||||
machineconfiguration.openshift.io/role: master
|
||||
storage:
|
||||
files:
|
||||
- path: /etc/NetworkManager/conf.d/99-<interface>-mtu.conf <1>
|
||||
contents:
|
||||
local: <interface>-mtu.conf <2>
|
||||
mode: 0600
|
||||
----
|
||||
<1> Specify the NetworkManager connection name for the primary network interface.
|
||||
<2> Specify the local filename for the updated NetworkManager configuration file from the previous step.
|
||||
|
||||
.... Create the following Butane config in the `worker-interface.bu` file:
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
include::snippets/butane-version.adoc[]
|
||||
====
|
||||
+
|
||||
[source,yaml, subs="attributes+"]
|
||||
----
|
||||
variant: openshift
|
||||
version: {product-version}.0
|
||||
metadata:
|
||||
name: 01-worker-interface
|
||||
labels:
|
||||
machineconfiguration.openshift.io/role: worker
|
||||
storage:
|
||||
files:
|
||||
- path: /etc/NetworkManager/conf.d/99-<interface>-mtu.conf <1>
|
||||
contents:
|
||||
local: <interface>-mtu.conf <2>
|
||||
mode: 0600
|
||||
----
|
||||
<1> Specify the NetworkManager connection name for the primary network interface.
|
||||
<2> Specify the local filename for the updated NetworkManager configuration file from the previous step.
|
||||
|
||||
.... Create `MachineConfig` objects from the Butane configs by running the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ for manifest in control-plane-interface worker-interface; do
|
||||
butane --files-dir . $manifest.bu > $manifest.yaml
|
||||
done
|
||||
----
|
||||
+
|
||||
[WARNING]
|
||||
====
|
||||
Do not apply these machine configs until explicitly instructed later in this procedure. Applying these machine configs now causes a loss of stability for the cluster.
|
||||
====
|
||||
endif::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
|
||||
. To begin the MTU migration, specify the migration configuration by entering the following command. The Machine Config Operator performs a rolling reboot of the nodes in the cluster in preparation for the MTU change.
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc patch Network.operator.openshift.io cluster --type=merge --patch \
|
||||
'{"spec": { "migration": { "mtu": { "network": { "from": <overlay_from>, "to": <overlay_to> } , "machine": { "to" : <machine_to> } } } } }'
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<overlay_from>`:: Specifies the current cluster network MTU value.
|
||||
`<overlay_to>`:: Specifies the target MTU for the cluster network. This value is set relative to the value of `<machine_to>`. For OVN-Kubernetes, this value must be `100` less than the value of `<machine_to>`.
|
||||
`<machine_to>`:: Specifies the MTU for the primary network interface on the underlying host network.
|
||||
--
|
||||
+
|
||||
ifndef::outposts[]
|
||||
.Example that increases the cluster MTU
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc patch Network.operator.openshift.io cluster --type=merge --patch \
|
||||
'{"spec": { "migration": { "mtu": { "network": { "from": 1400, "to": 9000 } , "machine": { "to" : 9100} } } } }'
|
||||
----
|
||||
endif::outposts[]
|
||||
ifdef::outposts[]
|
||||
.Example that decreases the cluster MTU
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc patch Network.operator.openshift.io cluster --type=merge --patch \
|
||||
'{"spec": { "migration": { "mtu": { "network": { "from": 1400, "to": 1000 } , "machine": { "to" : 1100} } } } }'
|
||||
----
|
||||
endif::outposts[]
|
||||
|
||||
. As the Machine Config Operator updates machines in each machine config pool, it reboots each node one by one. You must wait until all the nodes are updated. Check the machine config pool status by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfigpools
|
||||
----
|
||||
+
|
||||
A successfully updated node has the following status: `UPDATED=true`, `UPDATING=false`, `DEGRADED=false`.
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
By default, the Machine Config Operator updates one machine per pool at a time, causing the total time the migration takes to increase with the size of the cluster.
|
||||
====
|
||||
|
||||
. Confirm the status of the new machine configuration on the hosts:
|
||||
|
||||
.. To list the machine configuration state and the name of the applied machine configuration, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe node | egrep "hostname|machineconfig"
|
||||
----
|
||||
+
|
||||
.Example output
|
||||
[source,text]
|
||||
----
|
||||
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
|
||||
----
|
||||
|
||||
.. Verify that the following statements are true:
|
||||
+
|
||||
--
|
||||
* The value of `machineconfiguration.openshift.io/state` field is `Done`.
|
||||
* The value of the `machineconfiguration.openshift.io/currentConfig` field is equal to the value of the `machineconfiguration.openshift.io/desiredConfig` field.
|
||||
--
|
||||
|
||||
.. To confirm that the machine config is correct, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfig <config_name> -o yaml | grep ExecStart
|
||||
----
|
||||
+
|
||||
where `<config_name>` is the name of the machine config from the `machineconfiguration.openshift.io/currentConfig` field.
|
||||
+
|
||||
The machine config must include the following update to the systemd configuration:
|
||||
+
|
||||
[source,plain]
|
||||
----
|
||||
ExecStart=/usr/local/bin/mtu-migration.sh
|
||||
----
|
||||
|
||||
ifndef::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
. Update the underlying network interface MTU value:
|
||||
|
||||
** If you are specifying the new MTU with a NetworkManager connection configuration, enter the following command. The MachineConfig Operator automatically performs a rolling reboot of the nodes in your cluster.
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ for manifest in control-plane-interface worker-interface; do
|
||||
oc create -f $manifest.yaml
|
||||
done
|
||||
----
|
||||
|
||||
** If you are specifying the new MTU with a DHCP server option or a kernel command line and PXE, make the necessary changes for your infrastructure.
|
||||
|
||||
. As the Machine Config Operator updates machines in each machine config pool, it reboots each node one by one. You must wait until all the nodes are updated. Check the machine config pool status by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfigpools
|
||||
----
|
||||
+
|
||||
A successfully updated node has the following status: `UPDATED=true`, `UPDATING=false`, `DEGRADED=false`.
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
By default, the Machine Config Operator updates one machine per pool at a time, causing the total time the migration takes to increase with the size of the cluster.
|
||||
====
|
||||
|
||||
. Confirm the status of the new machine configuration on the hosts:
|
||||
|
||||
.. To list the machine configuration state and the name of the applied machine configuration, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe node | egrep "hostname|machineconfig"
|
||||
----
|
||||
+
|
||||
.Example output
|
||||
[source,text]
|
||||
----
|
||||
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
|
||||
----
|
||||
+
|
||||
Verify that the following statements are true:
|
||||
+
|
||||
--
|
||||
* The value of `machineconfiguration.openshift.io/state` field is `Done`.
|
||||
* The value of the `machineconfiguration.openshift.io/currentConfig` field is equal to the value of the `machineconfiguration.openshift.io/desiredConfig` field.
|
||||
--
|
||||
|
||||
.. To confirm that the machine config is correct, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfig <config_name> -o yaml | grep path:
|
||||
----
|
||||
+
|
||||
where `<config_name>` is the name of the machine config from the `machineconfiguration.openshift.io/currentConfig` field.
|
||||
+
|
||||
If the machine config is successfully deployed, the previous output contains the `/etc/NetworkManager/conf.d/99-<interface>-mtu.conf` file path and the `ExecStart=/usr/local/bin/mtu-migration.sh` line.
|
||||
endif::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
|
||||
. To finalize the MTU migration, enter the following command for the OVN-Kubernetes network plugin:
|
||||
+
|
||||
[source,terminal]
|
||||
+
|
||||
----
|
||||
$ oc patch Network.operator.openshift.io cluster --type=merge --patch \
|
||||
'{"spec": { "migration": null, "defaultNetwork":{ "ovnKubernetesConfig": { "mtu": <mtu> }}}}'
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<mtu>`:: Specifies the new cluster network MTU that you specified with `<overlay_to>`.
|
||||
--
|
||||
|
||||
. After finalizing the MTU migration, each machine config pool node is rebooted one by one. You must wait until all the nodes are updated. Check the machine config pool status by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfigpools
|
||||
----
|
||||
+
|
||||
A successfully updated node has the following status: `UPDATED=true`, `UPDATING=false`, `DEGRADED=false`.
|
||||
|
||||
.Verification
|
||||
|
||||
ifdef::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
* Verify that the node in your cluster uses the MTU that you specified by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe network.config cluster
|
||||
----
|
||||
endif::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
|
||||
ifndef::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
. To get the current MTU for the cluster network, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe network.config cluster
|
||||
----
|
||||
|
||||
. Get the current MTU for the primary network interface of a node:
|
||||
|
||||
.. To list the nodes in your cluster, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get nodes
|
||||
----
|
||||
|
||||
.. To obtain the current MTU setting for the primary network interface on a node, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc adm node-logs <node> -u ovs-configuration | grep configure-ovs.sh | grep mtu | grep <interface> | head -1
|
||||
----
|
||||
+
|
||||
where:
|
||||
+
|
||||
--
|
||||
`<node>`:: Specifies a node from the output from the previous step.
|
||||
`<interface>`:: Specifies the primary network interface name for the node.
|
||||
--
|
||||
+
|
||||
.Example output
|
||||
[source,text]
|
||||
----
|
||||
ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8051
|
||||
----
|
||||
endif::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-local-zone"]
|
||||
:!local-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-wavelength-zone"]
|
||||
:!wavelength-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-zone-tasks"]
|
||||
:!post-aws-zones:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "installing-aws-outposts"]
|
||||
:!outposts:
|
||||
endif::[]
|
||||
* If your nodes are virtual machines (VMs), ensure that the hypervisor and the connected network switches support jumbo frames.
|
||||
35
modules/nw-cluster-mtu-checking.adoc
Normal file
35
modules/nw-cluster-mtu-checking.adoc
Normal file
@@ -0,0 +1,35 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/changing-cluster-network-mtu.adoc
|
||||
// * installing/installing_aws/aws-compute-edge-zone-tasks.adoc
|
||||
// * installing/installing_aws/ipi/installing-aws-outposts.adoc
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="nw-cluster-mtu-checking_{context}"]
|
||||
= Checking the current cluster MTU value
|
||||
|
||||
Use the following procedure to obtain the current maximum transmission unit (MTU) for the cluster network.
|
||||
|
||||
.Procedure
|
||||
|
||||
* To obtain the current MTU for the cluster network, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe network.config cluster
|
||||
----
|
||||
+
|
||||
.Example output
|
||||
[source,text]
|
||||
----
|
||||
...
|
||||
Status:
|
||||
Cluster Network:
|
||||
Cidr: 10.217.0.0/22
|
||||
Host Prefix: 23
|
||||
Cluster Network MTU: 1400
|
||||
Network Type: OVNKubernetes
|
||||
Service Network:
|
||||
10.217.4.0/23
|
||||
...
|
||||
----
|
||||
77
modules/nw-cluster-mtu-creating-mc-objects.adoc
Normal file
77
modules/nw-cluster-mtu-creating-mc-objects.adoc
Normal file
@@ -0,0 +1,77 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/changing-cluster-network-mtu.adoc
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="nw-cluster-mtu-creating-mc-objects_{context}"]
|
||||
= Creating MachineConfig objects
|
||||
|
||||
Use the following procedure to create the `MachineConfig` objects.
|
||||
|
||||
.Procedure
|
||||
|
||||
. Create two `MachineConfig` objects, one for the control plane nodes and another for the worker nodes in your cluster:
|
||||
|
||||
.. Create the following Butane config in the `control-plane-interface.bu` file:
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
include::snippets/butane-version.adoc[]
|
||||
====
|
||||
+
|
||||
[source,yaml, subs="attributes+"]
|
||||
----
|
||||
variant: openshift
|
||||
version: {product-version}.0
|
||||
metadata:
|
||||
name: 01-control-plane-interface
|
||||
labels:
|
||||
machineconfiguration.openshift.io/role: master
|
||||
storage:
|
||||
files:
|
||||
- path: /etc/NetworkManager/conf.d/99-<interface>-mtu.conf <1>
|
||||
contents:
|
||||
local: <interface>-mtu.conf <2>
|
||||
mode: 0600
|
||||
----
|
||||
<1> Specifies the `NetworkManager` connection name for the primary network interface.
|
||||
<2> Specifies the local filename for the updated `NetworkManager` configuration file from an earlier step.
|
||||
|
||||
.. Create the following Butane config in the `worker-interface.bu` file:
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
include::snippets/butane-version.adoc[]
|
||||
====
|
||||
+
|
||||
[source,yaml, subs="attributes+"]
|
||||
----
|
||||
variant: openshift
|
||||
version: {product-version}.0
|
||||
metadata:
|
||||
name: 01-worker-interface
|
||||
labels:
|
||||
machineconfiguration.openshift.io/role: worker
|
||||
storage:
|
||||
files:
|
||||
- path: /etc/NetworkManager/conf.d/99-<interface>-mtu.conf <1>
|
||||
contents:
|
||||
local: <interface>-mtu.conf <2>
|
||||
mode: 0600
|
||||
----
|
||||
<1> Specifies the `NetworkManager` connection name for the primary network interface.
|
||||
<2> Specifies the local filename for the updated `NetworkManager` configuration file from an earlier step.
|
||||
|
||||
. Create `MachineConfig` objects from the Butane configs by running the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ for manifest in control-plane-interface worker-interface; do
|
||||
butane --files-dir . $manifest.bu > $manifest.yaml
|
||||
done
|
||||
----
|
||||
+
|
||||
[WARNING]
|
||||
====
|
||||
Do not apply these machine configs until explicitly instructed later in this procedure. Applying these machine configs now causes a loss of stability for the cluster.
|
||||
====
|
||||
112
modules/nw-cluster-mtu-finalizing-migration.adoc
Normal file
112
modules/nw-cluster-mtu-finalizing-migration.adoc
Normal file
@@ -0,0 +1,112 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/changing-cluster-network-mtu.adoc
|
||||
// * installing/installing_aws/aws-compute-edge-zone-tasks.adoc
|
||||
// * installing/installing_aws/ipi/installing-aws-outposts.adoc
|
||||
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-local-zone"]
|
||||
:local-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-wavelength-zone"]
|
||||
:wavelength-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-zone-tasks"]
|
||||
:post-aws-zones:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "installing-aws-outposts"]
|
||||
:outposts:
|
||||
endif::[]
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="nw-cluster-mtu-finalizing-migration_{context}"]
|
||||
= Finalizing the MTU migration
|
||||
|
||||
Use the following procedure to finalize the MTU migration.
|
||||
|
||||
.Procedure
|
||||
|
||||
. To finalize the MTU migration, enter the following command for the OVN-Kubernetes network plugin:
|
||||
+
|
||||
[source,terminal]
|
||||
+
|
||||
----
|
||||
$ oc patch Network.operator.openshift.io cluster --type=merge --patch \
|
||||
'{"spec": { "migration": null, "defaultNetwork":{ "ovnKubernetesConfig": { "mtu": <mtu> }}}}'
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<mtu>`:: Specifies the new cluster network MTU that you specified with `<overlay_to>`.
|
||||
--
|
||||
|
||||
. After finalizing the MTU migration, each machine config pool node is rebooted one by one. You must wait until all the nodes are updated. Check the machine config pool status by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfigpools
|
||||
----
|
||||
+
|
||||
A successfully updated node has the following status: `UPDATED=true`, `UPDATING=false`, `DEGRADED=false`.
|
||||
|
||||
.Verification
|
||||
|
||||
ifdef::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
* Verify that the node in your cluster uses the MTU that you specified by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe network.config cluster
|
||||
----
|
||||
endif::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
|
||||
ifndef::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
. To get the current MTU for the cluster network, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe network.config cluster
|
||||
----
|
||||
|
||||
. Get the current MTU for the primary network interface of a node:
|
||||
|
||||
.. To list the nodes in your cluster, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get nodes
|
||||
----
|
||||
|
||||
.. To obtain the current MTU setting for the primary network interface on a node, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc adm node-logs <node> -u ovs-configuration | grep configure-ovs.sh | grep mtu | grep <interface> | head -1
|
||||
----
|
||||
+
|
||||
where:
|
||||
+
|
||||
--
|
||||
`<node>`:: Specifies a node from the output from the previous step.
|
||||
`<interface>`:: Specifies the primary network interface name for the node.
|
||||
--
|
||||
+
|
||||
.Example output
|
||||
[source,text]
|
||||
----
|
||||
ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8051
|
||||
----
|
||||
endif::local-zone,wavelength-zone,post-aws-zones,outposts[]
|
||||
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-local-zone"]
|
||||
:!local-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-wavelength-zone"]
|
||||
:!wavelength-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-zone-tasks"]
|
||||
:!post-aws-zones:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "installing-aws-outposts"]
|
||||
:!outposts:
|
||||
endif::[]
|
||||
84
modules/nw-cluster-mtu-migration.adoc
Normal file
84
modules/nw-cluster-mtu-migration.adoc
Normal file
@@ -0,0 +1,84 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/changing-cluster-network-mtu.adoc
|
||||
// * installing/installing_aws/aws-compute-edge-zone-tasks.adoc
|
||||
// * installing/installing_aws/ipi/installing-aws-outposts.adoc
|
||||
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-local-zone"]
|
||||
:local-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-wavelength-zone"]
|
||||
:wavelength-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-zone-tasks"]
|
||||
:post-aws-zones:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "installing-aws-outposts"]
|
||||
:outposts:
|
||||
endif::[]
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="nw-cluster-mtu-migration_{context}"]
|
||||
= Beginning the MTU migration
|
||||
|
||||
Use the following procedure to start the MTU migration.
|
||||
|
||||
.Procedure
|
||||
|
||||
. To begin the MTU migration, specify the migration configuration by entering the following command. The Machine Config Operator performs a rolling reboot of the nodes in the cluster in preparation for the MTU change.
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc patch Network.operator.openshift.io cluster --type=merge --patch \
|
||||
'{"spec": { "migration": { "mtu": { "network": { "from": <overlay_from>, "to": <overlay_to> } , "machine": { "to" : <machine_to> } } } } }'
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<overlay_from>`:: Specifies the current cluster network MTU value.
|
||||
`<overlay_to>`:: Specifies the target MTU for the cluster network. This value is set relative to the value of `<machine_to>`. For OVN-Kubernetes, this value must be `100` less than the value of `<machine_to>`.
|
||||
`<machine_to>`:: Specifies the MTU for the primary network interface on the underlying host network.
|
||||
--
|
||||
+
|
||||
ifndef::outposts[]
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc patch Network.operator.openshift.io cluster --type=merge --patch \
|
||||
'{"spec": { "migration": { "mtu": { "network": { "from": 1400, "to": 9000 } , "machine": { "to" : 9100} } } } }'
|
||||
----
|
||||
endif::outposts[]
|
||||
ifdef::outposts[]
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc patch Network.operator.openshift.io cluster --type=merge --patch \
|
||||
'{"spec": { "migration": { "mtu": { "network": { "from": 1400, "to": 1000 } , "machine": { "to" : 1100} } } } }'
|
||||
----
|
||||
endif::outposts[]
|
||||
|
||||
. As the Machine Config Operator updates machines in each machine config pool, the Operator reboots each node one by one. You must wait until all the nodes are updated. Check the machine config pool status by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfigpools
|
||||
----
|
||||
+
|
||||
A successfully updated node has the following status: `UPDATED=true`, `UPDATING=false`, `DEGRADED=false`.
|
||||
+
|
||||
[NOTE]
|
||||
====
|
||||
By default, the Machine Config Operator updates one machine per pool at a time, causing the total time the migration takes to increase with the size of the cluster.
|
||||
====
|
||||
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-local-zone"]
|
||||
:!local-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-wavelength-zone"]
|
||||
:!wavelength-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-zone-tasks"]
|
||||
:!post-aws-zones:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "installing-aws-outposts"]
|
||||
:!outposts:
|
||||
endif::[]
|
||||
59
modules/nw-cluster-mtu-preparing.adoc
Normal file
59
modules/nw-cluster-mtu-preparing.adoc
Normal file
@@ -0,0 +1,59 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/changing-cluster-network-mtu.adoc
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="nw-cluster-mtu-preparing_{context}"]
|
||||
= Preparing your hardware MTU configuration
|
||||
|
||||
Many ways exist to configure the hardware maximum transmission unit (MTU) for your cluster nodes. The following examples show only the most common methods. Verify the correctness of your infrastructure MTU. Select your preferred method for configuring your hardware MTU in the cluster nodes.
|
||||
|
||||
.Procedure
|
||||
|
||||
. Prepare your configuration for the hardware MTU:
|
||||
+
|
||||
** If your hardware MTU is specified with DHCP, update your DHCP configuration such as with the following dnsmasq configuration:
|
||||
+
|
||||
[source,text]
|
||||
----
|
||||
dhcp-option-force=26,<mtu>
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<mtu>`:: Specifies the hardware MTU for the DHCP server to advertise.
|
||||
--
|
||||
+
|
||||
** If your hardware MTU is specified with a kernel command line with PXE, update that configuration accordingly.
|
||||
+
|
||||
** If your hardware MTU is specified in a NetworkManager connection configuration, complete the following steps. This approach is the default for {product-title} if you do not explicitly specify your network configuration with DHCP, a kernel command line, or some other method. Your cluster nodes must all use the same underlying network configuration for the following procedure to work unmodified.
|
||||
|
||||
.. Find the primary network interface by entering the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc debug node/<node_name> -- chroot /host nmcli -g connection.interface-name c show ovs-if-phys0
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<node_name>`:: Specifies the name of a node in your cluster.
|
||||
--
|
||||
|
||||
.. Create the following `NetworkManager` configuration in the `<interface>-mtu.conf` file:
|
||||
+
|
||||
[source,ini]
|
||||
----
|
||||
[connection-<interface>-mtu]
|
||||
match-device=interface-name:<interface>
|
||||
ethernet.mtu=<mtu>
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<interface>`:: Specifies the primary network interface name.
|
||||
`<mtu>`:: Specifies the new hardware MTU value.
|
||||
--
|
||||
85
modules/nw-cluster-mtu-verifying-configuration.adoc
Normal file
85
modules/nw-cluster-mtu-verifying-configuration.adoc
Normal file
@@ -0,0 +1,85 @@
|
||||
// Module included in the following assemblies:
|
||||
//
|
||||
// * networking/changing-cluster-network-mtu.adoc
|
||||
// * installing/installing_aws/aws-compute-edge-zone-tasks.adoc
|
||||
// * installing/installing_aws/ipi/installing-aws-outposts.adoc
|
||||
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-local-zone"]
|
||||
:local-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-wavelength-zone"]
|
||||
:wavelength-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-zone-tasks"]
|
||||
:post-aws-zones:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "installing-aws-outposts"]
|
||||
:outposts:
|
||||
endif::[]
|
||||
|
||||
:_mod-docs-content-type: PROCEDURE
|
||||
[id="nw-cluster-mtu-verifying-configuration_{context}"]
|
||||
= Verifying the machine configuration
|
||||
|
||||
Use the following procedure to verify the machine configuration.
|
||||
|
||||
.Procedure
|
||||
|
||||
* Confirm the status of the new machine configuration on the hosts:
|
||||
|
||||
.. To list the machine configuration state and the name of the applied machine configuration, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc describe node | egrep "hostname|machineconfig"
|
||||
----
|
||||
+
|
||||
.Example output
|
||||
[source,text]
|
||||
----
|
||||
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
|
||||
----
|
||||
|
||||
.. Verify that the following statements are true:
|
||||
+
|
||||
--
|
||||
* The value of `machineconfiguration.openshift.io/state` field is `Done`.
|
||||
* The value of the `machineconfiguration.openshift.io/currentConfig` field is equal to the value of the `machineconfiguration.openshift.io/desiredConfig` field.
|
||||
--
|
||||
|
||||
.. To confirm that the machine config is correct, enter the following command:
|
||||
+
|
||||
[source,terminal]
|
||||
----
|
||||
$ oc get machineconfig <config_name> -o yaml | grep ExecStart
|
||||
----
|
||||
+
|
||||
--
|
||||
where:
|
||||
|
||||
`<config_name>`:: Specifies the name of the machine config from the `machineconfiguration.openshift.io/currentConfig` field.
|
||||
--
|
||||
+
|
||||
The machine config must include the following update to the systemd configuration:
|
||||
+
|
||||
[source,plain]
|
||||
----
|
||||
ExecStart=/usr/local/bin/mtu-migration.sh
|
||||
----
|
||||
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-local-zone"]
|
||||
:!local-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-tasks-wavelength-zone"]
|
||||
:!wavelength-zone:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "aws-compute-edge-zone-tasks"]
|
||||
:!post-aws-zones:
|
||||
endif::[]
|
||||
ifeval::["{context}" == "installing-aws-outposts"]
|
||||
:!outposts:
|
||||
endif::[]
|
||||
@@ -7,11 +7,18 @@ include::_attributes/common-attributes.adoc[]
|
||||
toc::[]
|
||||
|
||||
[role="_abstract"]
|
||||
As a cluster administrator, you can change the MTU for the cluster network after cluster installation. This change is disruptive as cluster nodes must be rebooted to finalize the MTU change.
|
||||
As a cluster administrator, you can change the maximum transmission unit (MTU) for the cluster network after cluster installation. This change is disruptive as cluster nodes must be rebooted to finalize the MTU change.
|
||||
|
||||
include::modules/nw-cluster-mtu-change-about.adoc[leveloffset=+1]
|
||||
|
||||
include::modules/nw-cluster-mtu-change.adoc[leveloffset=+1]
|
||||
include::modules/nw-cluster-mtu-checking.adoc[leveloffset=+2]
|
||||
include::modules/nw-cluster-mtu-preparing.adoc[leveloffset=+2]
|
||||
include::modules/nw-cluster-mtu-creating-mc-objects.adoc[leveloffset=+2]
|
||||
include::modules/nw-cluster-mtu-migration.adoc[leveloffset=+2]
|
||||
include::modules/nw-cluster-mtu-verifying-configuration.adoc[leveloffset=+2]
|
||||
include::modules/nw-cluster-mtu-applying-mtu-value.adoc[leveloffset=+2]
|
||||
include::modules/nw-cluster-mtu-finalizing-migration.adoc[leveloffset=+2]
|
||||
|
||||
[role="_additional-resources"]
|
||||
[id="{context}-additional-resources"]
|
||||
|
||||
Reference in New Issue
Block a user