天天看點

如何實作Docker應用的自定義彈性伸縮

現在有很多客戶很關心應用的自動彈性伸縮,有些客戶也有自己的監控架構,并希望能跟阿裡雲容器服務進行內建。阿裡雲容器服務提供了服務彈性伸縮觸發器,并能夠跟監控架構內建來實作自定義的服務自動彈性伸縮。

阿裡雲容器服務會自動采集容器的監控資料,并可以通過內建将監控資料發送到三方的監控架構中。有了監控資料,我們可以在監控架構中定義自己的報警規則,當名額發生報警的時候調用阿裡雲容器服務提供的觸發器來進行容器的擴容或者縮容。 下面用Influxdb,Kapacitor來介紹怎樣通過觸發器跟監控架構內建實作自定義彈性伸縮。

在阿裡雲容器服務的應用清單中,點選要進行自動擴容控制的應用,進入後點選“建立觸發器”

如何實作Docker應用的自定義彈性伸縮

然後選擇“資源伸縮”,并選擇要伸縮的服務名

如何實作Docker應用的自定義彈性伸縮

生成的觸發器如下:

如何實作Docker應用的自定義彈性伸縮

調用sale out的時候需要添加參數&type=scale_out&step=2.

包括監控時序資料庫Influxdb, 監控報警架構Kapacitor,及界面展現Grafana. 我們可以用一個模闆來部署:

如何實作Docker應用的自定義彈性伸縮
如何實作Docker應用的自定義彈性伸縮

部署好的應用:

如何實作Docker應用的自定義彈性伸縮

建立報警規則檔案。在 Kapacitor中配置報警規則,并當報警是調用擴容觸發器URL.

通過Web遠端終端或者Docker Exec進入Kapacitor容器, 增加報警規則,比如我們對CPU名額設定報警規則,建立/etc/acs/cpu.tick檔案,内容如下:

如何實作Docker應用的自定義彈性伸縮