5个!帮助你优化集群的 GKE 功能

如果你认为在组织中的 Kubernetes 集群上运行工作负载是有价值的,那么毫无疑问,你将会购买更大的集群或者更多的集群。但无论采用哪种方法,有一件事是肯定的:你将拥有更多需要付费的资源。而跨集群拥有的资源越多,确保有效使用它们就变得越重要。


Google Kubernetes Engine 具有许多内置功能,作为集群管理员,你可以使用这些功能来导航优化 GKE 中资源使用的情况。


01

控制台中的集群视图成本优化


如果你不知道从哪里开始优化集群,最好的起点是寻找一个突出的大问题。通过查看跨越所有集群的视图,分析现有情况。在 GKE 中,谷歌在控制台中内置了一个集群级成本优化选项卡,其中包含丰富的信息,以避免用户自己收集而带来的麻烦。


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

  • Total CPU/Memory allocatable -可分配给用户工作负载的 CPU 或 GB 内存

  • Total CPU/Memory request - 用户工作负载请求的 CPU 或 GB 内存

  • Total CPU/Memory usage - 用户工作负载的 CPU 数量或 GB 内存的实际使用情况


分析这些相互之间的关系有助于确定重要优化问题的答案,例如:


  • 谷歌的 GKE 标准集群中是否有太多可分配的 CPU 和内存闲置?如果是这样,是否可以采取一些措施,比如重新评估在节点池中使用的机器类型?通过将更高百分比的可分配资源分配给 Pod 请求,这可以帮助我们对集群进行 bin pack。


  • 在 GKE 标准集群中运行的工作负载是否需要过多未使用的 CPU 和内存?如果是这样,可以采取一些措施,比如与工作负载所有者合作来调整请求吗?这可以帮助我们调整工作负载大小,方法是将请求设置为更接近地反映预期使用情况。


如果使用 GKE Autopilot,这个时间序列可视化看起来会略有不同


对于 GKE Autopilot 集群,我们只能查看总 CPU/内存请求和总 CPU/内存使用数据。但实际上这里什么都没有丢失!


在 Autopilot 集群中,你只需根据请求为每个 Pod 付费;Autopilot 自动处理基础设施的配置,根据你将 Pod 请求设置为什么,为我们提供可分配的资源。当我们交易节点配置的所有权时,我们也交易控制权以在该层进行优化。


对于集群管理员而言,此信息可能会激发行动,例如深入研究各个集群或与工作负载团队会面以解决他们为工作负载设置的请求和限制。在我们的研究中,这可能是许多团队优化的最具影响力的领域。我们将在本博客中深入探讨 GKE 如何启用此练习。


当沿着这些路径前进时,拥有财务数据有助于量化优化对业务的影响。自行收集此信息可能需要一些工作(对于某些人来说,还需要大量电子表格!),但幸运的是 GKE 具有另一个本机功能,可帮助你轻松访问此信息。



02

GKE成本分配


GKE 成本分配是一项原生 GKE 功能,它将工作负载使用情况与 Cloud Billing 及其报告集成在一起,使你不仅可以在每个集群级别,而且可以在每个 Kubernetes 命名空间或每个 Kubernetes 标签级别查看和提醒计费。


如果没有 GKE 成本分配,集群及其可能运行的所有不同工作负载的财务影响会有些模糊。由于集群是计费中最详细的级别,因此找到要优化的区域甚至执行分摊和计费都是一项挑战。


随着命名空间和标签不断涌入账单报告,你现在可以了解工作负载在 Kubernetes 中定义的 CPU/内存请求的成本。一个警告 - 当你使用命名空间和标签来逻辑定义和组织团队及其工作负载时,这最有效。


这种集成还提供了更广泛的优化图景——因为 GKE 通常不在孤岛上!理论上,团队命名空间中的工作负载可以使用外部支持服务,如 Cloud Memorystore,这也是其使用的关键部分。


由于 Cloud Billing 数据具有所有 GCP 服务,我们现在可以跨命名空间及其相应的支持服务进行过滤和查询。


03

控制台中的工作负载视图成本优化



一旦你确定了你可能想要与之合作的团队,GKE 会在工作负载级别提供一个成本优化选项卡,然后你可以在其中开始向下钻取并确定可以通过称为“工作负载调整大小”的练习来优化的特定工作负载.这是确保 Pod 请求更接近地反映其预期用途的行为。



04

调整工作量请求的建议


在我们需要增加或减少 CPU/Memory 请求的场景中,知道它需要做比知道它需要如何做更容易。我们应该将请求设置为什么?


GKE 将来自 Kubernetes Vertical Pod Autoscaler (VPA) 的建议直接集成到其工作负载控制台中,目前适用于集群中的所有部署。在查看特定工作负载的页面时,你可以通过导航到 Actions > Scale > Scale compute resources 菜单找到它。


重要的是要记住,这只是建议。它们基于历史使用数据,因此在查看这些值时,重要的是要与工作负载所有者合作,看看这些建议是否适合合并到他们各自的 Kubernetes 清单中。



05

成本估算和集群创建设置指南


最后,如果你刚刚开始使用 GKE,并且希望从正确的、优化的角度开始,我们已将工具整合到 GKE 集群创建页面中。


首先,我们有一个设置指南,可以帮助你创建一个固定的 GKE 标准集群,其中已经启用了我们在此讨论的一些功能,例如 GKE 成本分配和 Vertical Pod Autoscaler。


其次,我们还有一个成本估算面板,它会根据你的 GKE 标准集群的配置向你显示估算的每月成本。如果你希望集群扩大和缩小规模,这甚至可以帮助你获得一系列潜在成本!


跨一组 GKE 集群的优化可能包括一些需要考虑的领域——这不是一次性任务!相反,这是一个持续的旅程,集群管理员、工作负载所有者,甚至计费经理都参与其中。GKE 提供的工具可以让这个过程变得更轻松,并让正确的数据触手可及。



———

WebEye是中国大陆地区首家获得 Google Cloud MSP 资质的合作伙伴。WebEye致力于用创新的技术向中国企业提供数字化效率创新服务,实现数字化赋能。我们不断帮助客户打造新的运营与协作方式,打造新的竞争优势,构建资源高效链接,共创价值生长空间。

WebEye整合全球资源,打造全球数字化营销体系,为企业提供营销增长服务营销增长引擎以及企业上云三大板块业务,涵盖数字营销、数字创意、游戏发行、流量变现、程序化广告、数据洞察、云计算等一站式全链条增长产品矩阵,是中国互联网出海领军企业。

返回全部