You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/configuring-localnet-switched-topology.adoc
+18-15Lines changed: 18 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@
9
9
[role="_abstract"]
10
10
The switched `localnet` topology interconnects the workloads created as Network Attachment Definitions (NADs) through a cluster-wide logical switch to a physical network.
11
11
12
-
You must map a secondary network to the OVS bridge to use it as an OVN-Kubernetes secondary network. Bridge mappings allow network traffic to reach the physical network. A bridge mapping associates a physical network name, also known as an interface label, to a bridge created with Open vSwitch (OVS).
12
+
You must map a secondary network to the ovs-bridge to use it as an OVN-Kubernetes secondary network. Bridge mappings allow network traffic to reach the physical network. A bridge mapping associates a physical network name, also known as an interface label, to a bridge created with Open vSwitch (OVS).
13
13
14
14
You can create an `NodeNetworkConfigurationPolicy` (NNCP) object, part of the `nmstate.io/v1` API group, to declaratively create the mapping. This API is provided by the NMState Operator. By using this API you can apply the bridge mapping to nodes that match your specified `nodeSelector` expression, such as `node-role.kubernetes.io/worker: ''`. With this declarative approach, the NMState Operator applies secondary network configuration to all nodes specified by the node selector automatically and transparently.
15
15
@@ -18,6 +18,11 @@ When attaching a secondary network, you can either use the existing `br-ex` brid
18
18
- If your nodes include only a single network interface, you must use the existing bridge. This network interface is owned and managed by OVN-Kubernetes and you must not remove it from the `br-ex` bridge or alter the interface configuration. If you remove or alter the network interface, your cluster network stops working correctly.
19
19
- If your nodes include several network interfaces, you can attach a different network interface to a new bridge, and use that for your secondary network. This approach provides for traffic isolation from your primary cluster network.
20
20
21
+
[NOTE]
22
+
====
23
+
As a postinstallation task, you cannot make configuration changes to the `br-ex` bridge or its underlying interfaces in the `NodeNetworkConfigurationPolicy` (NNCP) resource. As a workaround, use a secondary network interface connected to your host or switch.
24
+
====
25
+
21
26
The `localnet1` network is mapped to the `br-ex` bridge in the following sharing-a-bridge example:
22
27
23
28
[source,yaml]
@@ -35,17 +40,16 @@ spec:
35
40
- localnet: localnet1
36
41
bridge: br-ex
37
42
state: present
38
-
# ...
39
43
----
40
-
44
+
+
41
45
where:
42
-
43
-
`name`:: The name for the configuration object.
46
+
+
47
+
`metadata.name`:: The name for the configuration object.
44
48
`node-role.kubernetes.io/worker`:: A node selector that specifies the nodes to apply the node network configuration policy to.
45
49
`localnet`:: The name for the secondary network from which traffic is forwarded to the OVS bridge. This secondary network must match the name of the `spec.config.name` field of the `NetworkAttachmentDefinition` CRD that defines the OVN-Kubernetes secondary network.
46
50
`bridge`:: The name of the OVS bridge on the node. This value is required only if you specify `state: present`.
47
51
`state`:: The state for the mapping. Must be either `present` to add the bridge or `absent` to remove the bridge. The default value is `present`.
48
-
52
+
+
49
53
The following JSON example configures a localnet secondary network that is named `localnet1`. Note that the value for the `mtu` parameter must match the MTU value that was set for the secondary network interface that is mapped to the `br-ex` bridge interface.
50
54
51
55
[source,json]
@@ -96,18 +100,18 @@ spec:
96
100
bridge: ovs-br1
97
101
state: present
98
102
----
99
-
103
+
+
100
104
where:
101
-
102
-
`name`:: Specifies the name of the configuration object.
105
+
+
106
+
`metadata.name`:: Specifies the name of the configuration object.
103
107
`node-role.kubernetes.io/worker`:: Specifies a node selector that identifies the nodes to which the node network configuration policy applies.
104
108
`interfaces.name`:: Specifies a new OVS bridge that operates separately from the default bridge used by OVN-Kubernetes for cluster traffic.
105
109
`mcast-snooping-enable`:: Specifies whether to enable multicast snooping. When enabled, multicast snooping prevents network devices from flooding multicast traffic to all network members. By default, an OVS bridge does not enable multicast snooping. The default value is `false`.
106
-
``port.name`:: Specifies the network device on the host system to associate with the new OVS bridge.
107
-
`bridge-mappings.localnet`:: Specifies the name of the secondary network that forwards traffic to the OVS bridge. This name must match the value of the `spec.config.name` field in the `NetworkAttachmentDefinition` CRD that defines the OVN-Kubernetes secondary network.
108
-
`bridge-mappings.bridge`:: Specifies the name of the OVS bridge on the node. The value is required only when `state: present` is set.
109
-
`bridge-mappings.state`:: Specifies the state of the mapping. Valid values are `present` to add the bridge or `absent` to remove the bridge. The default value is `present`.
110
-
110
+
`port.name`:: Specifies the network device on the host system to associate with the new OVS bridge.
111
+
`localnet`:: Specifies the name of the secondary network that forwards traffic to the OVS bridge. This name must match the value of the `spec.config.name` field in the `NetworkAttachmentDefinition` CRD that defines the OVN-Kubernetes secondary network.
112
+
`bridge`:: Specifies the name of the OVS bridge on the node. The value is required only when `state: present` is set.
113
+
`state`:: Specifies the state of the mapping. Valid values are `present` to add the bridge or `absent` to remove the bridge. The default value is `present`.
114
+
+
111
115
The following JSON example configures a localnet secondary network that is named `localnet2`. Note that the value for the `mtu` parameter must match the MTU value that was set for the `eth1` secondary network interface.
112
116
113
117
[source,json]
@@ -125,4 +129,3 @@ The following JSON example configures a localnet secondary network that is named
Copy file name to clipboardExpand all lines: modules/configuring-ovnk-use-second-ovs-bridge.adoc
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,11 @@ Currently, MEG is unsupported for use with other egress features, such as egress
17
17
18
18
You must define the additional bridge in an interface definition of a machine configuration manifest file. The Machine Config Operator uses the manifest to create a new file at `/etc/ovnk/extra_bridge` on the host. The new file includes the name of the network interface that the additional OVS bridge configures for a node.
19
19
20
+
[IMPORTANT]
21
+
====
22
+
Do not use the `nmstate` API to make configuration changes to the secondary interface that is defined in the `/etc/ovnk/extra_bridge` directory path. The `configure-ovs.sh` configuration script creates and manages OVS bridge interfaces, so any interruptive changes to these interfaces by the `nmstate` API can lead to network configuration instability.
23
+
====
24
+
20
25
After you create and edit the manifest file, the Machine Config Operator completes tasks in the following order:
21
26
22
27
. Drains nodes in singular order based on the selected machine configuration pool.
@@ -39,9 +44,9 @@ For more information about useful situations for the additional `br-ex1` bridge
39
44
+
40
45
[IMPORTANT]
41
46
====
42
-
Do not use the Kubernetes NMState Operator to define or a `NodeNetworkConfigurationPolicy` (NNCP) manifest file to define the additional interface.
47
+
Do not use the Kubernetes NMState Operator or a `NodeNetworkConfigurationPolicy` (NNCP) manifest file to define the additional interface. Ensure that the additional interface or sub-interfaces when defining a `bond` interface are not used by an existing `br-ex` OVN Kubernetes network deployment.
43
48
44
-
Also ensure that the additional interface or sub-interfaces when defining a `bond` interface are not used by an existing `br-ex` OVN Kubernetes network deployment.
49
+
As a postinstallation task, you cannot make configuration changes to the `br-ex` bridge or its underlying interfaces. As a workaround, use a secondary network interface connected to your host or switch.
45
50
====
46
51
+
47
52
.. Create the following interface definition files. These files get added to a machine configuration manifest file so that host nodes can access the definition files.
As an alternative to using the `configure-ovs.sh` shell script to set a `br-ex` bridge on a bare-metal platform, you can create a `NodeNetworkConfigurationPolicy` (NNCP) custom resource (CR) that includes an NMState configuration file.
23
23
24
+
[NOTE]
25
+
====
26
+
As a postinstallation task, do not make configuration changes to the `br-ex` bridge or its underlying interfaces.
27
+
====
28
+
24
29
The Kubernetes NMState Operator uses the NMState configuration file to create a customized `br-ex` bridge network configuration on each node in your cluster.
The `active-backup` mode provides fault tolerance for network connections by switching to a backup link where the primary link fails. The mode specifies the following ports for your cluster:
11
+
12
+
* An active port where one physical interface sends and receives traffic at any given time.
13
+
* A standby port where all other ports act as backup links and continously monitor their link status.
14
+
15
+
During a failover process, if an active port or its link fails, the bonding logic switches all network traffic to a standby port. This standby port becomes the new active port. For failover to work, all ports in a bond must share the same Media Access Control (MAC) address.
Copy file name to clipboardExpand all lines: modules/installation-network-user-infra.adoc
+3-9Lines changed: 3 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -94,17 +94,13 @@ During the initial boot, the machines require an IP address configuration that i
94
94
95
95
[NOTE]
96
96
====
97
-
* It is recommended to use a DHCP server for long-term management of the cluster machines. Ensure that the DHCP server is configured to provide persistent IP addresses, DNS server information, and hostnames to the cluster machines.
97
+
* Consider using a DHCP server for long-term management of the cluster machines. Ensure that the DHCP server is configured to provide persistent IP addresses, DNS server information, and hostnames to the cluster machines.
98
98
99
99
* If a DHCP service is not available for your user-provisioned infrastructure, you can instead provide the IP networking configuration and the address of the DNS server to the nodes at {op-system} install time. These can be passed as boot arguments if you are installing from an ISO image. See the _Installing {op-system} and starting the {product-title} bootstrap process_ section for more information about static IP provisioning and advanced networking options.
100
100
====
101
101
endif::ibm-z[]
102
102
103
-
The Kubernetes API server must be able to resolve the node names of the cluster
104
-
machines. If the API servers and worker nodes are in different zones, you can
105
-
configure a default DNS search zone to allow the API server to resolve the
106
-
node names. Another supported approach is to always refer to hosts by their
107
-
fully-qualified domain names in both the node objects and all DNS requests.
103
+
The Kubernetes API server must be able to resolve the node names of the cluster machines. If the API servers and worker nodes are in different zones, you can configure a default DNS search zone to allow the API server to resolve the node names. Another supported approach is to always refer to hosts by their fully-qualified domain names in both the node objects and all DNS requests.
You must configure the network connectivity between machines to allow {product-title} cluster
123
-
components to communicate. Each machine must be able to resolve the hostnames
124
-
of all other machines in the cluster.
118
+
You must configure the network connectivity between machines to allow {product-title} cluster components to communicate. Each machine must be able to resolve the hostnames of all other machines in the cluster.
125
119
126
120
This section provides details about the ports that are required.
This section illustrates the networking configuration and other advanced options that allow you to modify the {op-system-first} manual installation process. The following tables describe the kernel arguments and command-line options you can use with the {op-system} live installer and the `coreos-installer` command.
Optional: You can configure VLANs on individual interfaces by using the `vlan=` parameter.
@@ -220,7 +219,9 @@ ifndef::ibm-z-kvm[]
220
219
221
220
=== Bonding multiple network interfaces to a single interface
222
221
223
-
Optional: You can bond multiple network interfaces to a single interface by using the `bond=` option. Refer to the following examples:
222
+
As an optional configuration, you can bond multiple network interfaces to a single interface by using the `bond=` option. To apply this configuration to your cluster, complete the procedure steps for each node that runs on your cluster.
223
+
224
+
.Procedure
224
225
225
226
* The syntax for configuring a bonded interface is: `bond=<name>[:<network_interfaces>][:options]`
226
227
+
@@ -229,30 +230,28 @@ and _options_ is a comma-separated list of bonding options. Enter `modinfo bondi
229
230
230
231
* When you create a bonded interface using `bond=`, you must specify how the IP address is assigned and other
231
232
information for the bonded interface.
232
-
233
+
+
233
234
** To configure the bonded interface to use DHCP, set the bond's IP address to `dhcp`. For example:
234
235
+
235
236
[source,terminal]
236
237
----
237
-
bond=bond0:em1,em2:mode=active-backup
238
238
ip=bond0:dhcp
239
239
----
240
-
240
+
+
241
241
** To configure the bonded interface to use a static IP address, enter the specific IP address you want and related information. For example:
Always set the `fail_over_mac=1` option in active-backup mode, to avoid problems when shared OSA/RoCE cards are used.
@@ -287,9 +286,9 @@ ifndef::ibm-z[]
287
286
288
287
=== Bonding multiple SR-IOV network interfaces to a dual port NIC interface
289
288
290
-
Optional: You can bond multiple SR-IOV network interfaces to a dual port NIC interface by using the `bond=` option.
289
+
As an optional configuration, you can bond multiple SR-IOV network interfaces to a dual port NIC interface by using the `bond=` option.
291
290
292
-
On each node, you must perform the following tasks:
291
+
.Procedure
293
292
294
293
ifndef::installing-ibm-power[]
295
294
. Create the SR-IOV virtual functions (VFs) following the guidance in link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/configuring_and_managing_virtualization/managing-virtual-devices_configuring-and-managing-virtualization#managing-sr-iov-devices_managing-virtual-devices[Managing SR-IOV devices]. Follow the procedure in the "Attaching SR-IOV networking devices to virtual machines" section.
@@ -308,12 +307,14 @@ The following examples illustrate the syntax you must use:
308
307
309
308
* When you create a bonded interface using `bond=`, you must specify how the IP address is assigned and other information for the bonded interface.
310
309
311
-
** To configure the bonded interface to use DHCP, set the bond's IP address to `dhcp`. For example:
310
+
** To configure the bonded interface to use DHCP, set the `ip` parameter to `dhcp` as demonstrated in the following example:
312
311
+
313
312
[source,terminal]
314
313
----
315
314
bond=bond0:eno1f0,eno2f0:mode=active-backup
316
-
ip=bond0:dhcp
315
+
ip=bond0:dhcp::AA:BB:CC:DD:EE:FF
316
+
ip=eno1f0:none::AA:BB:CC:DD:EE:FF
317
+
ip=eno2f0:none::AA:BB:CC:DD:EE:FF
317
318
----
318
319
319
320
** To configure the bonded interface to use a static IP address, enter the specific IP address you want and related information. For example:
0 commit comments