OpenShift Virtualization 使用自定义资源和插件提供高级网络功能。虚拟机 (VM) 与 Red Hat OpenShift Service on AWS 网络及其生态系统集成。
您不能在单栈 IPv6 集群上运行 OpenShift Virtualization。 |
下图说明了 OpenShift Virtualization 的典型网络设置。其他配置也是可能的。
Pod 和虚拟机运行在相同的网络基础架构上,这使您可以轻松连接容器化和虚拟化工作负载。
您可以将虚拟机连接到默认 Pod 网络以及任意数量的辅助网络。
默认 Pod 网络在其所有成员之间提供连接、服务抽象、IP 管理、微分段和其他功能。
Multus 是一种“元”CNI 插件,它允许 Pod 或虚拟机使用其他兼容的 CNI 插件连接到其他网络接口。
默认的 Pod 网络基于覆盖网络,通过底层机器网络进行隧道传输。
机器网络可以在选定的网络接口控制器 (NIC) 集上定义。
次要虚拟机网络通常直接桥接到物理网络,可以使用或不使用 VLAN 封装。也可以为次要网络创建虚拟覆盖网络。
在 AWS 上的 Red Hat OpenShift Service 中不支持将虚拟机直接连接到底层网络。 |
如图 1 所示,次要虚拟机网络可以在专用 NIC 集上定义,也可以使用机器网络。
以下术语贯穿 OpenShift 虚拟化文档
一个云原生计算基金会项目,专注于容器网络连接。OpenShift 虚拟化使用 CNI 插件来构建 Kubernetes 网络的基本功能。
一个“元”CNI插件,允许多个CNI共存,以便Pod或虚拟机可以使用其所需的接口。
一个Kubernetes API资源,允许您定义自定义资源,或使用CRD API资源定义的对象。
Multus项目引入的一个CRD,允许您将Pod、虚拟机和虚拟机实例连接到一个或多个网络。
每个VM默认连接到默认内部Pod网络。您可以通过编辑VM规范来添加或删除网络接口。
您可以通过创建Service
对象来公开集群内或集群外的VM。
您可以使用OVN-Kubernetes容器网络接口 (CNI) 插件将虚拟机连接到辅助网络。连接到辅助网络接口时,无需在VM规范中指定主Pod网络。
您可以将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
拓扑的辅助接口的热插拔和热拔出。
您可以在创建VM时配置辅助网络接口的IP地址。IP地址由cloud-init配置。您可以使用Red Hat OpenShift Service on AWS Web控制台或命令行查看VM的IP地址。网络信息由QEMU访客代理收集。
OpenShift Virtualization与OpenShift Service Mesh集成。您可以监控、可视化和控制Pod和虚拟机之间的流量。
KubeMacPool组件从共享MAC地址池分配VM网络接口的MAC地址。这确保每个网络接口都被分配一个唯一的MAC地址。从该VM创建的虚拟机实例在重启后保留分配的MAC地址。
您可以使用以下方法配置对VM的SSH访问
您可以创建一个SSH密钥对,将公钥添加到VM,然后使用私钥运行virtctl ssh
命令来连接到VM。
您可以将公钥SSH密钥添加到Red Hat Enterprise Linux (RHEL) 9 VM的运行时,或首次启动可以使用cloud-init数据源配置的访客操作系统的VM。
您可以将virtctl port-forward
命令添加到您的.ssh/config
文件中,并使用OpenSSH连接到VM。
您可以创建一个服务,将服务与VM关联,并连接到服务公开的IP地址和端口。
您可以配置辅助网络,将VM连接到辅助网络接口,并连接到其分配的IP地址。