在生產環境橫跨數個實體設備的K8S環境中,若能夠結合VMware NSX-T一起運用,將可以讓多個Container順暢、自動且簡易地互相連通,而且還提供強大的工具來進行網路單位需求的除錯功能,本文先說明基本觀念,然後以實際操作來示範整個環境運作的情形。
本文主要和大家談論VMware NSX-T如何與Kubernetes結合,提供大型Container環境內的網路連接及維運功能。但開始前,應該先和大家介紹NSX-T這個產品。
VMware NSX-T設計及運用
關心VMware動向的夥伴們可能有注意到,從今年開始,尤其是在VMworld大會上,VMware持續地宣布並展示在各個不同IT、Cloud、DevOps面向上的全新方案。
與之前大家熟悉的NSX for vSphere不同,這些環境很多不見得是虛機、不見得是純vSphere資源池,甚至可能是公有雲環境。希望在這些新架構上,也都能協助各個客戶達成與之前使用NSX for vSphere,在VMware SDDC環境內相同的安全防護、集中管理、自動化部署等等效益。
因此,一個泛用、易於擴充、架構更強健的產品便是VMware網路安全部門在長遠進行設計與規劃的目標,而這個產品就是NSX-T。NSX-T在設計上要達成的願景如下所述:
支援異質平台(Heterogeneity)
除了vSphere平台外,能夠支援其他種類的Hypervisor,不與vCenter綁定。更進一步,可以支援在私有雲及公有雲環境,支援虛機與Container等。
隨應用發展需求(App-Aligned)
這個架構除了支援現有在虛機上運作的Client-Server、Java-Based、LAMP Stack等等應用外,對於後續的Cloud Native Application、Software as a Service等方案也都能夠持續支援。開發團隊無論是要採用虛機或是Container,都能夠得到NSX-T的支援與保護。
可擴展的方案(Extensible)
這個方案能夠跨不同環境運作,並且支援多種上層的自動化與組態工具,提供多專案、多租戶、DevOps整合的優勢。
在圖1內,各位可以看到透過NSX for vSphere和NSX-T的方案,希望在各個現有的資料中心∕分支機構應用,以及後續在新應用架構∕公有雲環境內,都能夠讓客戶享受到NSX在安全、自動化、彈性及業務持續性上的效益。
|
▲圖1 NSX for vSphere和NSX-T方案應用。 |
目前VMware已經宣布的幾個新方案,例如VMware Cloud Service、VMware Integrated Openstack內,大家都可以看到NSX-T在裡面占了重要角色。那在使用Kubernetes來作為大型Container生產環境的架構內,NSX-T的功能是什麼呢?
回憶一下前篇提到Kubernetes在架構上各個Container之間的網路連線方式設計,內容重新整理如下:
‧一個或多個Container會運作在Pod內。如果一個Pod內有兩個以上的Container,各個Container的服務埠與服務性質一定是不同的。
‧在同樣的K8S環境內,Pod與Pod之間的連接,一定不會經過NAT而是直接連接,即使這些Pod是位在不同的Kubernetes Node(虛擬機或實體機)上也一樣。
‧每個Pod會有一個獨一無二的IP地址。
‧K8S內連結Pod的邏輯網路與外部實體企業網路間的連接可以透過NAT,但也能夠直接透過直連路由的方式讓企業網路直接看到這些邏輯網段。
NSX-T整合Kubernetes
至於NSX-T整合K8S的機制,可以透過圖2進行示意說明。
|
▲圖2 NSX-T整合K8S。 |
1. 在K8S與NSX-T的情境內,K8S Node目前是以虛機的形式存在,而底層的Hypervisor可以是vSphere ESXi或是KVM。NSX-T的相關功能是以Host Preparation的方式安裝到各台Hypervisor上。在圖2內,依據正常的NSX-T安裝機制準備好兩台以上的虛擬化平台,在這些Hypervisor內可以運作NSX-T的邏輯交換器、邏輯路由器或是分散式防火牆。
2. K8S內的各個Node(Minion)現行支援Ubuntu或Red Hat特定版本的VM。在這些VM內,會在安裝時部署NSX的OVS(Open VSwitch)。