使用AIOps優化Kubernetes集羣的成本

a01.png

Kubernetes是Google開源的改變遊戲規則的產品之一,它使許多組織的工做流程更加高效。有了Kubernetes,能夠根據應用程序需求彈性管理應用程序的資源需求。它提供了根據工做負載需求爲應用程序分配所需的CPU,磁盤和RAM的靈活性。算法

Kubernetes不只能夠節省組織的時間和精力,並且還能夠爲組織節省大量資金。這是由於如今能夠根據CPU使用率,RAM使用率和任何其餘自定義指標來水平擴展部署。這致使在基於雲的部署上節省了大量成本,不然會因爲總體系統垂直擴展性質的基礎架構要求而致使成本降低。docker

a02.jpeg

毫無疑問,Kubernetes經過簡化基於docker的微服務的部署和管理複雜性而使組織受益。可是運行k8s集羣的成本仍然是其每個月帳單的很大一部分。咱們真正須要的是一種能夠下降k8成本而又不影響平臺穩定性和性能的策略。架構

K8S費用激增的緣由:

咱們Opslyft將此視爲挑戰,並試圖找到解決成本節約問題的解決方案。咱們就應該採起什麼方法以及致使k8s成本激增的確切方法進行了頭腦風暴。咱們得出了有關此問題的一些觀察結果:框架

  • 沒有啓用集羣級別的彈性伸縮器。因爲擔憂Pod處於pending 狀態而不能被調度,只能預留多餘的Node節點,致使Kubernetes集羣處於閒置狀態而形成的成本很高。
  • Kubernetes應用程序的基本執行單元是pod。在調整羣集的節點數量以前,必須配置合適的Pod擴縮策略,這樣才能使應用程序的Pod數量以具備成本效益的方式擴展,而不會出現Pod 資源利用率不高。
  • 在Pod內運行的容器對請求和使用的CPU和內存量都有限制。設置這些限制時必須當心,由於能夠經過爲其分配最佳計算資源來進一步優化在容器中運行的容器的成本。
  • 對於非生產部署,應該有一個調度機制以使其僅在工做時間內可用。這將經過在定義的時間擴展部署來節省成本,並使部署僅在用戶須要使用時可用。
  • 大多數生產應用程序不在spot實例上運行的惟一緣由是因爲實例回收而可能致使關鍵任務服務中斷。可是,若是能夠經過從新調度Pod來妥善處理spot實例回收,則能夠節省大量成本。此處要求,服務須要可以優雅停機,而後一些組件可以感知spot機型的回收時間,在回收以前作好優雅停機處理。

在與咱們的一位客戶合做時,咱們發佈了有關Kubernetes集羣成本狀態的基準數字,而且鑑於上述觀察結果是正確的,這浪費了多少成本。如下是咱們發佈的報告中的一些統計信息:微服務

a03.jpg

咱們爲客戶提供的解決方案:工具

通過咱們的分析,咱們意識到,實施上述解決方案後,Kubernetes集羣每一年可能節省的成本機會超過100,000美圓。解決挑戰的方法是創建一個能夠知足如下成功標準的系統:性能

  • 應該提供清晰的可見性並詳細主動監控Kubernetes成本。
  • 應該根據資源消耗模式自動調整集羣中的節點數。
  • 應該根據易於配置的指標自動調整應用程序所需的Pod數量
  • 應根據Pod的CPU和RAM使用率來調整容器資源配給
  • 若是出現spot回收事件,應適當地從新調度Pod,以防止服務/應用程序級別的任何中斷

a04.jpeg

edisonContainer

edisonContainer是一個AIOps系統,致力於在不影響平臺穩定性和正常運行時間的前提下,優化Kubernetes集羣的成本。一旦在Kubernetes集羣中啓動並運行,它將執行如下功能:優化

  • 提供自定義儀表板和Excel報告,以加強對容器成本的可見性。
  • 與Grafana其餘BI工具集成,以生成容器成本的儀表板。
  • 根據資源消耗模式自動調整集羣中節點的數量。
  • 自動化,用於根據易於配置的指標來調整應用程序所需的Pod數量。
  • 針對可用資源和相關成本發佈有關容器利用率的通知
  • 從集羣中的每一個節點捕獲spot終止事件,並適當地將Pod從新安排到其餘節點。

如下是有關edisonContainer如何在Kubernetes集羣上做爲框架部署的高級示意圖:spa

a06.png

結果

咱們在客戶的基礎架構之一中部署了edisonContainer。在部署edisonContainer以後,組織發現瞭如下顯著的成本節省:3d

  • Kubernetes集羣的平均每個月帳單從〜$ 30k降至〜$ 17k
  • 合理分配每一個Pod資源所節省的費用百分比-> 20%
  • 非工做時間縮減形成的節省百分比-> 15%
  • 使用競價型實例節省的百分比-> 40%
  • 經過調整集羣大小節省的百分比-> 20%

根據以上結果,咱們預計該公司到年末將在Kubernetes上節省超過100,000美圓。若是發生這種狀況,咱們將假設咱們在公司成功實現容器優化的過程當中僅扮演了重要的角色。

下一步

下一步,咱們正在努力增長對其餘容器編排系統的支持。 Mesos-Marathon在咱們的即時列表中。一樣,不要忘記,咱們正在關注不斷改進用於識別容器化環境中節省成本的其餘途徑的算法。

相關文章
相關標籤/搜索