本文来自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的团队提供了一个完成的成本管理解决方案。

看得见的成本!1款工具实现K8S资源成本监控可视化的更多相关文章

  1. 火眼推出Windows免费渗透测试套件,包含140多款工具

    火眼推出Windows免费渗透测试套件,包含140多款工具 2019年3月28日,火眼发布了一个包含超过140个开源Windows渗透工具包,红队渗透测试员和蓝队防御人员均拥有了顶级侦察与漏洞利用程序 ...

  2. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍

    C++游戏服务器开发常用工具介绍 在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用.庄子有云,"吾生也有涯,而知也无 ...

  3. 实战!我用 Wireshark 让你“看得见“ TCP

    每日一句英语学习,每天进步一点点: 前言 为了让大家更容易「看得见」 TCP,我搭建不少测试环境,并且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包. 接下来丢包.乱序.超时重传.快速重传 ...

  4. Windows 的这款工具,有时让我觉得 Mac 不是很香

    上次写了个 cheat.sh 在手,天下我有,小伙伴们热情高涨,觉得这是一个没有杂质的好工具:也有小伙伴抱怨说对 Windows 用户不是特别友好 (其实用 curl API 是没啥问题的).为了「雨 ...

  5. 华为分析X HUAWEI Ads,上线深度转化事件回传功能,让ROI 看得见!

    华为分析X HUAWEI Ads,上线深度转化事件回传功能,让ROI 看得见! 随着移动应用生态的流量成本攀升.行业竞争加剧,越来越多的广告商希望通过精准投放来获取更高质量的深度转化用户,比如二手车. ...

  6. MyBatis-Plus联表查询的短板,终于有一款工具补齐了

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的 ...

  7. iOS开发者必备的10款工具

    当前iOS和Android两大移动操作系统“二足鼎立”,几乎覆盖了市面上大部分的智能手机.相比Android,iOS开发适配更简单,且随着各种实用工具和Swift语言的出现,iOS开发门槛地降低,开发 ...

  8. Java开发者必备的六款工具

    每一位Java程序员都会有套工具来应对工作上的挑战.多年来,Java程序员使用软件来完成他们的工作.有很多工具对他们是有用的,不过对于初入行的人员来说,寻找合适的工具是困难的,并且是浪费时间的.而今天 ...

  9. python开发最受欢迎的十款工具

    python开发最受欢迎的十款工具 dreamyla3个月前 今天小编给正在学习python开发的朋友介绍十款最受欢迎的开发工具,因为在学习python开发过程中少不了IDE或者代码编辑器,想要提高开 ...

随机推荐

  1. MYSQL 50 基础题 (转载)

    MYSQL 50 基础题 (转载) 前言:最近在强化MYSQL 能力 答案在(也是转载处) https://www.cnblogs.com/kangxinxin/p/11585935.html 下面是 ...

  2. 让我们创建屏幕- Android UI布局和控件

    下载LifeCycleTest.zip - 278.9 KB 下载ViewAndLayoutLessons_-_Base.zip - 1.2 MB 下载ViewAndLayoutLessons_-_C ...

  3. cmd备份数据库,还原数据库,仅限于php

    第一:先备份数据库 1.进入cmd(黑盒子) 2.进入phpstudy所在的盘 3.cd E: 3.cd phpstudy; 4.cd PHPTutorial 5.cd mysql; 6.cd bin ...

  4. 2017-01-26--编译Linux内核2.6.30版本报错解决

    错误一: LD .tmp_vmlinux1 init/built-in.o: In function `run_init_process': /home/ox/tq2440/opt/EmbedSky/ ...

  5. 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir

    讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...

  6. docker 和 k8s 调研总结

    一. docker简介 环境配置 软件开发最大的麻烦事之一,就是环境配置.用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来? 用户必须保证两件事:操作系统的设置,各种库和组件的安装. ...

  7. iproute2工具

    iproute2工具介绍 iproute2是linux下管理控制TCP/IP网络和流量控制的新一代工具包,出现目的是替代老工具链net-tools.net-tools是通过procfs(/proc)和 ...

  8. 【Luogu】P1613 跑路

    [Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...

  9. Windows快捷键与Dos命令学习

    部分Windows常用快捷键 复制:Ctrl + C 粘贴:Ctrl + V 全选:Ctrl + A 剪切:Ctrl + X 撤销:Ctrl + Z 保存:Ctrl + S 关闭窗口:Alt + F4 ...

  10. 通过命令行上传ipa到appstore

    搞持续集成自动化打包上传到appstore遇到这个问题,记录一下. 其实主要就一条到命令: xcrun altool --upload-app -f xxxx.ipa -u "yanqizh ...