看得见的成本!1款工具实现K8S资源成本监控可视化

RancherLabs 2020-11-11 11:50:43
工具 实现 成本 看得见 看得


本文来自Rancher Labs

关注我们,第一时间获取技术干货

计算Kubernetes成本的复杂性

采用Kubernetes和基于服务的架构可以为企业带来诸多好处,如团队可以更快地迁移以及应用程序可以更轻松地扩展等。但是这一转变也带来了一些复杂性,比如云成本的可见性。这是由于应用程序及其资源需求常常是动态变化的,并且团队共享核心资源而没有与工作负载挂钩的透明价格。此外,能够充分意识到Kubernetes所带来的优势的企业通常会将资源运行在不同类型的机器上,甚至会运行在多个云提供程序上。

在本文中,我们将了解在企业中为showback/chargeback项目实现成本监控的最佳实践和不同实现方式,以及如何授权用户对这些信息采取行动。我们首先会了解Kubecost,它提供了一种开源的方式来确保跨所有Kubernetes工作负载一致和准确的可见性。

让我们进一步了解最佳实践,以准确分配和监控Kubernetes的工作负载成本以及相关托管服务上的支出。

成本分配

精确分配资源成本是在Kubernetes环境中创建成本可见性和实现高效成本利用的首要步骤。

要正确进行这一步骤,你需要在工作负载层面通过单个容器进行成本分配。工作负载分配完成后,通过汇总不同的工作负载集合,成本可以正确地分配给各个团队、部门甚至个人开发者。在工作负载层面的成本分配框架如下所示:

让我们一点点拆解这个框架。

资源消耗的平均数量由Kubernetes scheduler进行计算或者由云提供程序提供,这取决于被测量的特定资源。我们建议根据request和usage的最大值来计算内存和CPU分配。这样就能够反映出由Kubernetes scheduler本身所预留的资源量。另一方面,诸如负载均衡器和持久卷等资源会严格基于由提供程序所提供的数量。

Kubernetes API可以直接计算出资源消耗的时间段。这由资源(如内存、CPU和GPU等)在Running状态所消耗的时间决定。要让数据对云chargeback来说足够精确,我们建议团队将这些数据与云提供程序提供的特定云资源(如节点)所花费的时间进行协调,保持一致。在之后的部分我们将对此进行更多介绍。

资源价格是通过观察环境中每种特定资源的成本来确定的。例如,us-east-1 AWS区域中m5.xlarge spot实例的CPU小时价格与同一实例的按需价格不同。

使用这一框架可以在各个工作负载之间适当分配成本,那么它们就可以通过任何Kubernetes概念(如命名空间、标签、注释或controller)轻松聚合。

Kubernetes成本监控

通过Kubernetes概念(如pod或controller)分配的成本,你可以开始准确地将支出映射到任何内部业务层级,如团队、产品、部门或成本中心。企业通常的做法是通过Kubernetes命名空间来划分团队工作负载,而其他的做法可能使用Kubernetes标签或注释来识别工作负载属于哪个团队。

在不同应用、团队等之间进行成本监控的另一个关键因素是确定谁应该为闲置的容量付费。具体而言是指仍在向企业计费但未使用的集群资源。通常情况下,这些费用要么计入中央基础设施成本中心,要么按比例分配给应用团队。将这些成本分配给负责供应决策的团队,通过调整激励措施来拥有一个高效规模的集群,从而产生积极的效果。

核对云账单

Kubernetes提供了大量实时数据。这让开发人员可以直接访问成本指标。尽管这些实时数据通常都是精确的,但它可能与云提供商的计费数据不完全一致。例如,在确定AWS spot节点的小时费率时,用户需要等待Spot数据源或成本和使用报告来确定准确的费率。出于计费和收费的目的,你应该将数据与实际账单进行核对。

通过Kubecost获得更好的可见性和治理

我们已经了解了如何观察数据以计算Kubernetes工作负载的成本。还有另一个方法是利用Kubecost,这是一个建立在开源基础上的成本和容量管理解决方案,提供了对整个Kubernetes环境的可见性。Kubecost为Kubernetes工作负载以及它们所消耗的相关管理服务(如S3或RDS)提供成本可见性和洞察力。该产品收集Kubernetes的实时数据,还能与你的云计费数据进行核对,以反映你支付的实际价格。

有了像Kubecost这样的解决方案,你可以授权应用工程师做出明智的实时决策,并开始实施即时和长期的实践,以优化和治理云支出。这包括在不影响性能的情况下采用成本优化的方案、实施Kubernetes预算和告警、showback/chargeback项目甚至基于成本的自动化。

Kubecost社区版可以免费使用,并且具有上述所有功能。你可以在Rancher应用商店中找到Kubecost Helm chart,轻松完成部署。借助Rancher,你可以获得Kubernetes集群可视化和绝佳控制力的体验,与此同时Kubecost为你提供了对支出和如何优化成本的直接观察。它们共同为使用Kubernetes的团队提供了一个完成的成本管理解决方案。

版权声明
本文为[RancherLabs]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/rancherlabs/p/13957878.html

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云