接續前面的文章,對於在利用Kubernetes(K8S)的大型生產環境內,NSX-T如何提供網路接取及維運除錯的功能的展示,這裡將要與大家討論在Kubernetes環境內如何利用NSX-T做到Container間的微分段。
前篇文章透過圖1的示意圖,顯示在NSX-T整合K8S時Pod/Node/NSX-T/底層之Hypervisor間的關聯,以及各個Pod如何透過邏輯網路的方式在不用NAT的狀況下相互連通。
|
▲ 圖1 NSX-T整合K8S。 |
大家應該有發現,每個Pod除了將邏輯網路介面直接連往底層Hypervisor內的邏輯交換器外,Pod與邏輯交換器的接口前,也都受到分散式防火牆(Distributed Firewall)的防護。也就是說,在這個架構下,一樣能夠實作微分段,每一個Pod都是一個獨立可進行防護的單元。
以前的文章在進行NSX for vSphere內的微分段介紹時,曾與大家談論過,微分段機制的兩個重點:
1. 無論是同一網段或不同網段,能夠以最小虛機為單位,以集中管理的方式,做到虛機與虛機間的防護。
2. 能夠建立安全群組,以列出條件的方式,將安全群組與要管理的目標進行對應,做到部門、業務、專案間的虛機阻隔,進一步達到安全自動化。
上面的敘述,將虛機置換為K8S內的Pod,一樣可以成立。能夠做到微服務與微服務間,甚至微服務內、Pod與Pod間的最細緻安全防護。而且同樣地,可以利用群組的機制進行防火牆政策的設定。
但問題來了,以前在NSX for vSphere管理介面內建立安全群組時,可以用一個虛機的VM名稱、主機名稱、作業系統,或是在vCenter內是屬於哪個叢集、哪個Port Group、哪個Resource Pool來做分類,但Pod不是虛機啊?
其實,在生產環境內,最常用來做微分段分類條件的是安全標籤,在K8S的整合內,同樣有這個機制。當應用Team要部署微服務時,可以直接利用Label的方式進行Pod的註記。