控制云成本对于组织来说始终是头等大事。但是如何做到呢?大多数组织在不牺牲性能或可用性的前提下,很难找到最佳的优化方案。

在 Google Kubernetes Engine (GKE) 团队,我们希望尽自己的所能为用户提供任何帮助。在参加了最近一些的容量规划活动后,在优化机会方面我们注意到了一些成果:根据我们的内部研究,全球 GKE 队列中多达十分之一的集群处于空闲状态。此外,在超额配置的工作负载中,40% 的工作负载预置的资源是实际使用的 30 倍,11% 的工作负载预置超过了所需资源的 100 倍。

值得庆幸的是,有许多最佳实践可以回收这些浪费的容量,其中许多是我们直接构建到 GKE 中的。请继续阅读,了解四种低投入、高回报的方法来回收资源并优化您的 GKE 支出。作为额外的好处,当您回收浪费的资源并实施这些技术时,您还可以最大限度地减少管理开销,并减少您的碳足迹!

让我们开始吧。




策略一:激活 GKE 集群自动扩缩器中的利用率优化(optimize-utilization)配置

级别:简单

影响:中等

合理调整 vCPU 和内存是节省 GKE 成本的主要方法之一。总部位于英国的在线拼车市场 BlaBlaCar 最近经历了这一过程,他们的 CPU 利用率从 25% 上升到 53%。GKE 提供了多种内置工具来帮助您完成相同的操作。例如,GKE 集群自动扩缩器支持多种机制,可根据您的工作负载需求自动调整集群节点池的大小,您可以通过指定自动扩缩器配置文件来应用这些机制。在分析了整个 GKE 队列中客户的集群后,我们预计在激活 optimize-utilization 配置文件后可以将未分配的 vCPU 和内存平均减少 20%。对于大多数集群来说,这只是一种简单的开关操作,对应用程序行为或性能没有影响,但可以显着减少您需要的 vCPU 和/或 VM 的数量。

您应当采取的步骤:

●       观看视频指南了解 optimize-utilization 配置文件。

●       阅读文档以了解如何激活它。

●       在您现有的(和新的)集群上激活它。

注意:集群自动扩缩器 optimize-utilization 配置文件旨在降低集群成本,同时最大限度地减少对工作负载的干扰或摩擦。但是,我们不建议将其用于具有持续资源利用率峰值和/或启动和准备时间较长的集群。

"....将未分配的 vCPU 和内存平均减少 20%。"

来自推特




策略二:关闭空闲集群

级别:简单

影响:中高

关闭您没有在使用的资源。效果是显而易见的,但是,在用户运行的 GKE 集群中,我们发现有十分之一的集群可能处于空闲状态。虽然没有一个空闲集群的定义,但这些集群通常表现为:

●       没有运行任何 pod

●       已过期,并且即将失去与控制平面节点的连接

●       长时间没有任何 API 交互和对象更改

●       Pod 计数没有变化,并且利用率非常低

关闭空闲(或接近空闲)的集群非常容易:

首先,查看 Cloud Monitoring 中的“GKE 活动/空闲集群”示例仪表板,并确认哪些集群确实处于空闲状态或未得到充分利用。

要实现这一操作,请转到 Cloud Monitoring -> 仪表板 -> 示例库,然后在目录中中选择 Google Kubernetes Engine。可以在控制面板的示例列表中找到“GKE 活动/空闲集群”。

一旦您确认集群状态后,请继续使用您优先选择的方法关闭集群。

"……每十个 GKE 集群中就有一个可能处于空闲状态。"

来自推特




策略三:建立优化和调整大小例行日程

级别:简单

影响:中高

不合适的集群大小和工作负载会造成大量浪费。正如我们前面指出的,我们的内部研究发现在过度配置的工作负载中,其中 40% 的工作负载配置了实际使用资源的 30 倍,而 11% 的工作负载配置了超过所需资源的 100 倍。

GKE 为您提供了多种工具来帮助您调整集群规模:

●       查看 GKE 的内置成本见解,以快速找到在适当调整后能够发挥最大作用的集群和工作负载。

●       然后,使用 GKE 新的内置工作负载调整功能来获得有关如何纵向调整部署的指导。

●       如果您对 GKE 的工作负载调整建议感到满意,请考虑激活 Pod 纵向自动扩缩以自动化流程并减少运维工作量。

如需了解更多信息,请查看我们关于 GKE 自动扩缩的最佳实践和视频指南。 

"40% 的工作负载预置的资源是实际使用的 30 倍"

来自推特




策略四:更换到 GKE Autopilot 模式

级别:简单-中等

影响:高

当然,降低基础设施成本非常重要,但降低运维成本可能更有价值,它可以让您释放宝贵的工程人才,同时帮助您从更稳定、更安全的环境中获益。

这就是您通过 GKE Autopilot 操作模式带来的好处。因为它是按 pod 资源请求而不是预配置的基础设施来定价的,所以 GKE Autopilot 能够立即节省成本。其原因很简单——您不会为预配置的任何未使用的基础设施付费。 GKE Autopilot 还消除了其中一项更重要的浪费与工作来源:低效的装箱。 由于 GKE Autopilot 默认实施配置最佳实践,因此您需要更少的 Kubernetes 专业知识来正确设置您的环境,从而减少管理系统的时间。 

如果仅根据定价来看,GKE Autopilot 按核心/小时计算可能看起来更贵,但您的实际情况可能会有所不同。当我们查看整个 GKE 集群时,我们发现如果今天迁移到 GKE Autopilot,多达 45% 的集群将会更便宜。


相关推荐