本文介紹如何使用Auto Scaling同時管理阿里雲執行個體和受管理的執行個體(非阿里雲執行個體)。您可以通過雲助手將非阿里雲伺服器註冊為阿里雲受管理的執行個體,並在受管理的執行個體上安裝CloudMonitorAgent,然後將該受管理的執行個體添加到伸縮組中,便可以對伸縮組中的阿里雲執行個體和受管理的執行個體進行統一監控,根據監控指標的變化自動擴縮容阿里雲執行個體。
前提條件
登入阿里雲帳號。如果還未註冊,請先註冊阿里雲帳號。
已準備能夠訪問公網的非阿里雲伺服器。
應用情境
本文適用於非阿里雲伺服器上運行著一些存在明顯峰穀波動的無狀態業務,並且很難根據業務的波動自行進行擴縮容的情境。
基於以上情境,您可以藉助雲助手、CloudMonitor以及Auto Scaling功能,完成將非阿里雲的雲端服務器註冊為阿里雲受管理的執行個體並安裝CloudMonitor的Agent,然後將該受管理的執行個體添加到伸縮組中。Auto Scaling可以對伸縮組中的阿里雲執行個體和受管理的執行個體進行統一監控,根據監控指標的變化自動擴縮容阿里雲執行個體,協助您快速應對業務的波動。其具有以下優點:
業務高峰時,快速自動擴容阿里雲ECS執行個體,承載業務流量。
業務低峰時,快速自動縮容阿里雲ECS執行個體,協助您節省成本。
概念介紹
本文涉及的主要概念如下所示:
名稱 | 說明 | 相關連結 |
受管理的執行個體 | 您可以將非阿里雲伺服器通過雲助手註冊為阿里雲受管理的執行個體。註冊完成後,該伺服器即可以使用阿里雲提供的多種線上服務(例如雲助手、Auto Scaling、CloudOps Orchestration Service和雲效等服務)。 | |
雲助手Agent | 安裝在阿里雲伺服器或非阿里雲伺服器中的輕量級外掛程式,使用雲助手發送到阿里雲執行個體或非阿里雲執行個體上的命令都會通過雲助手Agent完成。 | |
CloudMonitorAgent | 無論您的主機是Elastic Compute Service,還是其他雲廠商的虛擬機器或物理機,通過在主機上安裝CloudMonitorAgent,CloudMonitor都可以為您提供主機的系統監控服務。 |
操作步驟
步驟一:註冊非阿里雲執行個體為阿里雲受管理的執行個體
在註冊受管理的執行個體前,請您提前準備好非阿里雲伺服器,本樣本以註冊3台非阿里雲伺服器作為阿里雲受管理的執行個體為例,更多資訊,請參見阿里雲受管理的執行個體。
建立註冊碼。
在ECS管理主控台上建立受管理的執行個體的註冊碼,產生安裝指令碼並儲存到本地。具體操作,請參見步驟一:建立註冊碼。安裝指令碼樣本(例如
Linux(.deb)
類型)如下:# 下載雲助手用戶端deb包。 sudo wget https://aliyun-client-assist.oss-accelerate.aliyuncs.com/linux/aliyun_assist_latest.deb # 安裝最新版本雲助手用戶端。 sudo dpkg -i aliyun_assist_latest.deb # 註冊受管理的執行個體。 sudo aliyun-service --register --RegionId "cn-hangzhou" \ --ActivationCode "a-hz011wm7BNH3JnTMyx22****VJ6d" \ --ActivationId "A4C23294-D8E9-5591-87A2-CCA2****2AC9"
安裝雲助手Agent並註冊受管理的執行個體。
擷取安裝指令碼後,您需要在3台非阿里雲伺服器上安裝雲助手Agent並將其註冊為阿里雲受管理的執行個體。
登入非阿里雲伺服器。
在非阿里雲伺服器上,直接粘貼上述安裝指令碼,運行該指令碼安裝雲助手Agent並註冊受管理的執行個體(註冊成功後會自動為該執行個體分配一個ID)。
查看受管理的執行個體。
受管理的執行個體註冊成功後,在ECS管理主控台的ECS雲助手頁面的受管理的執行個體頁簽下,查看並記錄該受管理的執行個體ID。3台受管理的執行個體分別命名為Test-01、Test-02、Test-03,如下圖所示。
說明阿里雲受管理的執行個體ID均以
mi-
開頭,阿里雲ECS執行個體ID均以i-
開頭。
步驟二:安裝CloudMonitorAgent
關於CloudMonitorAgent的更多資訊,請參見安裝和卸載CloudMonitor外掛程式。
登入受管理的執行個體。
執行以下命令,安裝CloudMonitorAgent。
ARGUS_VERSION=3.5.9.11 /bin/bash -c "$(curl -s https://cloudmonitor-agent.oss-cn-hangzhou.aliyuncs.com/Argus/agent_install_necs-1.8.sh)"
執行以下命令,查看CloudMonitorAgent狀態。
ps aux | grep argusagent | grep -v grep
顯示類似如下資訊,說明CloudMonitorAgent狀態正常,即表示已成功安裝CloudMonitorAgent。
root 12590 0.0 0.1 33440 6924 ? Ss 15:55 0:00 /usr/local/cloudmonitor/bin/argusagent -d root 12592 0.0 0.4 850972 16096 ? Sl 15:44 0:00 /usr/local/cloudmonitor/bin/argusagent
說明在CloudMonitor控制台的主機監控頁面,您也可以看到該受管理的執行個體已安裝CloudMonitorAgent,例如可以看到受管理的執行個體的CPU使用率、記憶體使用量率以及磁碟使用率等情況。
步驟三:將受管理的執行個體添加至伸縮組
注意事項
在操作本步驟前,您需要注意以下事項:
您需要根據實際業務需求選擇合適的監控指標為伸縮組建立警示任務,更多資訊,請參見警示任務概述。
如果伸縮組中存在阿里雲執行個體和受管理的執行個體時,警示任務會以伸縮組中當前所有執行個體的整體監控指標作為警示依據,由於受管理的執行個體目前僅支援Agent的監控指標,建議您選擇Agent類型的警示指標。
伸縮組不會管理受管理的執行個體的生命週期,您只能手動將受管理的執行個體從伸縮組中移出,移出後受管理的執行個體並不會被釋放。
操作步驟
建立伸縮組。
僅ECS類型的伸縮組支援管理受管理的執行個體,故本步驟需建立ECS類型伸縮組(例如Scalinggroup_ecs),具體操作,請參見建立伸縮組。
建立並啟用伸縮配置。
具體操作,請參見配置伸縮配置(ECS執行個體)。
啟用伸縮組。
具體操作,請參見啟用或停用伸縮組。
建立伸縮規則。
本步驟以建立2條簡單規則類型的伸縮規則為例,具體操作,請參見建立伸縮規則。
伸縮規則(Add1):表示增加1台ECS執行個體的擴容伸縮規則。
伸縮規則(Reduce1):表示減少1台ECS執行個體的縮容伸縮規則。
建立警示任務。
本步驟以(Agent)CPU使用率監控指標為例,建立2條警示任務,確保伸縮組中所有執行個體的整體CPU平均使用率維持在40%~60%之間,具體操作,請參見配置警示任務。
警示任務(ScaleOutAlarm):警示指標選擇(Agent)CPU使用率監控時,監控指標選擇Average(平均值)>=60%,警示觸發規則選擇擴容伸縮規則(Add1)。即當伸縮組中所有執行個體的整體CPU平均使用率大於60%時,自動觸發增加1台ECS執行個體。
警示任務(ScaleInAlarm):警示指標選擇(Agent)CPU使用率監控時,監控指標選擇Average(平均值)<= 40%,警示觸發規則選擇縮容伸縮規則(Reduce1)。即當伸縮組中所有執行個體的整體CPU平均使用率小於40%時,自動觸發減少1台ECS執行個體。
將3台受管理的執行個體手動添加至伸縮組(Scalinggroup_ecs)中。
重要伸縮組中的受管理的執行個體只能手動從伸縮組中移出。
在伸縮組(Scalinggroup_ecs)詳情頁,單擊執行個體列表頁簽。
單擊受管理的執行個體頁簽,然後單擊添加受管理的執行個體。
在彈出的添加受管理的執行個體頁面,選擇需要託管的執行個體,然後單擊表徵圖。
單擊確認添加。
您可以在受管理的執行個體頁簽下查看到已添加的受管理的執行個體。
監控驗證
情境一:伸縮組僅含3台受管理的執行個體且受管理的執行個體無負載
如果伸縮組中的當前受管理的執行個體沒有負載,即受管理的執行個體的整體CPU平均使用率小於40%,理論上系統會自動觸發警示任務(ScaleInAlarm)導致伸縮組中減少1台執行個體,但由於伸縮組中僅包含受管理的執行個體且該執行個體只能手動添加和移出,實際會產生如下情況:
例如在22:01~22:07時間段,受管理的執行個體的CPU平均使用率小於40%,系統觸發的警示任務(ScaleInAlarm)執行異常。
例如在22:01~22:07時間段,實際執行縮容伸縮活動時被拒絕(執行個體數量並沒有減少),您可以單擊查看拒絕原因查看詳情。
情境二:伸縮組中僅含3台受管理的執行個體且受管理的執行個體CPU使用率維持在90%左右
通過壓測工具(例如lookbusy工具)對伸縮組中的受管理的執行個體進行壓測時,如果伸縮組中當前3個受管理的執行個體的CPU使用率維持在90%左右,即伸縮組中執行個體的CPU平均使用率大於60%,實際會產生如下情況:
例如在22:14~22:25時間段,受管理的執行個體的CPU平均使用率大於60%,系統自動觸發警示任務(ScaleOutAlarm)執行成功。
例如在22:14~22:25時間段,執行擴容活動導致伸縮組中新增2台阿里雲ECS執行個體(即由原來的3台增加為5台執行個體)。待最終穩定後(例如在22:25之後檢測CPU平均使用率維持在40%~60%之間),擴容伸縮活動結束。
情境三:對伸縮組中的3台受管理的執行個體取消壓測
基於情境二,當前伸縮組中有2台阿里雲ECS執行個體和3台受管理的執行個體,CPU平均使用率維持在40%~60%之間。如果對伸縮組中的3個受管理的執行個體取消壓測後,伸縮組整體執行個體CPU平均使用率小於40%時,理論上系統會自動觸發警示任務(ScaleInAlarm)導致伸縮組中減少執行個體,但由於受管理的執行個體只能手動添加和移出,實際會產生如下情況:
例如在22:48~22:54時間段,執行縮容活動導致伸縮組中減少2台阿里雲ECS執行個體(即由原來的5台減少為3台執行個體)。待最終穩定後(例如在22:55之後檢測CPU平均使用率仍然小於40%),由於受管理的執行個體只能手動移出,故縮容伸縮活動執行失敗。
例如在22:55後,伸縮組中整體執行個體的CPU平均使用率仍小於40%,系統自動觸發警示任務(ScaleInAlarm)減少伸縮組中的執行個體,但由於伸縮組中只有3台受管理的執行個體且該執行個體只能手動移出,故警示任務執行異常。