本文来自 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 的团队提供了一个实现的老本治理解决方案。