Skip to content

Commit 75311cc

Browse files
authored
Merge pull request #69551 from sjhala-ccs/cnv-25649
CNV#25649: Added networking overview
2 parents b066238 + 6e6e312 commit 75311cc

File tree

4 files changed

+122
-11
lines changed

4 files changed

+122
-11
lines changed

_topic_maps/_topic_map.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3946,6 +3946,8 @@ Topics:
39463946
- Name: Networking
39473947
Dir: vm_networking
39483948
Topics:
3949+
- Name: Networking configuration overview
3950+
File: virt-networking-overview
39493951
- Name: Connecting a VM to the default pod network
39503952
File: virt-connecting-vm-to-default-pod-network
39513953
- Name: Exposing a VM by using a service

modules/virt-networking-glossary.adoc

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,18 @@
77
[id="virt-networking-glossary_{context}"]
88
= {VirtProductName} networking glossary
99

10-
{VirtProductName} provides advanced networking functionality by using custom resources and plugins.
11-
1210
The following terms are used throughout {VirtProductName} documentation:
1311

14-
Container Network Interface (CNI):: a link:https://www.cncf.io/[Cloud Native Computing Foundation]
12+
Container Network Interface (CNI):: A link:https://www.cncf.io/[Cloud Native Computing Foundation]
1513
project, focused on container network connectivity.
1614
{VirtProductName} uses CNI plugins to build upon the basic Kubernetes networking functionality.
1715

18-
Multus:: a "meta" CNI plugin that allows multiple CNIs to exist so that a pod or virtual machine can use the interfaces it needs.
16+
Multus:: A "meta" CNI plugin that allows multiple CNIs to exist so that a pod or virtual machine can use the interfaces it needs.
1917

20-
Custom resource definition (CRD):: a link:https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/[Kubernetes]
18+
Custom resource definition (CRD):: A link:https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/[Kubernetes]
2119
API resource that allows you to define custom resources, or an object defined by using the CRD API resource.
2220

23-
Network attachment definition (NAD):: a CRD introduced by the Multus project that allows you to attach pods, virtual machines, and virtual machine instances to one or more networks.
21+
Network attachment definition (NAD):: A CRD introduced by the Multus project that allows you to attach pods, virtual machines, and virtual machine instances to one or more networks.
2422

25-
Node network configuration policy (NNCP):: a description of the requested network configuration on nodes.
23+
Node network configuration policy (NNCP):: A CRD introduced by the nmstate project, describing the requested network configuration on nodes.
2624
You update the node network configuration, including adding and removing interfaces, by applying a `NodeNetworkConfigurationPolicy` manifest to the cluster.
27-
28-
Preboot eXecution Environment (PXE):: an interface that enables an administrator to boot a client machine from a server over the network.
29-
Network booting allows you to remotely load operating systems and other software onto the client.
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
:_mod-docs-content-type: ASSEMBLY
2+
[id="virt-networking"]
3+
= Networking overview
4+
include::_attributes/common-attributes.adoc[]
5+
:context: virt-networking-overview
6+
7+
toc::[]
8+
9+
{VirtProductName} provides advanced networking functionality by using custom resources and plugins. Virtual machines (VMs) are integrated with {product-title} networking and its ecosystem.
10+
11+
include::modules/virt-networking-glossary.adoc[leveloffset=+1]
12+
13+
14+
[id="default-network-config"]
15+
== Using the default pod network
16+
17+
xref:../../virt/vm_networking/virt-connecting-vm-to-default-pod-network.adoc#virt-connecting-vm-to-default-pod-network[Connecting a virtual machine to the default pod network]::
18+
19+
Each VM is connected by default to the default internal pod network. You can add or remove network interfaces by editing the VM specification.
20+
21+
xref:../../virt/vm_networking/virt-exposing-vm-with-service.adoc#virt-exposing-vm-with-service[Exposing a virtual machine as a service]::
22+
23+
You can expose a VM within the cluster or outside the cluster by creating a `Service` object. For on-premise clusters, you can configure a load balancing service by using the MetalLB Operator. You can xref:../../networking/metallb/metallb-operator-install.adoc#metallb-operator-install[install the MetalLB Operator] by using the {product-title} web console or the CLI.
24+
25+
[id="secondary-network-config"]
26+
== Configuring VM secondary network interfaces
27+
28+
xref:../../virt/vm_networking/virt-connecting-vm-to-linux-bridge.adoc#virt-connecting-vm-to-linux-bridge[Connecting a virtual machine to a Linux bridge network]::
29+
30+
xref:../../networking/k8s_nmstate/k8s-nmstate-about-the-k8s-nmstate-operator.adoc#k8s-nmstate-about-the-k8s-nmstate-operator[Install the Kubernetes NMState Operator] to configure Linux bridges, VLANs, and bondings for your secondary networks.
31+
+
32+
You can create a Linux bridge network and attach a VM to the network by performing the following steps:
33+
34+
. xref:../../virt/vm_networking/virt-connecting-vm-to-linux-bridge.adoc#virt-creating-linux-bridge-nncp_virt-connecting-vm-to-linux-bridge[Configure a Linux bridge network device] by creating a `NodeNetworkConfigurationPolicy` custom resource definition (CRD).
35+
. xref:../../virt/vm_networking/virt-connecting-vm-to-linux-bridge.adoc#creating-linux-bridge-nad[Configure a Linux bridge network] by creating a `NetworkAttachmentDefinition` CRD.
36+
. xref:../../virt/vm_networking/virt-connecting-vm-to-linux-bridge.adoc#configuring-vm-network-interface[Connect the VM to the Linux bridge network] by including the network details in the VM configuration.
37+
38+
xref:../../virt/vm_networking/virt-connecting-vm-to-sriov.adoc#virt-connecting-vm-to-sriov[Connecting a virtual machine to an SR-IOV network]::
39+
40+
You can use Single Root I/O Virtualization (SR-IOV) network devices with additional networks on your {product-title} cluster installed on bare metal or Red Hat OpenStack Platform (RHOSP) infrastructure for applications that require high bandwidth or low latency.
41+
+
42+
You must xref:../../networking/hardware_networks/installing-sriov-operator.adoc#installing-sriov-operator[install the SR-IOV Network Operator] on your cluster to manage SR-IOV network devices and network attachments.
43+
+
44+
You can connect a VM to an SR-IOV network by performing the following steps:
45+
46+
. xref:../../virt/vm_networking/virt-connecting-vm-to-sriov.adoc#nw-sriov-configuring-device_virt-connecting-vm-to-sriov[Configure an SR-IOV network device] by creating a `SriovNetworkNodePolicy` CRD.
47+
. xref:../../virt/vm_networking/virt-connecting-vm-to-sriov.adoc#nw-sriov-network-attachment_virt-connecting-vm-to-sriov[Configure an SR-IOV network] by creating an `SriovNetwork` object.
48+
. xref:../../virt/vm_networking/virt-connecting-vm-to-sriov.adoc#virt-attaching-vm-to-sriov-network_virt-connecting-vm-to-sriov[Connect the VM to the SR-IOV network] by including the network details in the VM configuration.
49+
50+
51+
xref:../../virt/vm_networking/virt-connecting-vm-to-ovn-secondary-network.adoc#virt-connecting-vm-to-ovn-secondary-network[Connecting a virtual machine to an OVN-Kubernetes secondary network]::
52+
53+
You can connect a VM to an Open Virtual Network (OVN)-Kubernetes secondary network. To configure an OVN-Kubernetes secondary network and attach a VM to that network, perform the following steps:
54+
55+
. xref:../../virt/vm_networking/virt-connecting-vm-to-ovn-secondary-network.adoc#creating-ovn-layer2-nad[Configure an OVN-Kubernetes secondary network] by creating a `NetworkAttachmentDefinition` CRD.
56+
57+
. xref:../../virt/vm_networking/virt-connecting-vm-to-ovn-secondary-network.adoc#attaching-vm-to-ovn-secondary-nw[Connect the VM to the OVN-Kubernetes secondary network] by adding the network details to the VM specification.
58+
59+
xref:../../virt/vm_networking/virt-hot-plugging-network-interfaces.adoc#virt-hot-plugging-network-interfaces[Hot plugging secondary network interfaces]::
60+
61+
You can add or remove secondary network interfaces without stopping your VM. {VirtProductName} supports hot plugging and hot unplugging for Linux bridge interfaces that use the VirtIO device driver.
62+
63+
xref:../../virt/vm_networking/virt-using-dpdk-with-sriov.adoc#virt-using-dpdk-with-sriov[Using DPDK with SR-IOV]::
64+
65+
The Data Plane Development Kit (DPDK) provides a set of libraries and drivers for fast packet processing. You can configure clusters and VMs to run DPDK workloads over SR-IOV networks.
66+
67+
xref:../../virt/vm_networking/virt-dedicated-network-live-migration.adoc#virt-dedicated-network-live-migration[Configuring a dedicated network for live migration]::
68+
69+
You can configure a dedicated xref:../../virt/vm_networking/virt-connecting-vm-to-linux-bridge.adoc#virt-connecting-vm-to-linux-bridge[Multus network] for live migration. A dedicated network minimizes the effects of network saturation on tenant workloads during live migration.
70+
71+
xref:../../virt/vm_networking/virt-accessing-vm-secondary-network-fqdn.adoc#virt-accessing-vm-secondary-network-fqdn[Accessing a virtual machine by using the cluster FQDN]::
72+
73+
You can access a VM that is attached to a secondary network interface from outside the cluster by using its fully qualified domain name (FQDN).
74+
75+
xref:../../virt/vm_networking/virt-configuring-viewing-ips-for-vms.adoc#virt-configuring-viewing-ips-for-vms[Configuring and viewing IP addresses]::
76+
77+
You can configure an IP address of a secondary network interface when you create a VM. The IP address is provisioned with cloud-init. You can view the IP address of a VM by using the {product-title} web console or the command line. The network information is collected by the QEMU guest agent.
78+
79+
80+
[id="service-mesh-integration"]
81+
== Integrating with OpenShift Service Mesh
82+
xref:../../virt/vm_networking/virt-connecting-vm-to-service-mesh.adoc#virt-connecting-vm-to-service-mesh[Connecting a virtual machine to a service mesh]::
83+
84+
{VirtProductName} is integrated with OpenShift Service Mesh. You can monitor, visualize, and control traffic between pods and virtual machines.
85+
86+
[id="managing-mac-address-pools"]
87+
== Managing MAC address pools
88+
xref:../../virt/vm_networking/virt-using-mac-address-pool-for-vms.adoc#virt-using-mac-address-pool-for-vms[Managing MAC address pools for network interfaces]::
89+
90+
The KubeMacPool component allocates MAC addresses for VM network interfaces from a shared MAC address pool. This ensures that each network interface is assigned a unique MAC address. A virtual machine instance created from that VM retains the assigned MAC address across reboots.
91+
92+
[id="vm-ssh-access"]
93+
== Configuring SSH access
94+
xref:../../virt/virtual_machines/virt-accessing-vm-ssh.adoc#virt-accessing-vm-ssh[Configuring SSH access to virtual machines]::
95+
96+
You can configure SSH access to VMs by using the following methods:
97+
98+
* xref:../../virt/virtual_machines/virt-accessing-vm-ssh.adoc#using-virtctl-ssh_virt-accessing-vm-ssh[`virtctl ssh` command]
99+
+
100+
You create an SSH key pair, add the public key to a VM, and connect to the VM by running the `virtctl ssh` command with the private key.
101+
+
102+
You can add public SSH keys to {op-system-base-full} 9 VMs at runtime or at first boot to VMs with guest operating systems that can be configured by using a cloud-init data source.
103+
104+
* xref:../../virt/virtual_machines/virt-accessing-vm-ssh.adoc#virt-using-virtctl-port-forward-command_virt-accessing-vm-ssh[`virtctl port-forward` command]
105+
+
106+
You add the `virtctl port-foward` command to your `.ssh/config` file and connect to the VM by using OpenSSH.
107+
108+
* xref:../../virt/virtual_machines/virt-accessing-vm-ssh.adoc#using-services-ssh_virt-accessing-vm-ssh[Service]
109+
+
110+
You create a service, associate the service with the VM, and connect to the IP address and port exposed by the service.
111+
112+
* xref:../../virt/virtual_machines/virt-accessing-vm-ssh.adoc#using-secondary-networks-ssh_virt-accessing-vm-ssh[Secondary network]
113+
+
114+
You configure a secondary network, attach a VM to the secondary network interface, and connect to its allocated IP address.

virt/vm_networking/virt-using-mac-address-pool-for-vms.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ toc::[]
88

99
The _KubeMacPool_ component allocates MAC addresses for virtual machine (VM) network interfaces from a shared MAC address pool. This ensures that each network interface is assigned a unique MAC address.
1010

11-
Virtual machine instances created from that VM retain the assigned MAC address across reboots.
11+
A virtual machine instance created from that VM retains the assigned MAC address across reboots.
1212

1313
[NOTE]
1414
====

0 commit comments

Comments
 (0)