【翻译】Kubernetes。一个等待发生的成本挑战

最初发表在Finout博客上的客座文章,作者是Finout的CEO和联合创始人Roi Ravhon

容器以其灵活的可扩展性和可移植性成为过去十年的起义技术。根据 一份Gartner的报告,到2022年,75%的公司将在生产中运行容器。这意味着我们将把越来越多的容器化应用部署到云端。而随着应用程序由于拥有越来越多的容器而变得更加复杂和苛刻,对容器协调器的需求是不可避免的。

Kubernetes是市场上事实上的容器管理平台。但是,虽然将应用程序部署到Kubernetes中是一个简单的过程,但成本管理从来都是Kubernetes的核心功能之一。

在这篇博客中,我们将讨论Kubernetes成本估算和跟踪的挑战。

一些背景

Kubernetes集群由一个控制平面和几个工作节点组成。控制平面通常在云提供商那里是免费的,或者按每一个集群按小时计费。工作者节点是实际运行Kubernetes工作负载的虚拟机实例。虚拟机实例有不同的口味--CPU、内存和存储,因此有不同的价格标签。

Kubernetes控制平面将应用分配到 到工作者,并在他们身上运行。还可以为pod定义资源需求,以分配CPU和RAM,并分配存储。此外,pod的数量可以随着实际使用量的增加和减少而扩大。由于多个应用程序在同一工作节点上运行并被自动放大和缩小,计算在Kubernetes中运行的应用程序的实际或估计成本是相当复杂和费时的。

因此,当涉及到成本管理时,Kubernetes提出了一个重大挑战,但有几个机会可以轻松克服它们。让我们来讨论其中一些。

Kubernetes的抽象化。从应用到基础设施

Kubernetes API在基础设施和集群上运行的应用程序之间创建了一个强大的抽象。让我们假设你在Kubernetes集群上部署了一个MySQL数据库。根据设计,Kubernetes不仅在集群中的一个节点中启动了一个MySQL容器,它还创建了卷、秘密、有状态集、复制集、吊舱、服务账户用户、配置图、服务和入口,使你的新MySQL数据库可扩展、可靠和可到达。

你将在AWS成本和使用报告(AWS CUR)中看到基础设施项目的成本,如存储或计算。然而,将没有办法打破抽象,将云基础设施的成本归于K8s资源,如你的MySQL。

抽象的副作用是这个问题。你应该把成本分配给哪个Kubernetes资源?换句话说,你需要找到一个用于计算成本的Kubernetes单元--比如说pod、部署或命名空间。最后,你应该知道你的开发命名空间--或测试部署,或任何其他Kubernetes资源--烧出了多少钱。接下来,你需要深入到你的 AWS成本和使用报告(AWS CUR)并开始将总成本分配给你的Kubernetes单元,我们接下来会讨论这个问题。

总成本的分配

Kubernetes资源在其数量和基础设施使用方面是动态的。换句话说,你现在可能有三个pod使用256MB的内存,而在高峰期你可能有五个pod使用512MB的内存。

第1步 - 追踪实际使用情况。你会在你的公共云计费报告中看到CPU、内存、网络和每月的存储费用总额,例如AWS CUR。通过简单的数学计算,你就可以根据Kubernetes的资源限制或实际使用指标来分配CPU和内存。

第2步--分配管理费用。你可以这样做,比如网络和存储的成本;如果网络成本在团队、命名空间和应用程序之间共享,你需要找到一种方法来分配其成本。

多云景观

Kubernetes是一个开源的平台,被公共云和企业内部系统广泛提供。因此,在GCP的东京地区和Azure的奥斯陆地区拥有一个Kubernetes集群是一个常见的使用案例。这使你的应用程序高度可用,同时也更接近你在相应国家和地区的客户。

虽然Kubernetes是一样的,但你不同的云供应商的计费报告在结构上会完全不同。而且,其他云供应商的服务器也会有不同的口味和价格标签。这意味着你需要把多个供应商的计费数据和计算结果结合起来,如果你去找一个 多云混合云方法。

节约洞察力和机会

成本监控系统应该导致节约的洞察力和估计--当一个应用程序及其基础设施像Kubernetes一样是动态的,这些就更加关键。幸运的是,有几个 "低垂的果实 "可以创造节约机会。

  • 定义、测量和更新豆荚的资源需求(权利化)。如果你能发现资源分配过剩的pod,你可以优化和释放资源。
  • 将工作负载分配到更便宜的地区、区域和节点。每个云提供商的每个地区、区域和服务器的定价是不一样的。始终考虑将你的一些应用程序转移到云的其他部分以优化成本。
  • 创建不同节点的组合,并使用优化策略进行调度。K ubernetes可以通过分组应用和节点组将工作负载分配给特定的服务器。通过优化调度策略,你可以降低总资源分配的成本。

有了这些准则和持续的监控(我们接下来会介绍),你将有机会削减你的Kubernetes集群的云费用。

监控和警报

监测你的应用程序以观察其指标和健康状况是云计算中不可避免的必要条件。监控系统可以收集、存储、汇总和可视化你的应用指标。此外,你可以根据特定的指标定义警报,如果在夜间或在你可爱的加勒比海滩的假期中发生了关键的事情,你可以收到警报(甚至是电话)。

如果你在使用Kubernetes,那么最终你会收到一个惊喜的账单。我们都有过这样的经历:有问题的软件使集群过载,使你的资源使用量猛增。你的成本管理系统必须收集成本指标,而且要聪明,以便发现不一致的地方,并在云计算成本出现任何急剧增加时创建警报。

总结

Kubernetes具有许多功能,可以在云中运行可扩展和可靠的应用程序,但它并没有开箱即用的成本管理系统。目前的解决方案对于确定在云中运行分布式应用的成本来说还不够好。然而,随着Kubernetes和容器化应用的采用增多,这种系统的成本管理变得更加关键。

我们在这篇博客中总结了Kubernetes成本管理的挑战,并列出了一些解决这些问题的机会。底线是。你必须跟踪和优化你为运行在Kubernetes集群中的产品和应用实际支付的费用。

如果你正在寻找一个自助式的无代码平台,将你的成本作为一个优先指标,并将你的云帐单的每一块钱都归入其适当的位置。 今天就与Finout取得联系!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值