NSX +Kubernetes:為業務帶來DevOps敏捷性
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互連能夠實現更好的企業網絡連通。