NSX +Kubernetes:為業(yè)務(wù)帶來(lái)DevOps敏捷性
Kubernetes已經(jīng)成為容器編排領(lǐng)域的實(shí)際標(biāo)準(zhǔn),想要使用基于容器應(yīng)用的企業(yè)已經(jīng)紛紛采用這種技術(shù)。Kubernetes最初并不是一款企業(yè)級(jí)IT產(chǎn)品,而只是Google Borg控制器的一個(gè)分支,企業(yè)可以使用其運(yùn)行大規(guī)模云基礎(chǔ)架構(gòu)。由于最初它并非針對(duì)企業(yè)進(jìn)行開(kāi)發(fā),因此需要對(duì)其進(jìn)行一些改動(dòng)才能夠適應(yīng)企業(yè)架構(gòu),讓我們從網(wǎng)絡(luò)開(kāi)始。讓Kubernetes適應(yīng)現(xiàn)有企業(yè)網(wǎng)絡(luò)的一種可行方式是使用軟件定義網(wǎng)絡(luò)產(chǎn)品,將其繼承到Kubernetes,提供企業(yè)網(wǎng)絡(luò)特性;而VMware NSX就是這樣的一種產(chǎn)品。
Kubernetes允許開(kāi)發(fā)和運(yùn)維團(tuán)隊(duì)使用自動(dòng)化技術(shù)來(lái)按需創(chuàng)建、管理和銷(xiāo)毀容器組。一個(gè)基于微服務(wù)的應(yīng)用程序需要數(shù)十種微服務(wù),每一種又都包含一組容器。某些微服務(wù)可能只需要三到四個(gè)容器,但是其他微服務(wù)可能需要數(shù)百個(gè)容器。Kubernetes提供了管理微服務(wù)容器組以及這些微服務(wù)組成的應(yīng)用的方法。
對(duì)于現(xiàn)在的DevOps來(lái)說(shuō),每天都會(huì)有數(shù)十種的改動(dòng);這些改動(dòng)可能是為了添加全新特性或者修復(fù)現(xiàn)有代碼bug??焖侔惭b多種更新是敏捷性的最基本特性,而這也是DevOps、微服務(wù)和容器所承諾的。為了實(shí)現(xiàn)這些變更,需要啟動(dòng)新版本的容器并且銷(xiāo)毀舊的容器,因此企業(yè)每天都需要?jiǎng)?chuàng)建和銷(xiāo)毀數(shù)千個(gè)容器。
每個(gè)容器都需要安全地連接到正確的網(wǎng)絡(luò)上。Kubernetes能夠使用標(biāo)準(zhǔn)的Docker網(wǎng)絡(luò)——雖然其和傳統(tǒng)的企業(yè)網(wǎng)絡(luò)存在很大差異,Kubernetes還能夠使用其他網(wǎng)絡(luò)提供商的產(chǎn)品。
如何在NSX中集成微服務(wù)
NSX網(wǎng)絡(luò)使用和Kubernetes相同的自動(dòng)化機(jī)制。應(yīng)用程序可以通過(guò)NSX調(diào)用來(lái)定義所需的網(wǎng)絡(luò)、負(fù)載均衡器、防火墻和路由器,并且軟件命令可以創(chuàng)建和銷(xiāo)毀網(wǎng)絡(luò)組件。如果沒(méi)有使用軟件定義網(wǎng)絡(luò)平臺(tái),那么很難對(duì)網(wǎng)絡(luò)進(jìn)行改動(dòng)。在很多傳統(tǒng)的企業(yè)網(wǎng)絡(luò)中,管理員都需要將配置文件復(fù)制粘接到每一臺(tái)物理交換機(jī)和路由器上。為了實(shí)現(xiàn)DevOps和容器的敏捷性,網(wǎng)絡(luò)必須是軟件定義和軟件控制的。
NSX網(wǎng)絡(luò)的好處之一就是分布式工作方式:負(fù)載均衡、防火墻、路由,所有這些都在每臺(tái)物理服務(wù)器中實(shí)現(xiàn),而不是某臺(tái)集中設(shè)備上。NSX的分布式特性是將網(wǎng)絡(luò)擴(kuò)展到數(shù)千臺(tái)容器的關(guān)鍵。通常我們會(huì)將NSX和vSphere hypervisor平臺(tái)關(guān)聯(lián)在一起,但是還有另外一個(gè)版本稱為NSX-T,其能夠通過(guò)Open vSwitch來(lái)和物理服務(wù)器還有hyperviosr協(xié)同工作。借助這兩個(gè)版本,管理員可以將NSX網(wǎng)絡(luò)應(yīng)用于vSphere平臺(tái)、物理服務(wù)器、其他hypervisor甚至是公有云中的虛擬機(jī)。未來(lái)的某個(gè)時(shí)間,將會(huì)有一種適用于所有平臺(tái)的NSX產(chǎn)品,而不再是分別適用于vSphere和非vSphere平臺(tái)的的管理產(chǎn)品。
將Kubernetes集成到NSX之后,基于微服務(wù)的應(yīng)用就能夠集成到企業(yè)網(wǎng)絡(luò)中了。當(dāng)開(kāi)發(fā)人員告訴Kubernetes創(chuàng)建一個(gè)CRM(客戶關(guān)系管理)系統(tǒng)容器時(shí),NSX就會(huì)自動(dòng)部署一個(gè)全新網(wǎng)絡(luò),為容器提供到CRM系統(tǒng)的網(wǎng)絡(luò)訪問(wèn)。當(dāng)開(kāi)發(fā)人員完成當(dāng)前工作、刪除容器之后,Kubernetes會(huì)自動(dòng)移除其所創(chuàng)建的網(wǎng)絡(luò)。集成到Kubernetes的NSX能夠?yàn)榛谖⒎?wù)的應(yīng)用自動(dòng)交付企業(yè)網(wǎng)絡(luò)。原生云應(yīng)用和傳統(tǒng)應(yīng)用程序的集成能夠更好地體現(xiàn)傳統(tǒng)應(yīng)用程序的數(shù)據(jù)價(jià)值。
Kubernetes插件
Kubernetes的插件不僅僅限于NSX;Kubernetes文檔列舉了數(shù)十種網(wǎng)絡(luò)插件。這之中的大多數(shù)是原生云網(wǎng)絡(luò)平臺(tái),如CoreOS Flannel、Calico和Weave Cloud。這些工具能夠改善各種原生云應(yīng)用之間的網(wǎng)絡(luò)連接。還有一些其它網(wǎng)絡(luò)插件被設(shè)計(jì)用來(lái)集成到企業(yè)網(wǎng)絡(luò)中。
如果NSX已經(jīng)用于網(wǎng)絡(luò)的其它部分,那么將Kubernetes集成到NSX中能夠發(fā)揮***作用。將軟件定義網(wǎng)絡(luò)和容器編排工具合并是實(shí)現(xiàn)更好的應(yīng)用敏捷性的重要一部分,而將NSX和Kubernetes互連能夠?qū)崿F(xiàn)更好的企業(yè)網(wǎng)絡(luò)連通。