Skip to content

Commit 61c5737

Browse files
committed
OSDOCS-14356-New: Added bond best practices info to networking docs
1 parent cc24885 commit 61c5737

16 files changed

+151
-66
lines changed

_topic_maps/_topic_map.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1748,6 +1748,8 @@ Topics:
17481748
File: verifying-connectivity-endpoint
17491749
- Name: Changing the cluster network MTU
17501750
File: changing-cluster-network-mtu
1751+
- Name: Network bonding considerations
1752+
File: network-bonding-considerations
17511753
- Name: Using Stream Control Transmission Protocol
17521754
File: using-sctp
17531755
- Name: Associating secondary interfaces metrics to network attachments

installing/installing_bare_metal/ipi/ipi-install-installation-workflow.adoc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,6 @@ include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset
3838
// Scale each machine set to compute nodes
3939
include::modules/creating-scaling-machine-sets-compute-nodes-networking.adoc[leveloffset=+2]
4040

41-
// Enabling OVS balance-slb mode for your cluster
42-
include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1]
43-
4441
// Establishing communication between subnets
4542
include::modules/ipi-install-establishing-communication-between-subnets.adoc[leveloffset=+1]
4643

installing/installing_bare_metal/upi/installing-bare-metal-network-customizations.adoc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,6 @@ include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset
8080
// Scale each machine set to compute nodes
8181
include::modules/creating-scaling-machine-sets-compute-nodes-networking.adoc[leveloffset=+2]
8282

83-
// Enabling OVS balance-slb mode for your cluster
84-
include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1]
85-
8683
include::modules/installation-infrastructure-user-infra.adoc[leveloffset=+1]
8784

8885
[role="_additional-resources"]

installing/installing_bare_metal/upi/installing-bare-metal.adoc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,6 @@ include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset
101101
// Scale each machine set to compute nodes
102102
include::modules/creating-scaling-machine-sets-compute-nodes-networking.adoc[leveloffset=+2]
103103

104-
// Enabling OVS balance-slb mode for your cluster
105-
include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1]
106-
107104
include::modules/installation-infrastructure-user-infra.adoc[leveloffset=+1]
108105

109106
[role="_additional-resources"]

installing/installing_bare_metal/upi/installing-restricted-networks-bare-metal.adoc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,6 @@ include::modules/creating-manifest-file-customized-br-ex-bridge.adoc[leveloffset
9595
// Scale each machine set to compute nodes
9696
include::modules/creating-scaling-machine-sets-compute-nodes-networking.adoc[leveloffset=+2]
9797

98-
// Enabling OVS balance-slb mode for your cluster
99-
include::modules/enabling-OVS-balance-slb-mode.adoc[leveloffset=+1]
100-
10198
include::modules/installation-infrastructure-user-infra.adoc[leveloffset=+1]
10299

103100
[role="_additional-resources"]

modules/configuring-localnet-switched-topology.adoc

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,9 @@
66
[id="configuration-localnet-switched-topology_{context}"]
77
= Configuration for a localnet switched topology
88

9-
// To accommodate a link to the NMstate Operator, the content in this module
10-
// is split with tags. The tag includes don't pull in the module header above.
11-
12-
// tag::localnet-intro[]
9+
[role="_abstract"]
1310
The switched `localnet` topology interconnects the workloads created as Network Attachment Definitions (NADs) through a cluster-wide logical switch to a physical network.
14-
// end::localnet-intro[]
1511

16-
// tag::localnet-content[]
1712
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).
1813

1914
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.
@@ -31,22 +26,25 @@ The `localnet1` network is mapped to the `br-ex` bridge in the following example
3126
apiVersion: nmstate.io/v1
3227
kind: NodeNetworkConfigurationPolicy
3328
metadata:
34-
name: mapping <1>
29+
name: mapping
3530
spec:
3631
nodeSelector:
37-
node-role.kubernetes.io/worker: '' <2>
32+
node-role.kubernetes.io/worker: ''
3833
desiredState:
3934
ovn:
4035
bridge-mappings:
41-
- localnet: localnet1 <3>
42-
bridge: br-ex <4>
43-
state: present <5>
36+
- localnet: localnet1
37+
bridge: br-ex
38+
state: present
4439
----
45-
<1> The name for the configuration object.
46-
<2> A node selector that specifies the nodes to apply the node network configuration policy to.
47-
<3> 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.
48-
<4> The name of the OVS bridge on the node. This value is required only if you specify `state: present`.
49-
<5> The state for the mapping. Must be either `present` to add the bridge or `absent` to remove the bridge. The default value is `present`.
40+
+
41+
where:
42+
+
43+
`metadata.name`:: The name for the configuration object.
44+
`node-role.kubernetes.io/worker::` A node selector that specifies the nodes to apply the node network configuration policy to.
45+
`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+
`bridge` The name of the OVS bridge on the node. This value is required only if you specify `state: present`.
47+
`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`.
5048
+
5149
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.
5250
+
@@ -74,13 +72,13 @@ In the following example, the `localnet2` network interface is attached to the `
7472
apiVersion: nmstate.io/v1
7573
kind: NodeNetworkConfigurationPolicy
7674
metadata:
77-
name: ovs-br1-multiple-networks <1>
75+
name: ovs-br1-multiple-networks
7876
spec:
7977
nodeSelector:
80-
node-role.kubernetes.io/worker: '' <2>
78+
node-role.kubernetes.io/worker: ''
8179
desiredState:
8280
interfaces:
83-
- name: ovs-br1 <3>
81+
- name: ovs-br1
8482
description: |-
8583
A dedicated OVS bridge with eth1 as a port
8684
allowing all VLANs and untagged traffic
@@ -90,23 +88,26 @@ spec:
9088
allow-extra-patch-ports: true
9189
options:
9290
stp: false
93-
mcast-snooping-enable: true <4>
91+
mcast-snooping-enable: true
9492
port:
95-
- name: eth1 <5>
93+
- name: eth1
9694
ovn:
9795
bridge-mappings:
98-
- localnet: localnet2 <6>
99-
bridge: ovs-br1 <7>
100-
state: present <8>
96+
- localnet: localnet2
97+
bridge: ovs-br1
98+
state: present
10199
----
102-
<1> Specifies the name of the configuration object.
103-
<2> Specifies a node selector that identifies the nodes to which the node network configuration policy applies.
104-
<3> Specifies a new OVS bridge that operates separately from the default bridge used by OVN-Kubernetes for cluster traffic.
105-
<4> 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-
<5> Specifies the network device on the host system to associate with the new OVS bridge.
107-
<6> 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-
<7> Specifies the name of the OVS bridge on the node. The value is required only when `state: present` is set.
109-
<8> 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`.
100+
+
101+
where:
102+
+
103+
`metadata.name`:: Specifies the name of the configuration object.
104+
`node-role.kubernetes.io/worker`:: Specifies a node selector that identifies the nodes to which the node network configuration policy applies.
105+
`interfaces.name`:: Specifies a new OVS bridge that operates separately from the default bridge used by OVN-Kubernetes for cluster traffic.
106+
`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`.
107+
`port.name`:: Specifies the network device on the host system to associate with the new OVS bridge.
108+
`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.
109+
`bridge`:: Specifies the name of the OVS bridge on the node. The value is required only when `state: present` is set.
110+
`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`.
110111
+
111112
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.
112113
+
@@ -125,4 +126,3 @@ The following JSON example configures a localnet secondary network that is named
125126
"excludeSubnets": "10.100.200.0/29"
126127
}
127128
----
128-
// end::localnet-content[]

modules/configuring-ovnk-use-second-ovs-bridge.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ For more information about useful situations for the additional `br-ex1` bridge
3939
+
4040
[IMPORTANT]
4141
====
42-
Do not use the Kubernetes NMState Operator to define or a `NodeNetworkConfigurationPolicy` (NNCP) manifest file to define the additional interface.
42+
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.
4343

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.
44+
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.
4545
====
4646
+
4747
.. 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.

modules/creating-manifest-file-customized-br-ex-bridge.adoc

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,14 @@ As an alternative to using the `configure-ovs.sh` shell script to set a `br-ex`
1919
endif::postinstall-bare-metal[]
2020

2121
ifdef::postinstall-bare-metal[]
22-
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. The Kubernetes NMState Operator uses the NMState configuration file to create a customized `br-ex` bridge network configuration on each node in your cluster.
22+
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+
24+
[NOTE]
25+
====
26+
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.
27+
====
28+
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.
2330

2431
[IMPORTANT]
2532
====
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * networking/advanced_networking/network-bonding-considerations.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="enabling-active-backup-mode_{context}"]
7+
= Enabling active-backup mode for your cluster
8+
9+
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:
10+
11+
* An active port where one physical interface sends and receives traffic at any given time.
12+
* A standby port where all other ports act as backup links and continously monitor their link status.
13+
14+
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.
15+

modules/installation-network-user-infra.adoc

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,13 @@ During the initial boot, the machines require an IP address configuration that i
8989

9090
[NOTE]
9191
====
92-
* 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.
92+
* 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.
9393
9494
* 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.
9595
====
9696
endif::ibm-z[]
9797

98-
The Kubernetes API server must be able to resolve the node names of the cluster
99-
machines. If the API servers and worker nodes are in different zones, you can
100-
configure a default DNS search zone to allow the API server to resolve the
101-
node names. Another supported approach is to always refer to hosts by their
102-
fully-qualified domain names in both the node objects and all DNS requests.
98+
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.
10399
endif::azure,gcp[]
104100

105101
ifndef::ibm-z,azure[]
@@ -114,9 +110,7 @@ endif::ibm-z,azure[]
114110
[id="installation-network-connectivity-user-infra_{context}"]
115111
== Network connectivity requirements
116112

117-
You must configure the network connectivity between machines to allow {product-title} cluster
118-
components to communicate. Each machine must be able to resolve the hostnames
119-
of all other machines in the cluster.
113+
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.
120114

121115
This section provides details about the ports that are required.
122116

0 commit comments

Comments
 (0)