GCE Network Load Balancer也可以輕易達到AutoScaler的功能...

截至目前為止,Network Load Balancer尚未能夠結合Instance Group的Auto Scaler設定,但是在創意無限的MiTAC GCP團隊裡,我們(感謝Sunny)化腐朽為神奇.... 下面是透過Auto Scaler加上Instance template中設定startup/shutdown script來動態的加入或移除Network Load Balancer的建置步驟,給大家參考 :D

1. 首先去要先設定network load balancer , target pool . 在這邊pool名稱我們設定為:lb-pool, 須注意,pool name必須在之後的startup與shutdown script中帶入...

2. 增加forwarding rule,並選擇 lb-pool 作為他的target pool

3. 設定instance template , 並且在template中增加startup-script / shutdown-script

為了方便貼上(關鍵就在這裡!):

startup-script
gcloud compute target-pools add-instances lb-pool --instances `hostname` --zone asia-east1-c

shutdown-script
gcloud compute target-pools remove-instances lb-pool --instances `hostname` --zone asia-east1-c

由於屆時主機需要具備compute engine的操作權限(startup/shutdown script用的...),我們必須在主機權限的部分設定該template所產生的主機具備Compute的"Read Write"的權限... 如果instance中有需要用到其他服務,也需要在這邊一併設定...


4. 建立instance groups,並確認autoscaling的設定打開,設定必須以CPU usage為監控項目,讓主機依照CPU設定的門檻做自動增加及減少的動作...


5. 一切設定妥當,就可以壓力測試一下服務啦...