×

OpenShift Virtualization 使用自定义资源和插件提供高级网络功能。虚拟机 (VM) 与 Red Hat OpenShift Service on AWS 网络及其生态系统集成。

您不能在单栈 IPv6 集群上运行 OpenShift Virtualization。

下图说明了 OpenShift Virtualization 的典型网络设置。其他配置也是可能的。

OpenShift Virtualization networking architecture
图 1. OpenShift Virtualization 网络概述

20 Pod 和虚拟机运行在相同的网络基础架构上,这使您可以轻松连接容器化和虚拟化工作负载。

20您可以将虚拟机连接到默认 Pod 网络以及任意数量的辅助网络。

20 默认 Pod 网络在其所有成员之间提供连接、服务抽象、IP 管理、微分段和其他功能。

20 Multus 是一种“元”CNI 插件,它允许 Pod 或虚拟机使用其他兼容的 CNI 插件连接到其他网络接口。

20 默认的 Pod 网络基于覆盖网络,通过底层机器网络进行隧道传输。

20 机器网络可以在选定的网络接口控制器 (NIC) 集上定义。

20 次要虚拟机网络通常直接桥接到物理网络,可以使用或不使用 VLAN 封装。也可以为次要网络创建虚拟覆盖网络。

在 AWS 上的 Red Hat OpenShift Service 中不支持将虚拟机直接连接到底层网络。

20 如图 1 所示,次要虚拟机网络可以在专用 NIC 集上定义,也可以使用机器网络。

OpenShift 虚拟化网络术语表

以下术语贯穿 OpenShift 虚拟化文档

容器网络接口 (CNI)

一个云原生计算基金会项目,专注于容器网络连接。OpenShift 虚拟化使用 CNI 插件来构建 Kubernetes 网络的基本功能。

Multus

一个“元”CNI插件,允许多个CNI共存,以便Pod或虚拟机可以使用其所需的接口。

自定义资源定义 (CRD)

一个Kubernetes API资源,允许您定义自定义资源,或使用CRD API资源定义的对象。

网络附加定义 (NAD)

Multus项目引入的一个CRD,允许您将Pod、虚拟机和虚拟机实例连接到一个或多个网络。

使用默认Pod网络

将虚拟机连接到默认Pod网络

每个VM默认连接到默认内部Pod网络。您可以通过编辑VM规范来添加或删除网络接口。

将虚拟机作为服务公开

您可以通过创建Service对象来公开集群内或集群外的VM。

配置VM辅助网络接口

您可以使用OVN-Kubernetes容器网络接口 (CNI) 插件将虚拟机连接到辅助网络。连接到辅助网络接口时,无需在VM规范中指定主Pod网络。

将虚拟机连接到OVN-Kubernetes辅助网络

您可以将VM连接到Open Virtual Network (OVN)-Kubernetes辅助网络。OpenShift Virtualization支持OVN-Kubernetes的layer2拓扑。

layer2拓扑通过集群范围的逻辑交换机连接工作负载。OVN-Kubernetes CNI插件使用Geneve(通用网络虚拟化封装)协议在节点之间创建覆盖网络。您可以使用此覆盖网络连接不同节点上的VM,而无需配置任何额外的物理网络基础设施。

要配置OVN-Kubernetes辅助网络并将VM连接到该网络,请执行以下步骤

热插拔次要网络接口

您可以添加或删除辅助网络接口,而无需停止VM。OpenShift Virtualization支持使用桥接绑定和OVN-Kubernetes layer2拓扑的辅助接口的热插拔和热拔出。

配置和查看 IP 地址

您可以在创建VM时配置辅助网络接口的IP地址。IP地址由cloud-init配置。您可以使用Red Hat OpenShift Service on AWS Web控制台或命令行查看VM的IP地址。网络信息由QEMU访客代理收集。

与OpenShift Service Mesh集成

将虚拟机连接到服务网格

OpenShift Virtualization与OpenShift Service Mesh集成。您可以监控、可视化和控制Pod和虚拟机之间的流量。

管理MAC地址池

管理网络接口的 MAC 地址池

KubeMacPool组件从共享MAC地址池分配VM网络接口的MAC地址。这确保每个网络接口都被分配一个唯一的MAC地址。从该VM创建的虚拟机实例在重启后保留分配的MAC地址。

配置SSH访问

配置对虚拟机的SSH访问

您可以使用以下方法配置对VM的SSH访问

  • virtctl ssh 命令

    您可以创建一个SSH密钥对,将公钥添加到VM,然后使用私钥运行virtctl ssh命令来连接到VM。

    您可以将公钥SSH密钥添加到Red Hat Enterprise Linux (RHEL) 9 VM的运行时,或首次启动可以使用cloud-init数据源配置的访客操作系统的VM。

  • virtctl port-forward 命令

    您可以将virtctl port-forward命令添加到您的.ssh/config文件中,并使用OpenSSH连接到VM。

  • 服务

    您可以创建一个服务,将服务与VM关联,并连接到服务公开的IP地址和端口。

  • 辅助网络

    您可以配置辅助网络,将VM连接到辅助网络接口,并连接到其分配的IP地址。