作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與新應用遞送方案的介紹與推廣。
無論是設定Local Server Load Balancer、WAF、Global Server Load Balancer等等應用遞送機制,在NSX Advanced Load Balancer (Avi Networks) 內都是採用”Virtual Service”與”Pool”來分別對應在前端與後端需求的應用配置。在本系列的前十篇我們討論了Avi實體上的各個構件以及安裝的流程。接下來是真正的應用遞送功能配置部分,我想很簡單地與大家介紹這兩個最重要的邏輯構件。
在Avi的名詞內,
- Pool代表的是與後端Backend Server的配置連接。有哪些伺服器?Health Check如何進行?要不要進行連線堅持?這些與後端真正應用伺服器相關的配置會建立在Pool裡面
- Virtual Service代表的是面對用戶的前端介面。用戶要往哪個Virtual IP哪個Port連接?這個應用是哪一種?要不要放憑證?要不要進行安全防護以及HTTP這邊的控制與改寫?這些配置就是放在Virtual Service內。
那麼本篇就先從Pool的相關配置做介紹。在不同Cloud裡面Pool的設定會有些許的不同,但一般管理者在設定時,會有三個主要的頁面:
Settings
是通常對應到這個Pool最主要的相關設定。基本上幾個最重要的參數都是在這裡配置:
- Pool的名稱
- 在Server需要關閉中斷連線時,Graceful Disable(逐步將現有用戶連線中止)的等待時間。
- 選擇這個應用指定的Load Balancing機制,像是Least Connection / Round-Robin / Consistent Hash…等等。
- 在公有雲上,要不要對應AutoScale機制來自動增減後端的Server(如AWS的AutoScaling Group)。
- 連線堅持 (Session Persistence) 的配置方式,如對應不同的Client IP,或是針對HTTP Cookie or Application Cookie來讓用戶連線都可以持續連到後段的單一Server上
- Server健康檢查 (Health Check) 的配置選擇,管理者可以在這邊選擇用系統的HTTP/HTTPS/Ping等等不同的預設機制,或是在Avi的UI介面內,自訂出一個Health Check的機制(如要檢查哪個網頁,HTTP回應值應該是多少,TCP哪個..),然後再配置到此
- 對後端伺服器是否要啟用SSL。對於HTTPS應用,管理者可能考慮只需要在用戶到LB端之間採用HTTPS,LB到Backend Server跑HTTP就好 (SSL Offload)。但也有許多客戶由於安全考量,LB端到Backend Server間也要跑HTTPS。此時這裡就可以啟用往後端的SSL,且設定對應的SSL Profile等。
Servers
這裡是選擇後端有哪些Servers。管理者可以一個一個IP來設定Server的網路位址,用FQDN反查,或是直接輸入一段IP範圍也可。在某些Cloud裡面,管理者可以直接選Network,然後Avi會去將接到這個Network上的所有虛機列出來,讓管理者來勾選。
同時在不同Cloud裡面,Server也可能是透過群組的方式來進行配置。如果環境內有NSX-T (NSX-T Cloud) / NSX for vSphere (整合在vCenter Cloud內),Server的選擇可以直接是一個Security Group。AWS的環境內,這邊可以直接是EC2內的一個Auto Scaling Group。
在每一個Server內,可以選擇應用是要連接到哪個Port(如果與預設值不同),並且配置對應的Ratio,也就是依據Server本身的效能,給予不同權重的概念。
Advanced
通常這裡我們會建議管理者直接指定這個Pool是對應在哪個Network裡,此時提供服務的Service Engine就會伸一隻腳到這個Network來。Avi通常可以自動依據Backend Server的 IP 地址來自行調配,可是若管理者可以明確指定當然是最好。
其他在這邊的相關配置有包括像是如果整個Pool都失效了,是單純將用戶連線關閉,或是回應什麼訊息 / 轉址到哪些地方。還有是否要將用戶的連線做SNAT到自己身上。如前面文章有討論,Avi的預設模式是Proxy機制,用戶到Avi的連線預設會改用Avi自己的IP在連往後端Backend Server。但對於某些特定的舊型應用一定要看到網路層用戶IP的,Avi還是可以改用路由模式然後不做SNAT啦。
所以利用Pool已經將重要應用的伺服器包含在內了。但要怎麼樣進行對應的負載平衡以及服務遞送呢?下一篇就來討論Virtual Service。
Comments
0 Comments have been added so far