From 6a5d38766146e16d0aedd8ad6e590c4115382abd Mon Sep 17 00:00:00 2001 From: dfitzmau Date: Thu, 17 Apr 2025 10:20:18 +0100 Subject: [PATCH] OSDOCS-12711: Documented the balance-slb mode for networking docs --- images/552_OpenShift_slb_mode_0625.png | Bin 0 -> 88550 bytes ...-metal-postinstallation-configuration.adoc | 3 + .../ipi-install-installation-workflow.adoc | 3 + ...ing-bare-metal-network-customizations.adoc | 3 + .../upi/installing-bare-metal.adoc | 3 + ...alling-restricted-networks-bare-metal.adoc | 3 + modules/enabling-OVS-balance-slb-mode.adoc | 181 ++++++++++++++++++ 7 files changed, 196 insertions(+) create mode 100644 images/552_OpenShift_slb_mode_0625.png create mode 100644 modules/enabling-OVS-balance-slb-mode.adoc diff --git a/images/552_OpenShift_slb_mode_0625.png b/images/552_OpenShift_slb_mode_0625.png new file mode 100644 index 0000000000000000000000000000000000000000..4b51b9c1ff5de60e29774e9f1662649b1753ed08 GIT binary patch literal 88550 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

2ig`u)k&ZHHiDgqnrO)m2fGXB&-{<6F%B!BX= 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 literal 0 HcmV?d00001 diff --git a/installing/installing_bare_metal/bare-metal-postinstallation-configuration.adoc b/installing/installing_bare_metal/bare-metal-postinstallation-configuration.adoc index 56f28759f7d6..5be8d62ab6c2 100644 --- a/installing/installing_bare_metal/bare-metal-postinstallation-configuration.adoc +++ b/installing/installing_bare_metal/bare-metal-postinstallation-configuration.adoc @@ -24,6 +24,9 @@ include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset * xref:../../installing/installing_bare_metal/bare-metal-expanding-the-cluster.adoc#bare-metal-expanding-the-cluster[Expanding the cluster] +// Enabling OVS balance-slb mode for your cluster +include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1] + // Services for a user-managed load balancer include::modules/nw-osp-services-external-load-balancer.adoc[leveloffset=+1] diff --git a/installing/installing_bare_metal/ipi/ipi-install-installation-workflow.adoc b/installing/installing_bare_metal/ipi/ipi-install-installation-workflow.adoc index 4682625f0d01..1e9f303e7916 100644 --- a/installing/installing_bare_metal/ipi/ipi-install-installation-workflow.adoc +++ b/installing/installing_bare_metal/ipi/ipi-install-installation-workflow.adoc @@ -38,6 +38,9 @@ include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset // Scale each machine set to compute nodes include::modules/creating-scaling-machine-sets-compute-nodes-networking.adoc[leveloffset=+2] +// Enabling OVS balance-slb mode for your cluster +include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1] + // Establishing communication between subnets include::modules/ipi-install-establishing-communication-between-subnets.adoc[leveloffset=+1] diff --git a/installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc b/installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc index 198b24111673..5937cfebeef9 100644 --- a/installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc +++ b/installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc @@ -79,6 +79,9 @@ include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset // Scale each machine set to compute nodes include::modules/creating-scaling-machine-sets-compute-nodes-networking.adoc[leveloffset=+2] +// Enabling OVS balance-slb mode for your cluster +include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1] + include::modules/installation-infrastructure-user-infra.adoc[leveloffset=+1] [role="_additional-resources"] diff --git a/installing/installing_bare_metal/upi/installing-bare-metal.adoc b/installing/installing_bare_metal/upi/installing-bare-metal.adoc index bbf32a3f447f..02df7f1e4116 100644 --- a/installing/installing_bare_metal/upi/installing-bare-metal.adoc +++ b/installing/installing_bare_metal/upi/installing-bare-metal.adoc @@ -100,6 +100,9 @@ include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset // Scale each machine set to compute nodes include::modules/creating-scaling-machine-sets-compute-nodes-networking.adoc[leveloffset=+2] +// Enabling OVS balance-slb mode for your cluster +include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1] + include::modules/installation-infrastructure-user-infra.adoc[leveloffset=+1] [role="_additional-resources"] diff --git a/installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc b/installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc index 149c08913c72..cce90d9a6359 100644 --- a/installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc +++ b/installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc @@ -94,6 +94,9 @@ include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset // Scale each machine set to compute nodes include::modules/creating-scaling-machine-sets-compute-nodes-networking.adoc[leveloffset=+2] +// Enabling OVS balance-slb mode for your cluster +include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1] + include::modules/installation-infrastructure-user-infra.adoc[leveloffset=+1] [role="_additional-resources"] diff --git a/modules/enabling-OVS-balance-slb-mode.adoc b/modules/enabling-OVS-balance-slb-mode.adoc new file mode 100644 index 000000000000..32e2d1425fb0 --- /dev/null +++ b/modules/enabling-OVS-balance-slb-mode.adoc @@ -0,0 +1,181 @@ +// Module included in the following assemblies: +// +// IPI +// * installing/installing_bare_metal/ipi/ipi-install-installation-workflow.adoc +// * installing/installing_bare_metal/ipi/bare-metal-postinstallation-configuration.adoc +// UPI +// * installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc +// * installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc +// * installing/installing_bare_metal/upi/installing-bare-metal.adoc + +:_mod-docs-content-type: PROCEDURE +[id="enabling-OVS-balance-slb-mode_{context}"] += Enabling OVS balance-slb mode for your cluster + +You can enable the Open vSwitch (OVS) `balance-slb` mode on infrastructure where your cluster runs so that two or more physical interfaces can share their network traffic. A `balance-slb` mode interface provides source load balancing (SLB) capabilities for a cluster that runs virtualization workloads, where the interface can act independently without needing to communicate with a network switch. + +Currently, source load balancing works by assigning a Media Access Control (MAC) address and a virtual local area network (vLAN), if required, to a bond interface, such as `br-phy`. Because of the shared MAC address and vLAN between interfaces, using `balance-slb` mode to share pod traffic has no benefit. + +The following diagram shows `balance-slb` mode on a simple cluster infrastructure layout. Virtual machines (VMs) connect to specific localnet `NetworkAttachmentDefinition` (NAD) custom resource definition (CRDs), `NAD 0` or `NAD 1`. Each NAD provides VMs with access to network traffic, such as VLAN ID tags. A `br-ex` OVS bridge receives traffic from VMs and passes the traffic to the next OVS bridge, `br-phy`. The `br-phy` bridge functions as the controller for the SLB bond. The SLB bond balances traffic from different VM ports over the physical interface links, such as `eno0` and `eno1`. Additionally, ingress traffic from either physical interface can pass through the set of OVS bridges to reach the VMs. + +.OVS `balance-slb` mode ` operating on a localnet with two NADs +image::552_OpenShift_slb_mode_0625.png[OVS `balance-slb` mode ` operating on a localnet with two NADs] + +You can integrate the `balance-slb` mode interface into primary or secondary network types by using OVS bonding. Note the following points about OVS bonding: + +* Supports the OVN-Kubernetes CNI plugin and easily integrates with the plugin. +* Natively supports `balance-slb` mode. +* Cannot use the method external to your {product-title} cluster. + +.Prerequisites + +* You have more than one physical interface attached to your primary network and you defined the interfaces in a `MachineConfig` file. +* You created a manifest object and defined a customized `br-ex` bridge in the object configuration file. +* You have more than one physical interfaces attached to your primary network and you defined the interfaces in a NAD file. + +.Procedure + +. For each bare-metal host that exists in a cluster, in the `install-config.yaml` file for your cluster define a `networkConfig` section similar to the following example: ++ +[source,yaml] +---- +# ... +networkConfig: + interfaces: + - name: enp1s0 <1> + type: interface + state: up + ipv4: + dhcp: true + enabled: true + ipv6: + enabled: false + - name: enp2s0 <2> + type: interface + state: up + ipv4: + dhcp: true + enabled: true + ipv6: + enabled: false + - name: enp3s0 <3> + type: interface + state: up + ipv4: + enabled: false + ipv6: + enabled: false +# ... +---- +<1> The interface for the provisioned network interface card (NIC). +<2> The first bonded interface that pulls in the Ignition config file for the bond interface. +<3> The second bonded interface is part of a minimal configuration that pulls ignition during cluster installation. + +. Define each network interface in a `MachineConfig` manifest file: ++ +.Example `MachineConfig` manifest file that defines multiple network interfaces +[source,yaml] +---- +# ... +ovn: + bridge-mappings: + - localnet: localnet-network + bridge: br-ex + state: present +interfaces: + - name: br-ex + type: ovs-bridge + state: up + ipv4: + enabled: false + dhcp: false + ipv6: + enabled: false + dhcp: false + bridge: + allow-extra-patch-ports: true + port: + - name: br-ex + - name: patch-ex-to-phy + ovs-db: + external_ids: + bridge-uplink: "patch-ex-to-phy" + - name: br-ex + type: ovs-interface + state: up + copy-mac-from: enp2s0 + ipv4: + enabled: true + dhcp: true + auto-route-metric: 48 + ipv6: + enabled: false + dhcp: false + - name: br-phy + type: ovs-bridge + state: up + ipv4: + enabled: false + dhcp: false + ipv6: + enabled: false + dhcp: false + bridge: + allow-extra-patch-ports: true + port: + - name: patch-phy-to-ex + - name: ovs-bond + link-aggregation: + mode: balance-slb + port: + - name: enp2s0 + - name: enp3s0 + - name: patch-ex-to-phy + type: ovs-interface + state: up + patch: + peer: patch-phy-to-ex + - name: patch-phy-to-ex + type: ovs-interface + state: up + patch: + peer: patch-ex-to-phy +# ... +---- + +. Use the `cat` command to base64-encode the interface content of the `MachineConfig` manifest file: ++ +[source,terminal] +---- +$ cat machineconfig.yaml | base64 -w0 <1> +---- +<1> Where the `-w0` option prevents line wrapping during the base64 encoding operation. + +. Create `MachineConfig` manifest files for the `master` role and the `worker` role. The following example manifest file configures the `master` role for all nodes that exist in a cluster. You can also create a manifest file for `master` and `worker` roles specific to a node. ++ +[source,yaml] +---- +apiVersion: machineconfiguration.openshift.io/v1 +kind: MachineConfig +metadata: + labels: + machineconfiguration.openshift.io/role: master + name: 10-br-ex-master <1> +spec: + config: + ignition: + version: 3.2.0 + storage: + files: + - contents: + source: data:text/plain;charset=utf-8;base64, <2> + mode: 0644 + overwrite: true + path: /etc/nmstate/openshift/cluster.yml <3> +---- +<1> The name of the policy. +<2> Writes the encoded base64 information to the specified path. +<3> Specify the path to the `cluster.yml` file. For each node in your cluster, you can specify the short hostname path to your node, such as ``.yml. + +. Save the `MachineConfig` manifest file to the `.//manifests` directory, where `` is the directory in which the installation program creates files. +