Kubernetes已经成为容器编排领域的实际标准,想要使用基于容器应用的企业已经纷纷采用这种技术。Kubernetes最初并不是一款企业级IT产品,而只是Google Borg控制器的一个分支,企业可以使用其运行大规模云基础架构。由于最初它并非针对企业进行开发,因此需要对其进行一些改动才能够适应企业架构,让我们从网络开始。让Kubernetes适应现有企业网络的一种可行方式是使用软件定义网络产品,将其继承到Kubernetes,提供企业网络特性;而VMware NSX就是这样的一种产品。
Kubernetes允许开发和运维团队使用自动化技术来按需创建、管理和销毁容器组。一个基于微服务的应用程序需要数十种微服务,每一种又都包含一组容器。某些微服务可能只需要三到四个容器,但是其他微服务可能需要数百个容器。Kubernetes提供了管理微服务容器组以及这些微服务组成的应用的方法。
对于现在的DevOps来说,每天都会有数十种的改动;这些改动可能是为了添加全新特性或者修复现有代码bug。快速安装多种更新是敏捷性的最基本特性,而这也是DevOps、微服务和容器所承诺的。为了实现这些变更,需要启动新版本的容器并且销毁旧的容器,因此企业每天都需要创建和销毁数千个容器。
每个容器都需要安全地连接到正确的网络上。Kubernetes能够使用标准的Docker网络——虽然其和传统的企业网络存在很大差异,Kubernetes还能够使用其他网络提供商的产品。
如何在NSX中集成微服务
NSX网络使用和Kubernetes相同的自动化机制。应用程序可以通过NSX调用来定义所需的网络、负载均衡器、防火墙和路由器,并且软件命令可以创建和销毁网络组件。如果没有使用软件定义网络平台,那么很难对网络进行改动。在很多传统的企业网络中,管理员都需要将配置文件复制粘接到每一台物理交换机和路由器上。为了实现DevOps和容器的敏捷性,网络必须是软件定义和软件控制的。
NSX网络的好处之一就是分布式工作方式:负载均衡、防火墙、路由,所有这些都在每台物理服务器中实现,而不是某台集中设备上。NSX的分布式特性是将网络扩展到数千台容器的关键。通常我们会将NSX和vSphere hypervisor平台关联在一起,但是还有另外一个版本称为NSX-T,其能够通过Open vSwitch来和物理服务器还有hyperviosr协同工作。借助这两个版本,管理员可以将NSX网络应用于vSphere平台、物理服务器、其他hypervisor甚至是公有云中的虚拟机。未来的某个时间,将会有一种适用于所有平台的NSX产品,而不再是分别适用于vSphere和非vSphere平台的的管理产品。
将Kubernetes集成到NSX之后,基于微服务的应用就能够集成到企业网络中了。当开发人员告诉Kubernetes创建一个CRM(客户关系管理)系统容器时,NSX就会自动部署一个全新网络,为容器提供到CRM系统的网络访问。当开发人员完成当前工作、删除容器之后,Kubernetes会自动移除其所创建的网络。集成到Kubernetes的NSX能够为基于微服务的应用自动交付企业网络。原生云应用和传统应用程序的集成能够更好地体现传统应用程序的数据价值。
Kubernetes插件
Kubernetes的插件不仅仅限于NSX;Kubernetes文档列举了数十种网络插件。这之中的大多数是原生云网络平台,如CoreOS Flannel、Calico和Weave Cloud。这些工具能够改善各种原生云应用之间的网络连接。还有一些其它网络插件被设计用来集成到企业网络中。
如果NSX已经用于网络的其它部分,那么将Kubernetes集成到NSX中能够发挥***作用。将软件定义网络和容器编排工具合并是实现更好的应用敏捷性的重要一部分,而将NSX和Kubernetes互连能够实现更好的企业网络连通。