目录

1. 集群级成本优化视图:发现主要问题

1.1 GKE Standard 集群视图分析

1.2 GKE Autopilot 集群视图分析

2. GKE 成本分配:实现精细化计费

3. 工作负载视图成本优化:识别调整机会

4. 垂直 Pod 自动扩缩 (VPA) 建议集成


如果您通过在组织中的 Kubernetes 集群上运行工作负载获得了价值,那么您的云足迹很可能会随之增加——无论是通过更大的集群还是更多的集群。无论采用哪种方法,有一件事是肯定的:您将拥有更多需要付费的资源。因此,确保有效使用这些资源至关重要。Google Kubernetes Engine (GKE) 具有许多内置功能,可帮助集群管理员导航优化 GKE 资源使用的持续旅程。

1. 集群级成本优化视图:发现主要问题

如果您不确定从何处开始优化,最好的起点是寻找一个突出的大问题。通过查看跨越所有集群的视图,这可能是最明显的。

GKE 在控制台中内置了一个集群级“成本优化”选项卡,其中包含丰富的信息,否则您自己收集起来可能很麻烦。

1.1 GKE Standard 集群视图分析

对于 GKE Standard 集群,该视图是一种时间序列表示,显示项目中所有集群的 CPU 和内存的三个关键维度:

  • Total CPU/Memory allocatable:可分配给用户工作负载的总量。

  • Total CPU/Memory request:用户工作负载请求的总量。

  • Total CPU/Memory usage:用户工作负载的实际使用总量。

优化 Google Kubernetes Engine (GKE) 成本:利用原生功能实现资源效益最大化

分析这些关系有助于确定重要优化问题的答案:

  • 是否存在过多闲置资源?(可分配量远大于请求量):考虑重新评估节点池使用的机器类型,以便更好地对集群进行 “bin pack”(资源紧密打包)

  • 工作负载是否请求过多但未使用的资源?(请求量远大于使用量):与工作负载所有者合作,调整请求,使其更接近反映预期使用情况。

1.2 GKE Autopilot 集群视图分析

对于 GKE Autopilot 集群,该视图仅显示 Total CPU/Memory requestTotal CPU/Memory usage 数据。这是因为在 Autopilot 中,您只需根据 Pod 的请求量付费;基础设施配置由 Autopilot 自动处理。因此,管理员的优化重点完全集中在 Pod 的请求设置上。

优化 Google Kubernetes Engine (GKE) 成本:利用原生功能实现资源效益最大化

2. GKE 成本分配:实现精细化计费

在优化过程中,拥有财务数据有助于量化优化对业务的影响。GKE 原生功能 GKE 成本分配可以帮助您轻松访问此信息。

  • 功能优势:该功能将工作负载使用情况与 Cloud Billing 及其报告集成,使您可以在每个 Kubernetes 命名空间每个 Kubernetes 标签级别查看和提醒计费。

  • 解决痛点:在没有成本分配的情况下,集群的财务影响是模糊的,找到要优化的区域和执行分摊计费都具有挑战性。

  • 最佳实践:当您使用命名空间和标签来逻辑定义和组织团队及其工作负载时,此功能最有效。

  • 更广阔的视野:由于 Cloud Billing 包含所有 GCP 服务,您现在可以跨命名空间及其相应的外部支持服务(如 Cloud Memorystore)进行过滤和查询,获得更全面的优化图景。

启用命令:如果您正在使用现有 GKE 集群,请在设置适当的地区或区域后使用 gcloud 命令启用此功能。

3. 工作负载视图成本优化:识别调整机会

一旦您确定了您可能想要合作的团队,GKE 会在工作负载级别提供一个成本优化选项卡,您可以在其中开始向下钻取并确定可以通过**“工作负载调整大小”(Workload Resizing)**来优化的特定工作负载。

  • 工作负载调整大小:这是确保 Pod 请求更接近地反映其预期用途的行为。

  • 图表分析:该视图提供条形图来表示使用情况、请求和限制之间的关系:

    • 深绿色 (使用率):实际 CPU/内存使用率。

    • 浅绿色 (请求量):CPU/内存请求量。

    • 黄色 (超额使用):使用率超过请求量的场景(稳定性/可靠性风险)。

优化 Google Kubernetes Engine (GKE) 成本:利用原生功能实现资源效益最大化

管理员可以识别以下模式:

  • 过度配置:条形图上有太多浅绿色堆叠在深绿色之上。

  • 稳定性风险:出现黄色条,表示请求设置不足,可能导致资源消耗过多或因达到限制而被限制或 OOMKilled。

  • 未设置请求:条形图全是深绿色,表明没有为工作负载设置请求,这并非最佳实践。

优化 Google Kubernetes Engine (GKE) 成本:利用原生功能实现资源效益最大化

4. 垂直 Pod 自动扩缩 (VPA) 建议集成

在需要增加或减少 CPU/Memory 请求时,知道需要做什么比知道应该设置为什么更容易。GKE 通过将 Kubernetes Vertical Pod Autoscaler (VPA) 的建议直接集成到其工作负载控制台中,解决了这一问题。

  • 建议来源:这些建议基于历史使用数据,目前适用于集群中的所有部署。

  • 访问路径:在查看特定工作负载的页面时,您可以通过导航到菜单 Actions > Scale > Scale compute resources 找到这些建议。

  • 重要性:这些建议仅供参考。在查看这些值时,必须与工作负载所有者合作,以确认这些建议是否适合并能安全地合并到他们各自的 Kubernetes 清单中。

优化 Google Kubernetes Engine (GKE) 成本:利用原生功能实现资源效益最大化

此外,GKE 还提供成本估算面板,根据 GKE Standard 集群的配置向您显示估算的每月成本,甚至可以估算集群扩大和缩小规模时潜在的成本范围。

更多推荐