了解 VPC 群集中的虚拟网络接口
虚拟私有云 4.20 后来 仅限裸机工作节点
虚拟网络接口(VNI)为在 Red Hat OpenShift on IBM Cloud VPC 集群上运行的带有裸机工作节点的工作负载提供了高级网络连接选项。
什么是虚拟网络接口?
虚拟网络接口(VNI)是 IBM Cloud VPC 抽象,代表单个网络连接。 虚拟网络标识嵌入了网络连接的属性,包括
- IP 地址(一级和二级)
- MAC 地址
- VPC 子网关联
- 安全小组成员资格
VNI 仅适用于运行 Red Hat CoreOS (RHCOS) 的裸机工作节点集群。
OpenShift 集群中的 VNI 架构
静态虚拟网络标识
在 IBM Cloud VPC 中创建基于裸机的 Red Hat OpenShift on IBM Cloud 群集或添加新的裸机工作池时,会自动创建两个 VNI 并连接到每个裸机工作节点:
- 初级 VNI
- 处理普通工作站流量,包括 pod 网络、覆盖用户定义网络 (UDN) 以及与群集主站的通信。
- 二级 VNI(运载工具)
- 充当您管理的动态 VNI 附件的载体。 通过此 VNI,您可以为在工作节点上运行的工作负载附加额外的网络接口。
动态虚拟网络标识
动态 VNI 在群集创建后按需创建和管理。 这些虚拟网络标识可以是
- 附属于特定的工作节点
- 配置为在同一区域的工作人员之间浮动
- 用于直接连接 VPC 网络
主要功能
- 直接 VPC 连接
- VNI 可使工作负载绕过 pod 网络叠加,直接连接到 VPC 网络。 这提供了本地 VPC 网络功能,如安全组、网络 ACL 和路由选择。
- 安全组集成
- VNI 可与 VPC 安全组关联,在接口级提供细粒度网络访问控制。
- 特定区域联网
- VNI 连接到特定的 VPC 子网和区域。 它们只能处理在配置 VNI 的同一区域内集群工作者上运行的工作负载的流量。
- 迁移过程中的网络保护
- 对于支持实时迁移的工作负载(如 OpenShift Virtualization 虚拟机),VNI 可以在同一区域内的裸机工作实例之间隐式浮动和跟踪工作负载,从而保留网络连接。
用例
- OpenShift 虚拟化
- 为虚拟机启用直接 VPC 网络连接,允许虚拟机拥有自己的 VPC IP 地址。 请参阅 管理 OpenShift 虚拟化的虚拟网络接口。
- 多网络工作负载
- 将工作负载同时连接到多个 VPC 子网,实现复杂的网络拓扑结构和流量隔离。
- 遗留应用程序迁移
- 为需要特定 IP 地址或直接网络访问的容器化应用提供类似 VM 的网络。
- 网络功能虚拟化
- 部署需要直接访问 VPC 网络功能的网络功能。
局限性和考虑因素
- 静态 VNI 修改
- 不要修改为每个工作节点自动创建的静态 VNI。 虽然这些 VNI 在您的 VPC 账户中可见,但不支持对其设置进行任何更改。 这包括附加浮动 IP、更改安全组或修改任何其他 VNI 属性。 修改静态 VNI 可能会导致群集连接问题。
- 浮动附件的 VNI 修改限制
- 不能修改浮动(群集作用域)动态附件的 VNI 属性。 这包括更改 VNI 名称、浮动 IP 地址、基础架构 NAT 设置和安全组分配。 要更新这些设置,必须先分离 VNI,进行更改,然后将其重新连接到群集。 这种限制是暂时的。
- 区域限制
- 虚拟网络标识不能在区域之间浮动。 在多区集群中,VNI 只能为配置 VNI 的同一区中的工作负载处理流量。
- 裸机要求
- VNI 仅支持裸机工作节点。 虚拟服务器实例 (VSI) 工作节点不支持 VNI。
- RHCOS 要求
- 工作节点必须运行 Red Hat CoreOS (RHCOS) 操作系统。
- OVN- Kubernetes CNI
- 集群必须使用 OVN- Kubernetes Container Network Interface (CNI) 插件。
- 跨账户管理
- 在 Red Hat OpenShift on IBM Cloud 中,工作节点是在 IBM 的账户中配置的,而不是您的账户。 这意味着 VNI 生命周期管理不同于独立的 VPC 裸机实例,您对 VNI 附件的可见性也不同。
- 版本要求
- 支持 VNI 需要 OpenShift 4.20 或更高版本。
先决条件
在群集中使用 VNI 之前,请确保您已具备以下条件
- 版本为 4.20 或更高版本的 Red Hat OpenShift on IBM Cloud 集群
- 集群中的裸机工作节点
- Red Hat CoreOS (工作节点上的操作系统(RHCOS)
- OVN- Kubernetes CNI 已配置
- 具有适当子网的 VPC 基础设施
- 操作员平台访问角色为 Kubernetes Service 在 IBM Cloud IAM
- IBM Cloud IAM 中 VPC 基础设施服务的编辑或管理员平台访问角色
管理虚拟网络标识
您可以通过 IBM Cloud 控制台或 CLI 管理 VNI。
从控制台附加虚拟网络接口
-
在导航菜单中,单击网络 > VNI 附件。
-
单击附加 VNI。
-
在“附加 VNI”面板中,配置以下设置:
- 子网:选择 VNI 所在子网。
- 工作节点:选择一个特定的工作节点,或选择浮动 VNI 附件的所有工作节点。
- VNI:选择要连接的 VNI。
- VLAN ID:输入与网络配置相匹配的 VLAN ID(范围:1-500)。
- 自动删除:可选。 选择从群集中删除 VNI 时自动删除。
-
单击连接。
从 CLI 附加 VNI
要将 VNI 附加到特定裸机工作节点,请使用 vni attach baremetal 命令。 您必须指定一个与网络配置相匹配的 VLAN ID(范围:1-500)。
ibmcloud ks vni attach baremetal --worker WORKER_ID --vni VNI_ID --vlan VLAN_ID [--auto-delete]
要附加浮动 VNI(可跟踪同一区域内工作者之间的工作负载),请指定群集 ID 而不是工作者 ID:
ibmcloud ks vni attach baremetal --cluster-id CLUSTER_ID --vni VNI_ID --vlan VLAN_ID [--auto-delete]
当 VNI 从群集中删除时,--auto-delete 标志会自动删除该 VNI。
从控制台查看 VNI 附件
-
在导航菜单中,单击网络 > VNI 附件。
-
查看已连接的 VNI 列表,包括 VNI 名称、工作节点、子网、VLAN ID 和主 IP 等详细信息。
通过 CLI 查看 VNI 附件
要列出连接到群集的所有 VNI:
ibmcloud ks vni ls --cluster-id CLUSTER_ID
要列出连接到特定工作节点的 VNI:
ibmcloud ks vni ls --worker WORKER_ID
从控制台分离 VNI
-
在导航菜单中,单击网络 > VNI 附件。
-
找到要分离的 VNI,然后单击操作菜单图标 (⋯)。
-
选择“分离”并确认操作。
从 CLI 分离 VNI
要从工作者节点分离 VNI,请同时指定 VNI ID 和工作者 ID:
ibmcloud ks vni detach --worker WORKER_ID --vni VNI_ID
对于浮动 VNI,首先列出 VNI 以找到当前工人 ID,然后使用该工人 ID 分离。
有关更详细的示例和用例,请参阅 管理 OpenShift 虚拟化的虚拟网络接口。