您现在的位置是:首页 >其他 >Kubernetes成本管理的当下现状网站首页其他
Kubernetes成本管理的当下现状
由于OpenCost的集成,对于Azure Kubernetes Service来说,“Kubernetes运行成本是多少?”这个问题变得更容易回答了。
微软决定将Kubernetes作为Azure的基础服务,这个决定不仅对微软自身有好处,也对Kubernetes生态系统的其他部分有好处。这是因为微软正在投入其工程师和资金,不仅支持和贡献于自己的项目,还支持和贡献于上游工具和能力。
有时这种投资被用作杠杆,旨在改善用户的生态系统,但其他时候,它是为了确保我们能够更经济地运行我们的云原生应用程序,并且对其生态系统的影响最小。
微软在Kubernetes方面的一个关键投资领域是成本管理工具。Kubernetes是一个编排器,根据需求自动扩展和缩减计算资源的使用。这使得很难预测Kubernetes的运行成本,特别是在公共云中,您需要混合使用虚拟服务器类型和计费规则,并且需要满足内存、网络和存储等不断变化的需求。是的,您的应用程序将按照您设置的限制进行扩展,但这会对您的成本产生什么影响呢?
将FinOps添加到Kubernetes
作为工程师,我们通常不会特别关注成本。毕竟,大多数情况下,我们构建和运行的应用程序的账单是别人的问题。但是,同样的情况也适用于运维和安全,直到出现了DevOps和DevSecOps。通过云服务,我们可以使用与监视应用程序性能相同的技术来监视成本,利用越来越重要的FinOps。这门新的学科为我们提供了新的可见性,了解运行我们的代码的成本,并确保这些成本被正确地分配给各个部门。使用FinOps工具,我们能够直接将代码与账单联系起来,而不是将其全部捆绑在一个IT运营费用中。
这就是开源的OpenCost工具开始发挥作用的地方。由Kubernetes的母公司Cloud Native Computing Foundation赞助,OpenCost是一种用于测量和分配Kubernetes应用程序成本的工具,可帮助您控制成本。OpenCost的贡献者来自Kubernetes生态系统的各个方面,监视提供商如New Relic和Grafana Labs在一端,超大规模云提供商AWS、Google Cloud和Azure在另一端。微软已宣布支持Azure Kubernetes Service中的OpenCost,这是Azure的托管Kubernetes平台。
OpenCost允许您深入了解Kubernetes安装和操作,找出哪些容器、Pod、部署等成本最高。像这样实时的成本分配能力,使您能够超越仅仅为性能调整应用程序,而是优化成本。这种方法让您找到最佳平衡点,使用户获得最佳性能,同时成本得到控制。这是一种平衡的行为,可能需要一些时间才能做到完美,但它是您的应用程序的另一个引人注目的调整参数。
在AKS中使用OpenCost
虽然OpenCost将于2023年5月为AKS提供生产支持,但为了帮助您入门,特别为Kubecon EU提供了一个特殊版本。安装后需要进行一些配置,设置适当的权限以便与Azure一起使用。
OpenCost使用Azure消费价格表API获取您账户的实时定价数据。这确保它考虑到适当的折扣,例如使用保留实例。您可以通过向您的账户添加一个Azure角色来设置这一点,该角色将OpenCost作为服务主体访问您的计费详细信息,通过您的计费账户ID。创建此Azure角色后,保存其密钥和密码以供OpenCost使用。您可以通过YAML或Helm配置OpenCost访问此数据,具体取决于您用于设置安装的方式。如果您与Azure有自定义的定价关系,则需要您现有的优惠ID才能通过API访问您的定价。
值得一提的是,OpenCost可以将数据传递给Prometheus,这为您提供了一个时间序列数据库,可以存储来自Kubernetes的信号和来自OpenCost的定价数据。这使得财务信息成为您的可观察性平台的一部分,因此您可以观察等同于高成本的条件,并将其视为故障。甚至还有一个kubectl插件,可以查询有关您的服务的OpenCost数据,因此您可以开始基于历史成本编写操作脚本。
使用成本数据管理Kubernetes
通过OpenCost API实时获取数据,可以基于成本建立自动化管理模型。如果成本飙升,为什么不将其作为Kubernetes自动缩放器KEDA的输入,并将高成本视为可以缩小集群的事件呢?甚至还有像Azure这样的提供商的选项,使用OpenCost作为向用户提供动态定价的方式。
为什么微软要拥抱帮助其客户花费更少而不是更多的工具的引入?这可能是微软别无选择,因为AWS和Google Cloud也是OpenCost项目的合作伙伴。然而,这是一种符合首席执行官萨蒂亚·纳德拉最近声明的变化,他表示微软正在“帮助客户从他们的技术支出中获得更多价值”。通过确保客户可以将其Kubernetes支出与使用情况相一致,就有机会动态优化Azure基础架构的使用。
微软还可以提高客户保留率,从而有机会赢得未来的业务,并同时控制自己的资本支出。运行大型云数据中心是昂贵的,建立新的容量甚至更加昂贵。对于微软和其客户来说,最好的做法是采用一种操作模式,使双方都能按照自己的需求花费,如果不是更少,那么至少是恰到好处的金额。
将OpenCost集成到Azure中,将为微软和客户提供更好的资源使用情况可见性,并允许Azure更加谨慎地规划未来的扩展。考虑到微软对Kubernetes的长期支持承诺,很明显,云原生开发已经来到了我们身边,并且现在受到与任何其他企业平台相同的控制。我们不再进行实验,而是在构建业务和服务,如果它们要为我们和Azure带来利润,那么它们需要以可预测的方式运行。
对于Azure上的Kubernetes来说,未来将会变得无聊,这并不应该让我们感到惊讶。毕竟,Kubernetes是基础设施,无聊是我们为成熟和企业接受而付出的代价。随着我们进入由Kubernetes驱动的未来,有趣的是我们将如何利用这些基础设施以及我们将在其上构建什么。
作者:Simon Bisson
更多资讯及技术干货请关注公号“云原生数据库”
squids.cn,基于公有云基础资源,提供云上 RDS,云备份,云迁移,SQL 窗口门户企业功能,帮助企业快速构建云上数据库融合生态。