|
6 | 6 | [id="microshift-multus-intro_{context}"]
|
7 | 7 | = Additional networks in {microshift-short}
|
8 | 8 |
|
9 |
| -During cluster installation, the _default_ pod network is configured with default values unless you customize the configuration. The default network handles all ordinary network traffic for the cluster. Using the Multus CNI plugin, you can add additional interfaces to pods from other networks. This gives you flexibility when you configure pods that deliver network functionality, such as switching or routing. |
| 9 | +During cluster installation, the _default_ pod network is configured with default values unless you customize the configuration. The default network handles all ordinary network traffic for the cluster. Using the {microshift-short} Multus CNI plugin, you can add additional interfaces to pods from other networks. This gives you flexibility when you configure pods that deliver network functionality, such as switching or routing. |
10 | 10 |
|
11 |
| -[id="additional-network-use-cases"] |
| 11 | +[id="microshift-supported-additional-networks_{context}"] |
| 12 | +== Supported additional networks for network isolation |
| 13 | +The following additional networks are supported in {microshift-short} {product-version}: |
| 14 | + |
| 15 | +* Bridge: Allows pods on the same host to communicate with each other and the host. |
| 16 | + |
| 17 | +* IPVLAN: Allows pods on a host to communicate with other hosts. |
| 18 | +** This is similar to a MACVLAN-based additional network. |
| 19 | +** Each pod shares the same MAC address as the parent physical network interface, unlike a MACVLAN-based additional network. |
| 20 | + |
| 21 | +* MACVLAN: Allows pods on a host to communicate with other hosts and the pods on those other hosts by using a physical network interface. Each pod that is attached to a MACVLAN-based additional network is provided with a unique MAC address. |
| 22 | + |
| 23 | +[NOTE] |
| 24 | +==== |
| 25 | +Setting network policies for additional networks is not supported. |
| 26 | +==== |
| 27 | + |
| 28 | +[id="microshift-additional-network-use-cases_{context}"] |
12 | 29 | == Use case: Additional networks for network isolation
|
13 | 30 |
|
14 |
| -You can use an additional network in situations where network isolation is needed, including control plane and data plane separation. You can create additional interfaces for pods to connect to that network in addition to a default. For example, you can configure an additional interface if you want pods to access a network on the host and also communicate with devices deployed to the edge that are on an isolated operator network or are periodically disconnected. |
| 31 | +You can use an additional network in situations where network isolation is needed, including control plane and data plane separation. You can create additional interfaces for pods to connect to that network in addition to a default. For example, you can configure an additional interface if you want pods to access a network on the host and also communicate with devices deployed to the edge. These edge devices might be on an isolated operator network or are periodically disconnected. |
15 | 32 |
|
16 | 33 | Isolating network traffic is useful for the following performance and security reasons:
|
17 | 34 |
|
18 | 35 | Performance:: You can send traffic on two different planes to manage the amount of traffic on each plane.
|
19 | 36 | Security:: You can send sensitive traffic onto a network plane that is managed specifically for security considerations, and you can separate private data that must not be shared between tenants or customers.
|
20 | 37 |
|
21 |
| -[id="additional-network-how-implemented"] |
| 38 | +[IMPORTANT] |
| 39 | +==== |
| 40 | +The Multus CNI plugin is deployed when the {microshift-short} service starts up. Therefore, a host restart is required if the `microshift-multus` RPM package is added after {microshift-short} has started. Restarting ensures that all containers are re-created with Multus annotations. |
| 41 | +==== |
| 42 | + |
| 43 | +[id="microshift-additional-network-how-implemented_{context}"] |
22 | 44 | == How additional networks are implemented
|
23 | 45 |
|
24 |
| -All of the pods in the cluster still use the cluster-wide default network to maintain connectivity across the cluster. Every pod has an `eth0` interface that is attached to the cluster-wide pod network. You can view the interfaces for a pod by using the `oc exec -it <pod_name> \-- ip a` command. If you add additional network interfaces that use Multus CNI, they are named `net1`, `net2`, ..., `netN`. |
| 46 | +All of the pods in the cluster still use the cluster-wide default network to maintain connectivity across the cluster. Every pod has an `eth0` interface that is attached to the cluster-wide pod network. |
| 47 | + |
| 48 | +* You can view the interfaces for a pod by using the `oc get pod <pod_name> -o=jsonpath='{ .metadata.annotations.k8s\.v1\.cni\.cncf\.io/network-status }'` command. |
| 49 | +* If you add additional network interfaces that use the {microshift-short} Multus CNI, they are named `net1`, `net2`, ..., `netN`. |
| 50 | +* The CNI configuration is created when the {microshift-short} Multus DaemonSet starts. This configuration is autogenerated and includes the primary CNI that is the default delegate. For {microshift-short}, the default CNI is OVN-Kubernetes. |
| 51 | + |
| 52 | +[id="microshift-additional-network-how-attached-pods_{context}"] |
| 53 | +== How to attached additional networks to pods |
| 54 | + |
| 55 | +To attach additional network interfaces to a pod, you must create and apply configurations that define how the interfaces are attached. |
| 56 | + |
| 57 | +* You must configure any additional networks you want to use. Because of individual differences in networks, no default configuration is provided. |
| 58 | +* You must apply YAML manifest to specify each interface by using a `NetworkAttachmentDefinition` custom resource (CR). A configuration inside each of these CRs defines how that interface is created. |
| 59 | +* CRI-O must be configured to use Multus. A default configuration is included in the `microshift-multus` RPM. |
| 60 | +** If the Multus CNI is installed on an existing {microshift-short} instance, the host must be restarted. |
| 61 | +** If the Multus CNI is installed alongside {microshift-short}, you can add CRs and pods and then start the {microshift-short} service. Restarting the host in this scenario is not needed. |
25 | 62 |
|
26 |
| -To attach additional network interfaces to a pod, you must create configurations that define how the interfaces are attached. You specify each interface by using a `NetworkAttachmentDefinition` custom resource (CR). A configuration inside each of these CRs defines how that interface is created. |
| 63 | +[id="microshift-config-examples-additional-networks_{context}"] |
| 64 | +== Configurations for additional network types |
| 65 | +The specific configuration fields for additional networks is described in the following sections. |
0 commit comments