NSX DC能为容器云原生做些什么(1)

本文涉及的产品
云防火墙,500元 1000GB
公网NAT网关,每月750个小时 15CU
简介: 前不久,相信许多朋友的朋友圈都被两个名字“Tanzu”和“Project Pacific”刷屏了;这些年容器越来越火热,我们也看到VMware陆续推出了vSphere Integrated Containers、Pivotal Kubernetes Service......以及相关产品越来越多的与容器集成的潜力,如NSX DC、vRealize

前不久,相信许多朋友的朋友圈都被两个名字“Tanzu”和“Project Pacific”刷屏了;这些年容器越来越火热,我们也看到VMware陆续推出了vSphere Integrated Containers、Pivotal Kubernetes Service......以及相关产品越来越多的与容器集成的潜力,如NSX DC、vRealize Automation......vRealize Network Insight5.0已经发布,能实现对容器网络的强大洞察力。Tanzu让我想起了vSphere Integrated OpenStack(VIO),前些年发布的另一款同样是VMware针对市场动态的战略产品。只能说,摩拳擦掌、跃跃欲试,期待Hands on Lab能早日推出动手实验,让我等先睹一快。

我们再把目光切回到持续连载的NSX DC(NSX-T)产品,在今天的分享中,我将用几个实际的演示用例,向各位展示:借助NSX DC实现云原生网络与安全后,能为IT管理员带来哪些便捷和实惠。

关于NSX DC如何与容器部署集成,VMware官方配置手册已经写得非常详细;包括NSX DC相应版本支持的容器平台、版本和操作系统兼容性等。建议有兴趣自己动手体验的朋友,可以采用Ansible自动实现OpenShift和NSX DC集成。

NSX DC支持与裸金属容器和虚拟机容器集成实现云原生网络与安全。但是从部署的难易程度、对现有网络的改动程度、高可用等多方面综合考量,建议采用虚拟机形式部署容器,即承载容器的Linux操作系统是运行在vSphere上的一台虚拟机。

image.png

我从MAPRSC多个角度来简单说明一下这种HOST-VM模型集成的优势:

M可管理性:vCenter可以实现对vSphere和虚拟机的集中管理;同时借助Orchestrator服务编排可以实现快速部署和弹性伸缩;

A可用性:vSphere HA支持服务器、虚拟机、操作系统三个不同级别的高可用,避免传统裸金属服务器容易造成的单点故障;vMotion满足不影响业务的计划内的停机维护,是保障核心业务连续性的关键设计决策;

P性能:vSphere解耦硬件与软件,容器业务不会再受到兼容性的影响;分布式资源调度DRS能让虚拟机和容器运行在高效率的Hypervisor上,避免资源竞争导致性能下降;vRealize Operations提供运行状态监控和风险预判,避免资源过剩导致成本虚高,也为容器业务平台高效稳定运行保驾护航;

R可恢复性:面向虚拟机的备份-还原解决方案同样适用于容器虚拟机;SRM可以提供最小RPO=5min的容灾方案,结合NSX DC的跨数据中心、跨云解决方案,能提供强大的可恢复性保障;

S安全性:在安全性方面,无论是裸金属还是虚拟机版本的容器,均能实现POD细粒度的安全防护,实现安全在最贴近业务的地点运行;通过由企业CA或者公网CA签发的证书,加密组件之间的通信,可以降低遭受黑客攻击篡改导致数据泄露的风险。

C合规性:NSX DC和容器的集成,能实现租户之间、业务之间、虚拟机与宿主机之间等流量安全隔离,满足等保2.0定义的合规性要求;与裸金属部署容器相比,虚拟机部署容器可以更好地节约授权成本,满足企业正版化合规性要求,在解决IT痛点的同时,对成本花销有一个比较好的控制。


接下来,我将用几个演示用例,更为直观地向各位演示NSX DC与容器集成的优越性。

0x01.IPAM解决混乱无章的地址规划

在实际的项目中,有用户提出:我们有一部分业务运行在OpenShift上,但是对于网络地址的规划很混乱,有没有什么方案可以帮助我们解决痛点。

首先,各位跟着我先将目光投放到NSX DC Manager的管理界面,其中有2个菜单,分别是:

  • 高级网络与安全-网络-IPAM
  • 高级网络与安全-清单-组-IP池

image.png

image.png

管理员可以定义若干资源池,提供给容器使用,如在我的演示环境中:

OpenShift容器Namespaces(Route)可用的IP地址段,这些地址全部可被外部网络路由可达;

OpenShift容器Namespaces(SNAT)可用的IP地址段,外部VLAN网络没有这些地址段的路由;使用这些IP的Pod必须通过源地址转换SNAT才能访问外部网络;

SNAT可用的IP地址池,提供前者Namespaces通过源地址转换访问外部网络使用,本身可以被外部网络路由可达;

LB可用的IP地址池,作为Ingress入口,提供外部网络访问容器业务使用,本身可以被外部网络路由可达。

当系统管理员创建一个微服务的时候,根据YAML文件的设置,OpenShift会通过NCP自动从NSX DC定义的资源池中分配IP地址,提供给包括Pod、Namespace、Ingress等使用。

  • 比如,管理员创建了一个微服务,NSX DC会从定义的IPAM为每一个Namespace分配独立的一个地址段,容器Pod会自动获取该地址段的一个可用地址

image.png

  • NSX DC会自动为每一个Namespace创建一个逻辑交换机和Tier1级别逻辑路由器,并将该逻辑路由器连接到Tier0逻辑路由器,实现与外部网络的互联

image.png

  • 如对于yelb这个Namespace,NSX DC为其分配了192.168.24.160/28,合计16个可用的IP地址;其中第一个可用IP为网络地址;最后一个可用IP为广播地址;第二个可用地址为该Namespace的网关地址

image.png

  • 该微服务一共创建了5个Pod,因此从剩余可用的13个IP地址中,连续分配5个提供给Pod使用;这些分配的IP地址与OpenShift命令行查看的Pod地址是一致的。

image.png

  • 除此以外,NSX DC实现云原生网络与安全场景中,容器网络大多采用SNAT方式与外部互联,因此需要Ingress才能实现外部网络对微服务的访问,这将通过NSX DC提供的负载均衡器实现;NSX DC同样会从可用的IP地址规划中分配一个地址给负载均衡器的虚拟服务器使用,如本实例中的“192.168.8.135”

image.png

通过用例,各位可以看到NSX DC与容器集成后,所有的网络地址分配均自动实现,不再需要管理员手动介入;也不会出现IP地址混乱或者冲突的情况,大大提高了网络管理员的工作效率,是NSX DC实现云原生网络与安全的第一大好处。


0x02.TRACE FLOW帮助管理员快速定位网络故障

在日常的网络问题排查过程中,管理员最常用的工具就是PING和TRACEROUTE命令(不同的操作系统可能有不同的命令,但是实现的功能是一样的)。

我们来看看下面的这个例子:

  • 管理员想要验证容器nsx-demo-rc-87f8d与nsx-demo-rc-zmwjw之间的网络连通性;以及nsx-demo-rc-87f8d与外部网络之间的连通性

image.png

  • 命令行验证Pod之间的连通性

image.png

  • 命令行验证容器网络与外部网络的连通性

image.png

可以看到与Windows和Linux操作系统一样,容器验证连通性虽然可以用PING等方式,但命令比较复杂。对于出现网络不可达的情况,很难定位故障,会增加管理员排查的复杂度。

那么在与NSX DC集成后,能为管理员的日常运维带来什么变革呢?

  • 通过NSX DC的图形化界面,管理员可以对连接到这个Namespace的容器Pod有统一的全局可视化,包括Pod当前的连接状态、端口等

image.png

  • 对于特定的某一个Pod,管理员可以查看更为详细的状态,比如它属于哪个群集、哪个项目等

image.png

  • 管理员可以查看包括MAC表、流量统计等信息

image.png

image.png

  • 如果管理员怀疑防火墙策略阻挡了流量,可以通过快速链接,找到Pod对应的分布式防火墙策略,进行快速排查

image.png

  • 与在OpenShift命令行获得的结果相同,可以看到yelb-appserver这个容器Pod通过NCP从管理员预先定义的IPAM规划中,自动获取了192.168.24.163这个IP地址

image.png

  • 在之前的演示中,我们发现通过PING命令来排查网络故障有比较大的局限性;现在让我们看看借助VMware NSX DC的跟踪流工具能否帮助管理员更好地实现运维
  • 比如,管理员在NSX DC的图形界面,试图查看容器yelb-appserver与另一个租户的一台裸金属服务器s7-front-01之间的数据流走向

image.png

  • 可以看到NSX DC能够将整个数据流的走向详细地描绘,包括数据包经过的逻辑交换机、逻辑路由器、分布式防火墙;Overlay传输经过的封装隧道以及可能存在的网络地址转换NAT

image.png

试想,如果因为防火墙规则或者NAT转换出错导致网络不可达的场景下,使用PING或者TRACEROUTE只能得到不可达或者某一个传输节点故障的结果,无法像使用NSX DC那样,能够对整个数据包经过的设备、节点、通道有一个清晰的可见性和洞察力。

有人会质疑,NSX DC的Trace Flow只能显示由它创建的逻辑网络路径,一旦流量进入VLAN网络,就无法追踪并呈现在页面上。这是一个客观存在的“缺陷”,但是各位要明白:第一,设计并实施VMware NSX DC的“假设”是VLAN网络或者Underlay网络正常,物理网络故障导致的“风险”需要被考量,但并非NSX DC设计与实施的“范围”;第二,借助于VMware vRealize Network Insight,支持对容器网络在内的逻辑网络以及各类物理设备组网的VLAN网络实现可见性和洞察力,来填补这个“缺陷”。

0x03.Pod细粒度的QoS支持

有时候,管理员需要限制Pod的入向或者出向带宽,这类需求可以借助于NSX  DC的端口配置文件轻松实现。在NSX DC与OpenShift集成后,创建的每一个Namespace对应一个逻辑交换机;每一个Pod对应逻辑交换机上的一个端口;而NSX DC的端口配置文件支持针对逻辑交换机全局或者端口两种层级生效。我们知道,对于采用VMXNET3虚拟网卡的容器虚拟机来说,节点与节点之间的带宽可以达到10Gbps;现在我将通过端口配置文件,设置出向和入向的流量均为0.1Gbps。

  • 在没有任何QoS的情况下,网络带宽将被完全占用

image.png

  • NSXMGR上创建一个QoS策略,如输出输入带宽限制为100Mbps

image.png

  • 可以在多个维度生效这个逻辑交换机QoS策略:


对于NSX-DEMO NAMESPACE(逻辑交换机),全局应用生效

image.png

对于Default-Client,在逻辑端口级别生效

image.png

  • 可以看到在应用了QoS策略后,有效带宽只有限定的100Mbps,包括出向和入向。

image.png

因此,借助于NSX DC的端口配置文件,管理员可以非常方便的设置包括QoS、端口镜像、Spoof Guard等在内的多项功能,来实现各类需求;实现方式是通过在GUI界面简单的鼠标点击,大大提高了管理员的运维效率。

现在,让我们总结一下NSX DC与容器集成后带来的好处之三:

0x01.IPAM解决混乱无章的地址规划

0x02.TRACE FLOW帮助管理员快速定位网络故障

0x03.Pod细粒度的QoS支持

在下一篇分享中,我将继续为各位带来NSX DC与容器集成后带来的好处,敬请关注。

相关文章
|
20天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
17天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
156 77
|
3天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
28 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
15天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
15天前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
21天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器化到微服务
本文将带领读者踏上云原生的旅程,深入探讨容器化和微服务架构的概念、优势以及它们如何共同推动现代软件的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务应用,并解释相关的配置和操作。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供有价值的见解和实操指南。
|
1月前
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
27天前
|
Kubernetes Cloud Native 开发者
云原生入门:从容器到微服务
本文将带你走进云原生的世界,从容器技术开始,逐步深入到微服务架构。我们将通过实际代码示例,展示如何利用云原生技术构建和部署应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
1月前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
1月前
|
Kubernetes Cloud Native 云计算
云原生入门:Kubernetes 和容器化基础
在这篇文章中,我们将一起揭开云原生技术的神秘面纱。通过简单易懂的语言,我们将探索如何利用Kubernetes和容器化技术简化应用的部署和管理。无论你是初学者还是有一定经验的开发者,本文都将为你提供一条清晰的道路,帮助你理解和运用这些强大的工具。让我们从基础开始,逐步深入了解,最终能够自信地使用这些技术来优化我们的工作流程。