阿裡雲容器服務會自動采集容器的監控資料,并可以通過內建将監控資料發送到三方的監控架構中。有了監控資料,我們可以在監控架構中定義自己的報警規則,當名額發生報警的時候調用阿裡雲容器服務提供的觸發器來進行容器的擴容或者縮容。 下面用influxdb,kapacitor來介紹怎樣通過觸發器跟監控架構內建實作自定義彈性伸縮。
在阿裡雲容器服務的應用清單中,點選要進行自動擴容控制的應用,進入後點選“建立觸發器”
然後選擇“資源伸縮”,并選擇要伸縮的服務名
生成的觸發器如下:
調用sale out的時候需要添加參數&type=scale_out&step=2.
包括監控時序資料庫influxdb, 監控報警架構kapacitor,及界面展現grafana. 我們可以用一個模闆來部署:
模闆中通過标簽“ aliyun.monitoring.addon.influxdb”來指定将阿裡雲容器服務中的監控資料發送到influxdb.
在阿裡雲容器服務中增加一個模闆,并通過模闆建立應用:
部署好的應用:
建立報警規則檔案。在 kapacitor中配置報警規則,并當報警是調用擴容觸發器url.
通過web遠端終端或者docker exec進入kapacitor容器, 增加報警規則,比如我們對cpu名額設定報警規則,建立/etc/acs/cpu.tick檔案,内容如下:
這裡對監控的cpu名額"docker_container_cpu"按叢集及服務進行聚合然後判斷當usage_percent>70的時候進行服務擴容。
類似,我們也可以增加一個縮容的報警規則。
定義報警規則并啟用
在kapacitor容器中執行如下指令定義并啟用報警規則。
這樣當cpu的使用率超過70%的時候,會自動調用擴容觸發器進行容器的擴容。