筆記。 翻譯。:美國 DevOps 工程師 Sid Palas 使用 作為資訊藉口,我比較了來自世界領先的雲端供應商的託管 Kubernetes 服務(不同配置)的成本。他的工作的另一個好處是發布了相應的 Jupyter Notebook,它允許(只需具備最少的 Python 知識)調整所執行的計算以滿足您的需求。
TL博士:Azure 和 Digital Ocean 不對用於控制平面的運算資源收費,因此它們是部署許多小型叢集的理想選擇。對於運行少量大型集群,GKE 最適合。此外,您可以透過使用現貨/可搶佔/低優先權節點或透過「訂閱」長期使用相同節點(這適用於所有平台)來大幅降低成本。

集群規模(工作者數)
概觀
GKE 開始對每個叢集每小時收費 10 美分的消息促使我對主要的託管 Kubernetes 產品進行一些價格分析。

這項聲明讓一些人非常不滿…
文章的主要人物有:
- Google Kubernetes Engine(GCP) ;
- 彈性 Kubernetes 服務 (AWS) – ;
- Azure Kubernetes 服務 (Azure) – ;
- Digital Ocean 上的 Kubernetes – .
費用明細
在每個平台上運行 Kubernetes 的總體成本包括以下部分:
- 集群管理費;
- 負載平衡(針對 Ingress);
- 工作者的運算資源(vCPU 和記憶體);
- 出口流量;
- 持久性儲存;
- 透過負載平衡器進行資料處理。
此外,如果客戶願意/能夠使用可搶佔的雲端服務,雲端供應商會提供大幅折扣, 或低優先權節點,或承諾使用相同的節點 1-3 年。
值得強調的是,雖然成本是比較和評估服務提供者的良好基礎,但也應考慮其他因素:
- 正常運作時間(服務等級協定);
- 周圍的雲生態系;
- K8s 的可用版本;
- 文檔/工具的品質。
然而,這些因素超出了本文/研究的範圍。在 詳細討論了 EKS、AKS 和 GKE 的非價格因素。
Jupyter 筆記本
為了更容易找到最有利可圖的解決方案,我開發了 ,其中使用 plotly + ipywidgets。它允許您比較不同叢集大小和服務集的提供者報價。
您可以使用 Binder 中的筆記本的即時版本進行練習:
如果計算結果或原始價格不正確,請告訴我(這可以透過 GitHub 上的問題或拉取請求來完成 - ).
發現
不幸的是,細微差別太多,無法提供比一開始的 TL;DR 段落中包含的更具體的建議。但仍可以得出一些結論:
- 與 GKE 和 EKS 不同,AKS 和 Digital Ocean 不對控制平面資源收費。如果架構包含許多小型集群(例如,每個集群 每個開發人員 或 每個客戶).
- GKE 稍微便宜一些的運算資源使其隨著叢集規模的增加而更具成本效益*。
- 使用搶佔節點或長期節點親和性可以降低 50% 以上的成本。 注意:Digital Ocean 不提供此類折扣。
- Google 的出站收費較高,但計算的決定因素是計算資源的成本(除非您的叢集是出站資料的重要來源)。
- 根據您的工作負載 CPU 和記憶體需求選擇機器類型將幫助您避免為未使用的資源支付額外費用。
- 與其他平台相比,Digital Ocean 的 vCPU 收費較低,而記憶體收費較高,這可能是某些類型的運算工作負載的決定性因素。
*註:分析使用通用計算節點的資料。 (通用)。這些是 n1 GCP Compute Engine 執行個體、m5 AWS ec2 執行個體、D2v3 Azure VM 和具有專用 CPU 的 DO droplet。反過來,也可以在其他類型的虛擬機器(可突發、入門級)中進行研究。乍一看,虛擬機器的成本似乎與 vCPU 數量和記憶體量呈線性關係,但我不確定這種假設是否適用於非標準的記憶體/CPU 比率。
在文章中 於 2018 年發布的,使用了具有 100 個 vCPU 核心和 400 GB 記憶體的參考叢集。為了進行比較,根據我的計算,每個平台上的類似叢集(對於按需實例)的成本將如下:
- AKS:51465 美元/年
- EKS:43138美元/年
- GKE:30870 美元/年
- 做:36131美元/年
我希望本文和筆記本能幫助您評估託管 Kubernetes 的主要產品和/或利用折扣和其他機會節省雲端基礎架構。
譯者PS
另請閱讀我們的博客:
- «“;
- «“;
- «“;
- «“。
來源: www.habr.com
