自动化的NSX网络交付

简介: 临近年关,忙忙碌碌;今天下定决心更新,说一说NSX数据中心网络的自动交付。

在今年的vForum大会上,我也非常有幸和许多与会的技术专家交流了NSX打造的网络与安全的最后一公里。其中,我谈起传统数据中心解决方案会对网络资源进行强制的划分:比如网络管理员在进行规划的时候,会预先定义若干个C类给专门的网络区域或者应用使用。这种不灵活的网络设计会成为业务上线后管理员沉重的工作负担。而在虚拟化已经成为主流、微服务逐渐兴起的时代,对东西向流量的安全需求,也逐渐成为刚需,甚至是国家法律合规的约束。

image.png

     现在,我们将目标重新聚焦到NSX构建的软件定义网络之上。有人会质疑,NSX的确可以通过分布式防火墙技术,实现虚拟机颗粒度、容器POD颗粒度的安全防护;但是他似乎无法解决强制的网络资源划分问题,工程师依旧需要创建好逻辑交换机、逻辑路由器,配置路由协议,似乎这一切与传统数据中心网络实现并无太大的区别。

      这个问题,我们先暂时放一放,来看看在一个典型项目的实施阶段,NSX数据中心的网络是如何实现的。

1. 各类配置文件就绪,传输区域设置

2. 传输节点就绪,其中包括主机传输节点和边界传输节点

3. 逻辑交换机的配置

4. 逻辑路由器的配置

5. 路由协议实现逻辑网络与物理网络的互通6. 其他有状态服务的配置

     所有的这些配置工作,都可以由管理员通过鼠标点击实现。因此在纯手动配置逻辑网络的场景下,管理员当然需要预先规划好网络设计。

     我们知道NSX提供非常丰富的标准API接口,通过云管理平台,是完全可以实现自动化交付网络服务的需求的,这其中就包括了逻辑交换机、逻辑路由器和各类有状态的服务。此时管理员不再需要为业务生硬的规划具体的IP地址和网络,只需要声明一个有充分资源的网络地址资源池,就可以实现业务网络的快速交付,解决了传统中心网络运维复杂的难点。

     说到云管平台,就不得不提起VMware vRealize Automation(后文称vRA)这个产品。最近和同事都在开荒vRA8,全新的容器化结构需要有一些时间去消化、归纳和总结。在今天的分享中,我将采用NSX-T与vRA7.6进行演示用例。

     现在就让我们来看看NSX-T与vRA集成后,如何自动化交付逻辑网络的。

      看过前几篇分享的朋友,一定还记得NSX-T在和容器集成、OpenStack集成的时候,管理员都要定义一个边界群集和Tier0级别的逻辑路由器。

image.png

     上面那张是我的演示环境网络整体拓扑:

     我部署了四个Tier0逻辑路由器用以演示NSX DC的四大功能,分别是面向ESXI和KVM的软件定义网络、容器云原生网络、自动化交付和与OpenStack集成;当然有兴趣自建LAB的朋友可以选择只部署一台Tier0逻辑路由器。

     在NSX实现的云原生网络中,管理员每创建一个Namespace,就会在NSX-T的环境中,自动创建一个Tier1逻辑路由器,自动分配一个IP地址段,并连接到预先定义的Tier0逻辑路由器,实现云原生网络与外部VLAN网络的互通。类比地来看,在NSX与vRA集成的自动化网络交付场景下,用户通过访问vRA的服务目录,每创建一个请求,就可以在NSX-T的环境中,自动创建一个Tier1逻辑路由器,自动从可用的IP规划中,分配若干个子网,以多个逻辑交换机的方式上联到Tier1逻辑路由器实现内部的东西向互访,该Tier1逻辑路由器再连接到预先定义的Tier0逻辑路由器,实现南北向互访。

     因此,我们首先需要来定义一个用于自动化创建的网络上联的Tier0逻辑路由器:

     vRA是支持多租户的云管理平台,我使用SE部门的管理员访问vRA门户,在基础架构-预留配置中,声明Tier0逻辑路由器。

image.png

      包括vCenter、NSX DC Manager(后文称NSXMGR)在内的组件都是以“端点”的形式,与vRA进行交互,为了确保架构管理员可以看到最实时的vCenter、NSXMGR对象,系统会定期更新同步。

     当网络管理员访问NSXMGR,添加了一个Tier0逻辑路由器并经过同步后,租户的架构管理员就可以以“预留”的形式,定义将来自动化交付的Tier1逻辑路由器将被允许自动连接到该Tier0逻辑路由器,如我环境中的Dev-Tier0-LR-Tenant3

image.png

     细心的朋友一定会发现,在声明了Tier0逻辑路由器的选项右侧,还有一个S7-SE-Transit-Tier-NetProf命名的网络配置文件,这是一个什么配置呢?

     在vRA租户的基础架构-预留-网络配置文件页面,可以看到面向SE租户的四个网络配置文件,分别是外部网络配置文件和(按需)路由网络配置文件。

image.png

      在vRA与NSX-V的集成场景中,外部网络配置文件是想当重要的:它将用于Edge Service Gateway与Distributed Logical Routers之间的Transit Tier网络地址的规划。而在vRA与NSX-T的集成场景中,由于Tier0和Tier1逻辑路由器之间的逻辑交换机属于内联逻辑交换机,为自动分配100.64.0.0/16的地址,此时的外部网络配置文件的网络规划并没有太大的意义,只是用来将路由网络配置文件与早些定义的Tier0逻辑路由器进行关联。

     比如下图的S7-SE-Web-Tier-NetProf定义的192.168.13.128/25 CIDR,当蓝图需要创建按需路由网络,并且关联了该网络配置文件的时候,vRA会自动从这个CIDR中选择一个29位子网掩码的地址段分配给一个逻辑交换网络使用;同时将这个地址段中第一个可用的IP地址作为该逻辑交换网络的网关,配置在自动创建出来的一个Tier1逻辑路由器上,该逻辑路由器通过关联的“外部网络配置文件”,就会自动连接到对应的Tier0逻辑路由器上。

     由于Tier0逻辑路由器与Tier1逻辑路由器之间的路由属于内部路由,自动学习,因此逻辑网络连通性是不需要额外的配置就能建立的;同时由于Tier0逻辑路由器的SR角色会通过静态路由或者BGP动态路由的方式,与上层物理路由器实现路由学习-更新-发布-互通;这样整个数据中心网络的连通性就能顺理成章地自动实现。不再需要管理员手动配置,当用户申请服务的时候,所有的这一些都会在很短的时间内被自动创建,大大缩短了业务上线的时间,也提升了管理员的运维效率。

image.png

image.png

可以看到,当某一个可用的地址段因为被使用而分配出去的时候,架构管理员可以在vRA租户的页面清楚地看到这些信息。

image.png

下图是我的复合蓝图设计示例。

image.png

这里面可以看到:

     1. 一共有三种不同类型的虚拟机实例,分别是Web虚拟机、App虚拟机和DB虚拟机,vRA会调用vCenter上的虚拟机模板和自定义规范,完成这些虚拟机的置备。

image.png

    2. 为了减少IT的运维工作量,所有的虚拟机在被创建的时候,会连接到自动创建的逻辑网路中。vRA会根据网络配置文件的定义,自动创建逻辑交换机、Tier1逻辑路由器,并且将Tier1逻辑路由器连接到预先创建和定义的Tier0逻辑路由器上。

image.png

     3. 所有虚拟机在置备完成后,需要进行优化配置和对应的软件安装和集成。如DB虚拟机需要根据预先定义的脚本,安装MYSQL数据库,系统将根据该虚拟机被分配的IP地址作为数据库的侦听IP,并根据用户自己的定义,完成管理员账号密码的设置。

image.png

     4. 出于业务高可用性的考量,在完成多台Web虚拟机的创建后,还会自动创建出负载均衡器,提供南北向的负载均衡,满足外部用户接入的需求。

image.png

      5. 出于安全的考量,管理员预先定义了安全策略,所有创建出来的虚拟机都将被关联这些策略,借助分布式防火墙为业务安全稳定地运行保驾护航。

image.png

      当所有的这一切都在Day0被定义,用户在Day1申请了这个服务,我们来看看系统发生了哪些变化。

     可以看到,vRA自动化地,在vCenter管理的群集上创建虚拟机,在NSXMGR管理的主机传输节点上创建逻辑交换机、逻辑路由器、负载均衡器等对象;所有的这些工作在短短数分钟内完成。

image.png

在vCenter上可以看到用户创建的虚拟机实例正在稳定运行,分配了预先定义的IP地址。

image.png

在NSXMGR上,可以看到逻辑交换机被创建,并且连接到Tier1逻辑路由器上,网关地址是vRA根据网络配置文件分配的第一个可用的IP地址;该Tier1逻辑路由器连接到了对应的Tier0逻辑路由器上。

image.png

image.png

为Web虚拟机自动创建的负载均衡器也在稳定对外提供业务访问。

image.png

最终用户看到的,“仅仅”只是一个符合他们需求的应用而已。

image.png

套用那句“总有人为你负重前行”,vRA为业务的敏捷交付,为管理员的效率提高而负重前行,而这一切是NSX数据中心与vRealize Automation这样的云管平台集成后,所能带来的巨大收益。

image.png

因此,想要发挥软件定义网络或者说NSX数据中心带来的变革,最大化NSX数据中心的收益,是需要自动化交付平台来助力的,也是用户选择NSX,选择vRealize CMP的一个非常重要的原因。

这是晓冬2020年的第一篇更新,也是NSX-T为主题的变形金刚系列的最后一篇。原先计划分享一些vRealize Suite组件的演示和个人理解,但是最近vRA8全新的架构还在持续摸索中,先暂时缓缓吧。我想,在下一篇更新中,来向大家聊一聊初步接触VMware Project Pacific的一些感悟,敬请关注。


相关文章
|
22天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
4月前
|
监控 测试技术 持续交付
自动化测试和持续集成/交付:提升软件质量和效率的关键
在当今快节奏的软件开发环境中,自动化测试和持续集成/交付已经成为了必不可少的工具和流程。通过自动化测试,开发团队可以更快地检测和修复缺陷,同时提高测试覆盖率和质量。而持续集成/交付则可以让开发者将代码快速、自动地构建、测试和部署到生产环境中。这篇文章将探讨自动化测试和持续集成/交付的优势和实现方式,以及如何在实践中有效地使用它们来提升软件质量和效率。
|
4天前
|
弹性计算 运维 Shell
自动化网络扫描工具发现活跃主机
【4月更文挑战第30天】
8 0
|
7天前
|
网络协议 Linux iOS开发
|
11天前
|
Ubuntu Linux
自动化解决Linux网络预测网络接口命名问题
自动化解决Linux网络预测网络接口命名问题
18 0
|
2月前
|
机器学习/深度学习 运维 算法
|
3月前
|
监控 Java 持续交付
内部网络监控软件的Groovy应用:持续集成与部署的自动化监控
在当今高度数字化的环境中,对于内部网络的监控变得至关重要。为了保证系统的稳定性和安全性,监控软件的自动化变得越来越必要。本文将介绍如何利用Groovy编程语言实现持续集成与部署的自动化内部网络监控软件,并通过代码示例展示其实现方式。
269 3
|
4月前
|
Web App开发 存储 前端开发
Python 自动化指南(繁琐工作自动化)第二版:十二、网络爬取
Python 自动化指南(繁琐工作自动化)第二版:十二、网络爬取
78 1
|
7月前
|
监控 Shell 持续交付
编写Shell脚本以自动化单位网络监控软件的部署和配置
在今天的数字化世界中,网络监控软件已经成为确保网络稳定性和安全性的不可或缺的工具。然而,手动部署和配置这些软件可以是一项繁琐的任务。本文将介绍如何使用Shell脚本自动化这一过程,以便轻松监控网络,并讨论如何将监控数据自动提交到网站。
205 0
|
8月前
|
数据采集 数据管理
【源码】LIS系统 实现检验信息电子化、检验信息管理自动化的网络系统
通过门诊医生和住院工作站提出的检验申请,生成相应患者的化验条码标签,在生成化验单的同时将患者的基本信息与检验仪器相对应;当检验仪器生成结果后,系统会根据相应的关系,通过数据接口和结果核准将检验数据自动与患者信息相对应。 能实现检验信息电子化、检验信息管理自动化的网络系统。

热门文章

最新文章