自 Google 向開源社群發布 Kubernetes 以來的十年中,它已成為編排和管理的領先平台。
翻譯自 Kubernetes Clusters H**e Massive Overprovisioning of Compute and Memory,作者:Jeffrey Burt。 自 Google 向開源社群發布 Kubernetes 以來的十年中,它已成為編排和管理軟體容器和微服務的首選平台,擊敗了 Docker Swarm 和 Mesosphere 等競爭對手。 (還記得他們嗎? 十年後,你不會記得了。 構建軟體堆疊的公司已經採用 Kubernetes 來建立自己的容器平台,例如 Red Hat 的 OpenShift 和 VMware 的 Tanzu,幾乎每個雲服務提供商都在其眾多服務下提供 Kubernetes,而且速度非常快。
根據雲原生計算協會的資料,如今有超過 560 萬開發人員使用 Kubernetes,佔容器編排工具空間的 92%。 Kubernetes 非常強大。 Cast AI 聯合創始人兼首席產品官 Laurent Gil 表示,Cast AI 是一家初創公司,其基於 AI 的自動化平台旨在幫助組織優化對 Kubernetes 的使用,這對於軟體開發人員和 DevOps 工程師來說至關重要在日益分布式和加速的 IT 世界中。
將 Kubernetes 視為乙個很棒的工具箱,“Gil 告訴 The Next Platform。 “我們過去一直使用單體式應用程式。 Kubernetes 的好處是你可以將你的應用程式分解成更小的部分,好處是一些部分可以複製,所以你可以很容易地擴充套件。 想象一下,你是Netflix——他們實際上使用Kubernetes——並且有數百萬人同時湧入**。 如果您使用的是 Kubernetes,則可以無限複製這些容器來處理此流量。 容器非常適合這種情況。 您可以擴充套件它。 它幾乎就是這樣設計的。 ”
也就是說,開發人員在雲中使用 Kubernetes 時會面臨挑戰,其中乙個關鍵挑戰是為應用程式配置 CPU 和記憶體。 去年,這家成立五年的公司研究了開發人員和 DevOps 人員的能力**,了解 Kubernetes 應用程式所需的 IT 資源量,結果並不好。
根據 GIL 的說法,開發人員通常要求比實際需要的計算和記憶體多得多,從而導致大量超支。 2022 年,請求的 CPU 和配置的 CPU 之間存在很大差距——37%,該公司發現去年差距進一步擴大到 43%。 這是基於開發人員想法的超額預配金額。
這意味著在一年之內,浪費實際上會增加,而不是減少,“他說。 “現在應該很清楚了。 如果您需要兩個 CPU,只需配置兩個。 不要配置三個。 但比去年更糟。 ”
Cast AI 研究人員還研究了開發人員實際使用了多少個配置的 CPU。 平均而言,這個數字是13%。 他們想看看這些數字在較大的集群中是否更好,但在具有 1,000 個或更多 CPU 的集群中,CPU 利用率僅為 17%。
具有 30,000 個或更多 CPU 的集群實現了 44% 的利用率,但只有他們檢查的系統的 1%。
所有這些都表明 CPU 被大量過度配置,大部分計算能力處於空閒狀態。
我沒想到結果會很好,但我沒想到會這麼糟糕,“他說。 “平均而言,您的超額配置是 8 倍。 真正有效的那個。 在 100 臺機器中——CPU 是 Kubernetes 中最昂貴的元件——你只使用了 13 臺。 平均而言,您不會使用其餘部分。 如果您有 100 臺計算機,則它們都已使用,但每台計算機僅使用 13%。 Kubernetes 就像房間裡的煤氣。 它將填滿空間。 如果該計算機上正在執行應用程式,則它們都將被使用。 它們將僅以 13% 的利用率使用。 ”
在 2024 年 Kubernetes 成本基準報告中,Cast AI 檢視了去年 1 月 1 日至 12 月 31 日期間在 AWS、Azure 和 Google Cloud Platform 上執行的 4,000 個集群,然後使用供應商的平台對其進行了優化。 他們排除了少於 50 個 CPU 的集群進行分析。 另乙個需要關注的領域是:跨雲託管的 Kubernetes 平台的利用率。 在 AWS 上的彈性 Kubernetes 服務 (EKS) 和 Microsoft Azure 上的 Kubernetes Service (AKS) 上,利用率徘徊在 11% 左右,而在 Google Cloud 的 Google Kubernetes Engine (GKE) 上,利用率甚至更高,為 17%。 GKE 上的集群往往比其他兩個集群大,並且該服務提供了自定義例項。
谷歌是 Kubernetes 的來源,它可能有精明的使用者,它可以以這種方式翻譯,“Gil 說。 “但你知道嗎? 坦率地說,即使是 17% 也不好。 它仍然超額分配了五倍多。 想一想:你去找你的首席技術官,你說,'你知道嗎? 您可以將雲成本降低五倍,因為您實際上不需要那麼多。 ’”
Cast AI 還檢視了記憶體使用情況,並注意到平均記憶體使用率為 20%。 然而,記憶體比CPU便宜,所以如果CPU利用率更高會更好,GIL說。 但事實並非如此。
人們更關注記憶,從本質上講,當他們更專注時,他們會做得更好,“他說。 “他們更關注記憶體,因為當容器記憶體不足時,容器會停止並重新啟動。 CPU 具有彈性。 您可以從 0% 到 80%。 總有空間。 記憶體,你不能超過 100。 如果超過 100,它將崩潰。 它被稱為“失憶”。 oom’。這是對DevOps和Kubernetes最大的恐懼。 他們更關注記憶,所以稍微好一點,但平均而言,它仍然太多了五倍。 ”
雲平台之間沒有太大區別,Azure的記憶體利用率最高,為22%,其次是AWS的20%和Google Cloud的18%。
研究人員在報告中寫道,隨著企業準備增加在雲服務上的支出,他們需要解決這一利用率問題。 預計今年全球終端使用者在公共雲服務上的支出將達到 6788 億美元,增長 20。 從 2023 年的 5636 億美元4%。2022 年 8 月至 2023 年 8 月期間,AWS 在其最受歡迎的美國地區對 Spot 例項的定價平均為 23%。
十年前,許多積極涉足雲計算的組織驚訝地發現,成本開始堆積,這與資料主權和監管問題一起,成為過去幾年資料遣返背後的主要驅動力。 Gil 說,提高資源利用率會有所幫助。
他說,問題在於確定所需的資源仍然是乙個高度手動的過程。 開發人員不知道他們的應用程式或集群需要什麼,因為他們還沒有大規模地看到它。 Gil 說,很難猜測微服務需要什麼資源,並補充說,隨著 Kubernetes 變得更加複雜,它不會變得更容易。
我們稱之為非線性問題,你必須實時調整許多小變數,每個變數都會影響其他變數,“他說。 “這不僅僅是因為你只使用了其中的10%,而是你可能沒有使用正確的變數。 這就是人類過度供應的原因。 他們知道這是不對的。 但出於某種原因,他們不知道該怎麼辦。 ”
越來越多的供應商正在提供自動化工具和平台,以改善雲中的資源優化。 該系列包括 Cisco Systems 等知名供應商,以及 AppDynamics、Nutanix、AppTio、VMware 和 Flexera。 Cast AI 吹噓其平台可以使用 AI 技術為組織節省 50% 或更多的雲成本。 2023 年 11 月,該公司獲得資金支援,在 B 輪融資中籌集了 3500 萬美元,使籌集的總金額達到 7300 萬美元。