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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
云防火墙,500元 1000GB
简介: 临近年末,工作量突然猛增,都没有时间更新公众号~今日得空,我们继续来聊聊NSX DC能为容器云原生做些什么。

上回说到,NSX DC与容器集成后,能为管理员带来显而易见的三大好处,分别是:

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

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

0x03.Pod细粒度的QoS支持

今天,我们来聊一聊NSX DC建置的云原生网络还能提供哪些强大的功能。


0x04.灵活便捷的负载均衡功能实现在与一些企业IT交流的过程中,我发现大部分企业均采用外部专门的负载均衡器提供容器访问入口。在这种情况下,系统管理员需要面对以下几个问题:

  • 外部负载均衡器难以实现东西向负载均衡的需求
  • 容器入口(南北向负载均衡)很难做到自动化、灵活性的配置

我们知道,VMware NSX DC可提供网络功能虚拟化功能(后文称NFV),其中就包括了负载均衡器。那么,在采用NSX DC与容器集成的场景下,能否解决上述两个系统管理员的痛点呢?

先来看看东西向负载均衡的情况:

  • 创建一个名为nsx-demo的命名空间、四个容器Pod和一个服务
  apiVersion:v1
  kind:Service
  metadata:
    name: nsx-demo
    labels:
      app: nsx-demo
  spec:
    ports:
      - port: 80
    selector:
      app: nsx-demo

image.png

image.png

image.png

  • 我们来查看一下该服务的群集IP

image.png

  • 该IP地址为nsx-demo相关Pods的东西向负载均衡群集IP地址;
    查看流表,看到该东西向负载均衡器地址已经激活,并参与流量交互

image.png

  • 可以看到已经有访问流量被自动负载均衡到不同的Pod

image.png

  • 为了验证东西负载均衡器,我们使用另一个命令空间的Pod,尝试访问群集地址,确认流量被负载均衡到不同的POD

# wget -O- http://172.30.158.1

image.png

  • 第一次负载到192.168.0.37,第二次负载到192.168.0.35

image.png

  • 查看流表,可以看到这些记录

image.png

通过这个演示,各位可以发现NSX DC在为容器提供东西向负载均衡的时候,拥有2个特点:

  • 负载均衡依赖Linux的虚拟服务内核模块(IPVS)
  • 东西向的负载均衡场景下,NSX DC不会创建负载均衡器实例

那么,在提供南北向负载均衡的时候,NSX DC又是如何实现的呢?

  • 与验证东西向负载均衡一样,我创建了一个nsx-web命名空间、两个容器Pod和一个基于Service Type的负载均衡器
   apiVersion:v1
   kind:Service
   metadata:
     name: nsx-web
     labels:
      app: mod2
   spec:
     ports:
     - port: 80
      targetPort: 80
      protocol: TCP
      name: nsx-web
    selector:
      app: nsx-web
    type: LoadBalancer

image.png

  • 等待容器创建完成,查看负载均衡器IP地址
    可以看到相关容器的负载均衡器地址为192.168.8.133:80,而192.168.8.133是我实现在NSX DC Manager(后文称NSXMGR)上定义的,专门用于负载均衡器虚拟服务器网络地址的IP地址池中的一个可用地址

image.png

  • 在NSXMGR上查看创建的虚拟机服务器
    IP和端口与容器信息相匹配,并且自动关联了服务器池

image.png

  • 查看服务器池和成员服务器,可以看到相关成员服务器IP地址与容器命令行查看到的信息相匹配image.png

image.png


  • 外部用户访问负载均衡器IP地址
    可以看到不同的用户被负载均衡到两个内部Pod

image.png

image.png

在这种采用定义Service Type为LoadBalancer的场景下,每一个容器入口(南北向负载均衡器)都会由NSXMGR自动创建出一个虚拟负载均衡器,并且自动分配一个预先定义的可用的IP地址。用户使用YAML创建负载均衡器服务的时候,NCP会将这些信息提交给NSXMGR,NSXMGR在收到用户的配置请求后,自动完成所有的配置工作;不再需要管理员手动去负载均衡器管理界面进行配置,减轻了工作量,助力业务快速上线。

不过,有人会问如果使用这种方式来实现对容器业务的访问,业务数量与可路由的IP地址数量(负载均衡器IP地址池容量)需要满足1:1;强大的NSX DC能否对此情况进行优化呢?答案是肯定的!除了基于Service Type的负载均衡,NSX DC也支持Ingress形式的南北向负载均衡。

apiVersion:extensions/v1beta1
kind:Ingress
metadata:
  name: nsx-demo-ingress
spec:
  rules:
  - host: nsx-web-openshift.tenant2.teamv.local
    http:
      paths:
      - backend:
          serviceName: nsx-demo
          servicePort: 80

与之前的演示相同,我创建一个nsx-demo命名空间、两个容器Pod和一个Ingress入口
等待容器和入口创建完成

image.png

  • 在默认创建的HTTP负载均衡虚拟机服务器上,可以看到HTTP FORWARDING出现了入口转发匹配条件,与创建的容器信息一致

image.png

image.png

  • 确认负载均衡成员和虚拟服务器IP地址

image.png

image.png

  • 外部用户访问nsx-web.tenant2.teamv.local(域名),可以负载均衡到两个容器POD
    注意:外部需要添加DNS解析记录,直接使用IP地址无法触发HTTP FORWARDING规则

image.png

image.png

在这种基于Ingress的南北向负载均衡器场景中,不同的URI可以指向相同的IP地址,通过匹配不同的HTTP转发规则实现N:1的可路由IP地址分配。通过上述三个演示用例,各位可以看到NSX DC与容器集成后,提供满足东西向、南北向的负载均衡为业务及应用服务;系统管理员无需额外的负载均衡配置,NSX DC提供的Edge负载均衡完全可以满足容器业务的高性能、灵活性和自动化配置要求。

0x05.Pod细粒度的安全微分段,提供容器网络安全防护在之前的连载中,我们讲过NSX三个字母的含义,即网络安全任意
越来越多的企业已经从传统的数据中心组网,演变成一个集合了数据中心、分支机构、容器、虚拟化和公有云等等多元素的“虚拟云网络”。现在企业对于安全越发重视,NSX DC能否实现容器业务的安全防护呢?如果能,细粒度能否满足等保2.0定义的合规呢?在回答这个问题之前,我们先将目光从容器网络转移到普通的NSX DC逻辑网络拓扑上;无论是NSX DC产品中的NSX-V还是NSX-T,提供虚拟机安全防护的“分布式防火墙”都是由连接在逻辑交换机(虚拟机端口组)上虚拟机的虚拟网卡,与逻辑交换机(虚拟机端口组)的接口之间的IO链实现的。
在上一篇分享中,我提到NSX DC提供的容器NameSpace其实就是逻辑交换机,每一个容器Pod都会连接在NameSpace的某一个端口上,因此NSX DC同样可以实现容器的安全微分段,而且是Pod级别的细粒度。我们不妨来看一下这个用例:

  • 创建一组3-Tier应用

image.png

  • 等待2台Web、1台App、1台DB和1台Redis容器正常运行

image.png

  • 在NSXMGR界面,可以非常直观地查看到NAMESPACE YELB-K8S的状态

image.png

image.png

image.png

  • 根据NCP配置文件的定义,所有的容器分布式防火墙策略均会被创建在对应的Sections区间内,默认情况下,目前YELB-K8S容器可以被不受限制地访问

image.png

  • 同样地,该组容器可通过INGRESS实现南北向负载均衡,域名为yelb-k8s.tenant2.teamv.local

image.png

  • 默认情况下,用户可以通过域名访问容器应用,前端Web收到用户请求后,将由中间件yelb-appserver处理

image.png

  • 创建一组分布式防火墙策略
    注意,管理员也可以在NSXMGR上通过UI界面,手动创建策略

image.png

  • 在NSXMGR上,这些策略将会在对应的区域之间被创建

image.png

  • 在完成防火墙策略创建后,用户依旧可以正常访问YELB-K8S应用

image.png

  • 通过NSXMGR可以查看到Tenant1租户的一台服务器访问YELB-K8S应用的数据流走向

image.png

  • 同时对于阻挡的流量,分布式防火墙将直接进行处理,流量不会进入传输网络转发

image.png

在虚拟云网络环境越来越普遍的今天,安全边界越来越模糊,解耦网络边界与安全边界已经势在必行。对于普通的虚拟化环境而言,NSX DC能实现最小计算单元,即虚拟机的安全微分段防护;而对于容器环境来说,NSX DC同样能实现最小计算单元,即容器Pod的安全微分段防护。在上次的分享用例中,我演示了使用NSXMGR的TraceFlow功能,描绘端到端的数据流走向,来提高管理员的运维效率;同时NSXMGR也能提供Pod细粒度的QoS。在今天的最后一个用例中,我将演示NSX DC如何针对云原生网络提供端口镜像功能。

0x06.Pod细粒度的端口镜像,提供云原生网络运维支持

  • 创建一个UBUNTU容器

image.png

  • 在NSXMGR上创建新的端口镜像文件,将容器流量Mirror到特定的服务器,如172.16.18.120

image.png

  • 在逻辑交换机或者端口级别,关联该端口镜像配置文件

image.png

  • 在容器内部执行包括PING、CURL等操作

image.png

  • 在目标服务器通过Wireshark抓包,可以看到相互的通信流

image.png

  • 在测试用例结束后,恢复端口镜像配置

image.png

在传统的数据中心网络,当业务流量不出宿主机的场景下,管理员无法通过端口镜像实现抓包、分析和取证等工作。而NSX DC构建的云原生网络,很好地解决了这个运维痛点,是解耦网络边界与安全边界的一个典型应用。

现在,我们来总结一下演示过的NSX DC提供的网络与安全解决方案覆盖的对象:

  • VMware vSphere
  • KVM或者基于KVM的解决方案,如OpenStack
  • 裸金属服务器
  • 容器平台

NSX DC能够为异构的平台、多云平台等提供统一的虚拟云网络环境,提供目标对象最小计算单元细粒度的安全防护,同时提供标准API接口,满足与第三方产品的集成。在后续的分享中,我将演示VMware vRealize Automation与NSX DC产品集成的用例,提供自动化的网络与安全交付,敬请期待。


相关文章
|
5天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
23 2
|
3天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
5天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
3天前
|
Cloud Native API 持续交付
云原生之旅:从容器到微服务的演进之路
【10月更文挑战第39天】在这篇文章中,我们将一起探索云原生技术的奥秘。通过浅显易懂的语言和生动的比喻,我们将了解云原生技术如何改变软件开发的世界。文章将带领读者从容器的基本概念出发,逐步深入到微服务架构的实践,揭示这些技术如何助力现代应用的快速迭代与可靠部署。准备好,让我们启程进入云原生的精彩世界吧!
|
6天前
|
Kubernetes Cloud Native Docker
云原生技术探索:容器化与微服务的实践之道
【10月更文挑战第36天】在云计算的浪潮中,云原生技术以其高效、灵活和可靠的特性成为企业数字化转型的重要推手。本文将深入探讨云原生的两大核心概念——容器化与微服务架构,并通过实际代码示例,揭示如何通过Docker和Kubernetes实现服务的快速部署和管理。我们将从基础概念入手,逐步引导读者理解并实践云原生技术,最终掌握如何构建和维护一个高效、可扩展的云原生应用。
|
13天前
|
Kubernetes Cloud Native 微服务
云原生之旅:从容器到微服务
【10月更文挑战第29天】在这篇文章中,我们将一起探索云原生的奥秘。云原生不仅仅是一种技术,更是一种文化和方法论。我们将从容器技术开始,逐步深入到微服务架构,最后探讨如何在云平台上实现高效的服务部署和管理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的技能。让我们一起踏上这段激动人心的云原生之旅吧!
|
14天前
|
运维 Kubernetes Cloud Native
云原生之旅:容器化与微服务的融合
【10月更文挑战第28天】 在数字化转型的浪潮中,云原生技术如星辰般璀璨,引领着企业IT架构的未来。本文将带你穿梭于云原生的世界,探索容器化技术和微服务架构如何携手共舞,打造灵活、高效的应用部署和运维模式。我们将通过实际代码示例,揭示这股力量背后的奥秘,并展现它们是如何为现代软件开发带来革新。准备好了吗?让我们启航,驶向云原生技术的深海。
|
15天前
|
Kubernetes 负载均衡 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第27天】Kubernetes(简称K8s)是云原生应用的核心容器编排平台,提供自动化、扩展和管理容器化应用的能力。本文介绍Kubernetes的基本概念、安装配置、核心组件(如Pod和Deployment)、服务发现与负载均衡、网络配置及安全性挑战,帮助读者理解和实践Kubernetes在容器编排中的应用。
47 4
|
14天前
|
Cloud Native 持续交付 云计算
云原生入门指南:从容器到微服务
【10月更文挑战第28天】在数字化转型的浪潮中,云原生技术成为推动现代软件开发的关键力量。本篇文章将带你了解云原生的基本概念,探索它如何通过容器化、微服务架构以及持续集成和持续部署(CI/CD)的实践来提升应用的可伸缩性、灵活性和可靠性。你将学习到如何利用这些技术构建和部署在云端高效运行的应用,并理解它们对DevOps文化的贡献。
36 2
|
16天前
|
Kubernetes 监控 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第26天】随着云计算技术的发展,容器化成为现代应用部署的核心趋势。Kubernetes(K8s)作为容器编排领域的佼佼者,以其强大的可扩展性和自动化能力,为开发者提供了高效管理和部署容器化应用的平台。本文将详细介绍Kubernetes的基本概念、核心组件、实践过程及面临的挑战,帮助读者更好地理解和应用这一技术。
48 3

热门文章

最新文章