引言
按計算資源調度基本上是各大編排引擎的標配,Rancher在v1.2版本後也推出了這個功能。但部分朋友認爲當前的實現還並不是那麼智能,所以不知道如何按計算資源調度。故本文教大家如何按計算資源調度。
實現機制
Rancher的實現比較簡單,其主要是通過Infra services中的scheduler服務來實現,整體的邏輯架構如下:
scheduler會訂閱Rancher Events,主要是scheduler相關事件,當有調度需求時候,scheduler就會收到消息, 通過計算將合適的調度目標返回給cattle。比如說現在支持memory和cpu爲基準, 那麼scheduler會不斷根據metadata的數據變化來計算資源的使用量,最後可根據資源剩餘量爲調度目標排序, 這樣就可以完成按計算資源調度的目標。
之前有說,Rancher的實現並不智能,這在於在計算資源使用量的時候,Rancher並不是通過一套複雜數據採集機制來計算, 而是通過用戶在創建service的時候標註reservation的方式,這個地方很多朋友並沒有注意到:
除此之外,在每個節點的資源總量上也是可配置的,我們完全可以進行一個整體預留的設置,比如:
總結
這個實現看似簡單,其實這是提供了一個很好的擴展能力。如果我們有自己的監控採集體系,完全可以在scheduler的時候調用我們自身監控接口來計算資源,這樣就能達到我們所認可的“智能”了。
原文來源:Rancher Labs