作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與新應用遞送方案的介紹與推廣。

在前篇內我們示範了如何把NSX Advanced Load Balancer的服務引擎,於需求時由管理者手動進行橫向擴充的方式,但大家肯定覺得這樣不足夠。和老闆報告時更好的方法,肯定是設計時已有『自動』的機制在內,當應用交易量過大,剩餘資源不足時,不需要管理者手動介入,即使在三更半夜,Avi也能夠自動地於需要時擴充負載平衡容量。

行不行呢?當然可以的。在Avi的方案內,上述的機制叫做Auto-Rebalance。如果啟動這個機制,管理者可以選擇要依據不同指標,來判斷是否要進行服務引擎的新增或是縮減。當服務引擎上的使用量/利用率超過了指定門檻的一定時間,Avi Controller就自動新增服務引擎,並將應用之Virtual Service擴張到此新引擎上。而如果對應的使用量 / 利用率低於指定門檻時,同樣地就可將應用所使用的服務引擎縮減,而未使用的服務引擎也可刪除掉以節省資源。

這邊我們談細一點,討論一下相關的配置細節。Auto-Rebalance功能目前不能使用UI介面,要配置時管理者必須登入到Controller內以Command Line下指令。相關配置的流程是

  1. 以SSH登入Controller,輸入帳號密碼
  2. 打Shell指令進入Avi Command Line
  3. 選定對應的租戶 (Tenant) 以及雲 (Cloud),然後進入服務引擎群組 (Service Engine Group) 開始進行相關配置

有幾個主要的配置選項通常是需要填寫的:

  • 在這組Service Engine Group內啟用Auto-Rebalance功能 (auto_rebalance)。預設是沒有打開
  • 要採用哪種指標來判斷是否需要啟用擴充 (auto_rebalance_criteria),Avi 目前有支持的包括了服務引擎的CPU、流量 (mbps)、封包數 (pps)、以及未完成的連線數目 (open-connections)
  • 這個指標可以允許的最高上限 (auto_rebalance_capacity_per_se)
  • 相對於上面的上限,要進行scale-out動作的門檻是多少百分比 (max_cpu_usage),而要進行scale-in動作的門檻又是多少百分比 (min_cpu_usage)
  • 如果上次auto_rebalance的擴充或縮減動作發動後,要至少相隔多久才能再次啟動(auto_rebalance_interval)

上面這樣寫看不太懂吧,這邊我直接給大家一些配置參考範例。第一個是我直接在lab內做,接下來會展示的範例。此配置內我們切換到admin tenant,名稱叫做Scaleout-Cloud的這個雲環境,並配置環境內的Default-Group服務引擎群組。此群組內,我要求

  • 啟用 auto_rebalance
  • 採用的指標是服務引擎的CPU使用率
  • CPU使用率的上限門檻是50%(超過50% CPU 後,則要擴充服務引擎),CPU使用率的下限門檻是20%(低於20% CPU 後,則要縮減服務引擎)

switchto tenant admin                                                   
switchto cloud Scaleout-Cloud                                                   
configure serviceenginegroup Default-Group                                                   
auto_rebalance                                                   
auto_rebalance_criteria se_auto_rebalance_cpu                                                   
max_cpu_usage 50                                                   
min_cpu_usage 20                                                   
save

再一個範例。此配置內管理者切換到Avi tenant, 名稱叫做azure的這個雲環境,並配置環境內的Default-Group服務引擎群組。此群組內,管理者要求

  • 啟用 auto_rebalance
  • 採用的指標是服務引擎的封包處理量 (pps)
  • 封包處理量的上限訂為200,000 pps
  • pps的上限門檻是˙70%(超過140,000 pps 後,則要擴充服務引擎),下限門檻是30%(低於60,000 pps 後,則要縮減服務引擎)

switchto tenant Avi                                                   
switchto cloud azure                                                   
configure serviceenginegroup Default-Group                                                   
auto_rebalance                                                   
auto_rebalance_criteria se_auto_rebalance_pps                                                   
auto_rebalance_capacity_per_se 200000                                                   
max_cpu_usage 70                                                   
min_cpu_usage 30                                                   
save

先寫到這邊。相關的配置參數詳細說明如果大家有興趣,請參考Avi網站內的說明: https://avinetworks.com/docs/21.1/how-to-configure-auto-rebalance-using-avi-cli/ 。本篇內我們只有說明相關的配置指令,相信大家看了沒有什麼感覺。下篇內,我會用真實環境來展示前面第一個配置,搭配簡單的壓測,讓大家看到當Avi服務引擎之使用率過高或降低時,Avi能夠監測到這樣的狀況,並且自動去新增/移除服務引擎,做到負載平衡層的Auto-Scale。