五个代价高昂的Kubernetes成本陷阱及其解决方案

译文
开发 前端
人们需要了解Kubernetes在成本管理方面带来的挑战,并使用一些优秀实践解决Kubernetes成本优化的问题。

[[407505]]

【51CTO.com快译】人们需要了解Kubernetes在成本管理方面带来的挑战,并使用一些优秀实践解决Kubernetes成本优化的问题。

如今,Kubernetes的成本管理变得越来越复杂,越来越多的组织面临这个问题。根据调研机构Gartner公司的调查,到2022年,75%的组织将在生产中运行容器化应用程序。

如果你在AWS云平台上使用Kubernetes,可能已经在实施优秀实践来减少运营费用。但是,为了最大限度地节省云计算成本,需要了解Kubernetes在成本管理和优化方面带来的具体挑战,并了解它们是什么以及如何处理它们。

为什么Kubernetes云计算成本如此令人困惑?

在组织采用容器化技术之前,分配资源和成本要容易得多。只需将资源标记为特定项目或团队,这足以让FinOps (成本优化)确定组织的典型成本结构,并更好地控制预算。一旦组织映射了供应商标签并确定了拥有该项目的团队,则计算项目总成本就会变得更加容易。

当然,在这种情况下,组织也会面临过度配置资源的风险。开发人员可能会订购比他们需要更多的资源,以确保应用程序不间断地运行。随着Kubernetes和其他容器化工具的普及,传统的成本分配和报告流程不再适用。而弄清楚Kubernetes的成本估算、分配和报告并不容易。

如果你仍然无法详细了解团队的成本,不要担心,因为你并不是唯一一个努力控制成本的人。为了改进成本控制,首先要探索这些成本带来的挑战。

需要避免的5个Kubernetes成本陷阱

(1)计算每个容器的成本

计算单个容器的成本并不难,但它需要基础设施和更多的时间来完成。

Kubernetes集群是由多个团队运行的共享服务,拥有许多容器并包含各种应用程序。在部署容器之后,你将使用集群的一些资源,并为属于该集群的每个服务器实例支付费用。

现在假设你有三个团队在开发10个独特的应用程序,了解哪个应用程序使用集群资源几乎是不可能的,因为这些项目中的每个项目都使用多个容器,因此你不知道给定团队使用的是哪个部分,以及在特定项目中使用了多少。

简而言之,尚不清楚单个容器从一台特定服务器使用了多少资源。这使得计算和分配成本变得更加困难。

(2)通过不同的成本中心支付费用

如果你所在的组织包含多个成本中心,并非所有开发成本都来自DevOps预算。某些应用程序可能由组织的产品团队、研发团队或IT部门的另一个团队为影子IT项目创建。

这里的关键是组织的规模和结构。如果你的组织提供多个数字服务,其中每个数字服务都有其特定团队和预算,跟踪云计算服务的成本将变得更加复杂。当多个团队使用同一个集群时,确定哪个团队或项目负责最终账单的哪个部分将成为挑战。

(3)跨云平台跟踪成本并不容易

如果使用多云,跟踪其成本就会变得更加困难。Gartner公司对公共云用户的调查表明, 81%的受访者正在与两个或更多的云计算提供商合作。根据ICD公司的调查,到2022年,90%的组织将采用多个云平台或内部部署、私有云、混合云和公共云的组合。

因此,很快组织可能会在多个云平台运行Kubernetes集群,并且其容器将使用不同的节点。组织的应用程序可以分散在不同的云平台中,例如AWS、谷歌云、Azure等。它们中的每一个可能只承载组织整体工作负载的一小部分,这进一步使跟踪节点和集群变得更加复杂。

(4)扩展使问题进一步复杂化

为了充分利用Kubernetes,大多数团队使用内置的Kubernetes自动扩展机制。配置得越紧密,运行集群的浪费就越少,成本也就越低。

Vertical Pod Autoscaler(VPA)会自动调整请求,并限制配置以降低成本,而Horizo​​ntal Pod Autoscaler(HPA)专注于横向扩展,以达到分配给现有实例的合适CPU或内存数量的目的。

然而,这些扩展机制会影响成本计算。VPA不断地改变容器上的请求数量、扩大和缩小其资源分配。另一方面,HPA会动态更改容器的数量。例如,假设三个Web服务器容器在夜间运行。而在高峰时段,HPA从3个容器扩展到50个容器。然后,其数量在每天的中午减小,然后再逐渐扩展。而到了晚上,其数量稳定在一个更低的水平。

这意味着容器的数量及其大小是非常动态的,这使得计算和预测成本的过程变得更加困难。

(5)容器更加动态

借助容器,组织可以跨区域、专区或实例类型重新安排工作负载。通常一个容器的寿命只有一天,与虚拟机的持续时间相比很短。越来越多的组织在Kubernetes上运行函数和cron作业,它们的寿命从几秒到几分钟不等。

容器化环境的动态特性为混合增加了另一层复杂性,组织的成本管理系统需要能够处理这个问题。

如何处理这些Kubernetes成本问题

为避免落入上述陷阱之一,组织需要一个基于可靠数据源的可靠成本分析流程。以下是处理Kubernetes成本问题的一个示例:

(1)找到一个成本可见性工具来详细跟踪成本,例如在微服务级别。

(2)一旦有了成本可见性,就可以设置精确的预算,并监控流量成本等要素,以更好地了解它们。

(3)接下来,按命名空间、Pod、部署和标签分配成本。

(4)分析定价信息以预测下个月需要支付的费用。

(5)继续根据估计查明成本或使用异常以进一步分析它们。

目前,大多数组织都通过人工解决了这个问题,但如果可以将整个过程实现自动化呢?

解决方案:自动化Kubernetes成本管理

分配资源、计算成本和分析Kubernetes定价不应该像现在这样具有挑战性。同步成本和资源分配是必经之路。

Kubernetes成本管理的自动化工具必须具备以下功能:

(1)具有高级云计算账单分析和成本可见性的功能,能够分析单个微服务的成本,并获得任何云计算提供商的通用指标。

(2)自动实例选择和调整大小。

(3)使用Spot实例最多可节省90%的成本。

(4)预测项目、集群、命名空间和部署的费用。

自动化成本管理

期望用于控制Kubernetes成本的人工策略是有风险的,它们通常是耗时、容易出错且难以维护的。部署自动化成本管理解决方案可以为组织省去很多麻烦,并帮助组织专注于对业务最重要的事情——为客户提供优质服务。

原文标题:5 Costly Kubernetes Traps and Their Solutions,作者:Vito Clover

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2020-09-25 09:43:24

基础设施外包托管服务提供商MSP

2010-12-28 09:53:39

2012-04-05 09:44:21

2023-05-26 07:19:49

Spring声明式事务

2018-05-22 17:54:31

2023-08-08 13:22:10

2024-01-22 16:03:22

物联网工业安全IOT

2022-02-23 12:07:20

分布式Spark数据倾斜

2011-07-05 15:39:50

FTTH

2018-03-17 09:04:35

2020-06-08 22:33:42

物联网IOT物联网实施

2024-09-29 10:29:55

NumPy矩阵运算Python

2020-08-25 07:00:00

云计算云安全数据

2009-06-09 10:16:13

思科不连续网络配置

2022-03-18 15:31:19

物联网IOT

2022-09-12 15:51:38

JavaScrip开发编程语言

2011-06-27 20:48:38

打印机解决方案

2022-11-21 17:46:09

2024-10-14 08:29:14

异步编程任务

2022-07-01 10:37:27

人工智能AI
点赞
收藏

51CTO技术栈公众号