5.3.2.4. Nuage SDN
Nuage Networks 的 SDN 解决方案为 OpenShift Container Platform 集群中的 pod 提供高度可扩展且基于策略的覆盖网络。Nuage SDN 可以安装和配置为基于 Ansible 的安装过程的一部分。如需有关如何使用 Nuage SDN 安装和更新 OpenShift Container Platform 的信息,请参阅 高级安装 部分。
Nuage Networks 提供了一个高度可扩展的、基于策略的 SDN 平台,名为 Virtualized Services Platform(VSP)。Nuage VSP 使用 SDN 控制器,以及用于数据平面的开源 Open vSwitch。
Nuage 使用覆盖在 OpenShift Container Platform 和其它由虚拟机和裸机服务器组成的环境之间提供基于策略的网络。平台的实时分析引擎为 OpenShift Container Platform 应用程序启用可见性和安全监控。
Nuage VSP 与 OpenShift Container Platform 集成,通过删除 DevOps 团队面临的网络布局,快速启用和更新业务应用程序。
图 5.1. Nuage VSP 与 OpenShift Container Platform 集成
负责集成的两个具体组件。
- nuage-openshift-monitor 服务,作为 OpenShift Container Platform master 节点上的单独服务运行。
- vsp-openshift 插件,由 OpenShift Container Platform 运行时在集群的每个节点上调用。
Nuage 虚拟路由和交换机软件(VRS)基于开源 Open vSwitch,负责数据路径转发。VRS 在每个节点上运行,并从控制器获取策略配置。
Nuage VSP 术语
图 5.2. Nuage VSP 构建块
- 域:一个机构包含一个或多个域。域是单个"Layer 3"空间。在标准网络术语中,域映射到 VRF 实例。
- zones:zones 在域下定义。区域不直接映射到网络上的任何内容,而是充当与哪些策略关联的对象,以便区域中的所有端点都遵循相同的策略集合。
- 子网:子网在区域中定义。子网是域实例中的特定第 2 层子网。子网在域中是唯一的,也就是说,域中的子网不允许重叠或根据标准 IP 子网定义包含其他子网。
- VPorts:VPort 是域层次结构中的一个新级别,旨在提供更精细的配置。除了容器和虚拟机外,VPort 也用于附加主机和网桥接口,它们可提供到裸机服务器、设备和传统 VLAN 的连接。
- 策略组:策略组是 VPorts 的集合。
结构映射
许多 OpenShift Container Platform 概念直接映射到 Nuage VSP 构造:
图 5.3. Nuage VSP 和 OpenShift Container Platform 映射
Nuage 子网不映射到 OpenShift Container Platform 节点,但特定项目的子网可以跨越 OpenShift Container Platform 中的多个节点。
在 OpenShift Container Platform 中生成的 pod 转换为在 VSP 中创建的虚拟端口。vsp-openshift 插件与 VRS 交互,并通过 VSC 从 VSD 获取该虚拟端口的策略。策略组支持将多个 pod 分组在一起,它们必须应用相同的策略集合。目前,pod 只能利用在 VSD 中管理用户创建策略组的操作工作流分配到策略组。pod 是策略组的一部分,方法是使用 Pod 规格中的 nuage.io/policy-group
标签来指定。
集成组件
Nuage VSP 使用两个主要组件与 OpenShift Container Platform 集成:
- nuage-openshift-monitor
- vsp-openshift 插件
nuage-openshift-monitor
nuage-openshift-monitor 是一个服务,它监控 OpenShift Container Platform API 服务器以创建项目、服务、用户、用户组等。
如果是具有多个 master 的高可用性(HA)OpenShift Container Platform 集群,则 nuage-openshift-monitor 进程可在所有 master 上独立运行,而无需更改功能。
对于开发人员工作流,n uage-openshift-monitor 还通过简化 VSD REST API 来自动创建 VSD 对象,以将 OpenShift Container Platform 构造映射到 VSP 结构。每个集群实例映射到 Nuage VSP 中的单个域。这允许给定企业可能有多个集群安装 - 每个用于该企业的域实例在 Nuage 中。每个 OpenShift Container Platform 项目都映射到集群域中的区(Nuage VSP)。每当 nuage-openshift-monitor 可以看到项目的添加或删除时,它会使用与该项目对应的 VSDK API 实例化区,并为该区分配一个子网块。另外,nuage-openshift-monitor 还为该项目创建一个网络宏组。同样,当 nuage-openshift-monitor 看到服务添加或提取时,它会创建与服务 IP 对应的网络宏,并为该项目(用户提供网络宏组)分配到该项目的网络宏组(也支持使用标签实现与该服务的通信)。
对于开发人员工作流,在区中创建的所有 pod 都从该子网池获取 IP。子网池分配和管理由 nuage-openshift-monitor 根据 master-config 文件中的几个插件特定参数来完成。但是,实际 IP 地址解析和 vport 策略解析仍由 VSD 根据项目创建时实例化的域/区完成。如果初始子网池已耗尽,nuage-openshift-monitor 会从集群 CIDR 中分离一个额外的子网,以分配给给定项目。
对于操作工作流,用户在其应用程序或 pod 规格中指定 Nuage 识别标签,以便将 pod 解析为特定用户定义的区域和子网。但是,这无法用于解析通过 nuage-openshift-monitor 通过开发人员工作流创建的区或子网中的 pod。
在操作工作流中,管理员负责预重新创建 VSD 结构,将 pod 映射到特定区域/子网,以及允许 OpenShift 实体(ACL 规则、策略组、网络宏和网络宏组)之间的通信。有关如何使用 Nuage 标签的详细描述,请参阅 Nuage VSP Openshift 集成指南。
vsp-openshift 插件
vsp-openshift 网络插件由 OpenShift Container Platform 运行时在每个 OpenShift Container Platform 节点上调用。它实现了网络插件 init 和 pod 设置、teardown 和 status hook。vsp-openshift 插件也负责为 pod 分配 IP 地址。特别是,它会与 VRS(转发引擎)通信,并在 pod 上配置 IP 信息。