功能介绍
传统的 Kubernetes 集群通常只关注资源层面的数据,例如 Node 中有节点的 Allocatable 标示可分配的资源;Metrics-Server 可以监控节点和 Pod 的利用率数据。TKE Insight 推出成本可视化面板可以帮助用户更好地理解、监控和控制在容器环境中的资源使用和成本情况。主要包括如下几个目标:
透明化:用户可以直观地了解应用和服务在容器环境中的资源使用情况,包括不同的集群、命名空间以及工作负载在 CPU、内存方面的成本消耗。这有助于用户了解整体成本结构,提高决策效率。
成本控制与优化:通过成本洞察,用户可以发现成本较高的应用或服务。用户可以针对这些问题进行优化,例如 Request 智能推荐,可抢占式 Job,原生节点专用调度器,QoSAgent,以减少不必要的开支。
预算管理:用户可以根据实际成本情况制定更加合理的预算,并监控预算执行。当资源使用接近或超过预算时,用户可以及时调整策略,避免产生额外支出。
操作步骤
2. 选择左侧导航中的 TKE Insight > 成本洞察。
使用说明
成本洞察的成本数值是一个计算出的参考值,仅供参考,准确费用请登录腾讯云 费用中心 查看。 超级节点无法区分按量计费具体是普通按量计费还是竞价 Pod。因此目前不支持使用预留券抵消对应规格 Pod 的成本。原因是预留券需要在计算成本时调用接口查询预留券信息,放在监控组件中去调用会对接口造成较大压力。
如果上个月没有成本数据,则当月成本相较于上月成本的百分比将不会展示数据。
在计算成本时,Pod 的 GPU 使用量不进行计算,而是把 GPU 的价格分摊在 CPU 和内存上。即 GPU 节点上的 CPU、内存单价更高。
对于原生节点和普通节点的刊例价指标,在上报时,由于无法获取节点的计费模式,因此统一按照按量计费模式的单价去上报数据。
对于按量计费的超级节点上的 Pod,当 annotation 中指定了多个 GPU 类型时,使用第一个 GPU 类型去计算价格。
价格说明
计费方式
计费项包含了普通节点(CVM)、原生节点和超级节点。
普通节点计费方式
根据节点机型和计费方式(按量计费),找出节点的刊例价。
说明:
机型从 node 的 annotation node.kubernetes.io/instance-type 中获取。
原生节点计费方式
根据节点机型和计费方式(按量计费),找出节点的刊例价。
说明:
机型从 node 的 annotation node.kubernetes.io/instance-type 中获取。
超级节点计费方式
按量计费
按量计费超级节点刊例价 = 对应超级节点上各个 Pod 所在子机刊例价总和。
Pod 所在子机刊例价计算方式如下:
解析 Pod 所在子机的 CPU 类型和 GPU 类型。如果 CPU 类型指定了多个,则以第一个类型为依据进行价格计算。如果 GPU 类型指定了多个,则以第一个类型为依据进行价格计算。
如果 GPU 类型不为空,则查找对应 GPU 类型的 CPU 单价、内存单价、GPU 单价和 license 单价(如果 license 不收费,则单价为 0 元)。如果 GPU 类型为空,则查找对应 CPU 类型的 CPU 单价和内存单价。
计算 Pod 的刊例价:GPU 规格 × GPU 单价 + CPU 规格 × CPU 单价 + 内存规格 × 内存单价 + license 单价
说明:
CPU 类型从 Pod 的 annotation eks.tke.cloud.tencent.com/cpu-type 中获取。
GPU 类型从 Pod 的 annotation eks.tke.cloud.tencent.com/gpu-type 中获取。
节点刊例价上报到腾讯云可观测平台
1. 针对每一个节点,会将节点的刊例价信息上报到 腾讯云可观测平台 TCOP。当前支持5min和1h粒度,5min粒度表示节点5min的价格,1h粒度表示节点1h的价格。 2. 针对按量计费超级节点上的 Pod,会上报各个 Pod 的刊例价格信息。当前支持5min和1h粒度,5min粒度表示 Pod 所在子机5min的价格,1h粒度表示 Pod 所在子机1h的价格。
1. 当月成本计算方式
从腾讯云可观测平台 TCOP 拉取最近一个月普通节点、原生节点、超级节点的价格数据,进行相加,以得到一个总的价格。
2. 预估下月成本计算方式
从腾讯云可观测平台 TCOP 以小时粒度拉取最近1h普通节点、原生节点、超级节点价格信息。假设最近1h普通节点、原生节点和超级节点价格之和为x元,则预估的下月成本为 x × 24 × 30元。
3. 成本走势
今天成本:从监控中拉取最近一天普通节点、原生节点和超级节点的价格数据,进行相加。
当月成本走势:从云监控以小时粒度拉取最近一个月的价格数据,前端以小时粒度展示出最近一个月的成本趋势。
说明:
每个小时的数据点表示对应时间点普通节点、原生节点和超级节点刊例价总和。
4. 资源成本分布
分别拉取普通节点、原生节点、超级节点最近1h的成本,然后乘以24和30,得出各个节点的最近一个月的普通节点成本、原生节点成本和超级节点成本。
5. 命名空间成本分布
通过最近一小时的费用预估集群中每个命名空间负载一个月的成本。
1. 获取当前集群的所有节点(普通节点、原生节点和超级节点)。
2. 从腾讯云可观测平台 TCOP 拉取普通节点、原生节点上各个 Pod 的 CPU 使用量和内存使用量。
3. 分别拉取到当前集群中 CVM 节点和原生节点的机型信息,并计算出各个机型的 CPU 单价和内存单价(超级节点 CPU 单价和内存单价是固定的,所以不用计算)。计算方式如下:
3.1 根据全网所有机型的价格预估,得出 CPU 单价为 x 元/核/小时,内存单价为 y 元/G/小时。
3.2 根据3.1得出 CPU 单价/内存单价的比例,然后将整个机器的价格按照内存进行计费,得出该机器内存单价,再将内存单价乘以比例得出 CPU 单价。例如:CPU 单价/内存单价=r,机器为 x 核 yGB,机器价格为 z,则 CPU/内存单价计算方式:
得出该机器内存单价:z/(x*r+y)
CPU 单价:r*(z/(x*r+y))
4. 根据2中获得的各个 Pod 的 CPU 使用量和内存使用量,再根据 Pod 所在节点的 CPU 单价和内存单价,得出各个 Pod 的价格。
5. 根据2中获得的按量计费超级节点,从腾讯云可观测平台 TCOP 获取按量计费超级节点上 Pod 的刊例价。
6. 根据4和5中计算出来的 Pod 成本信息,聚合出各个命名空间的成本信息。
7. 空闲成本:用当前所有节点的总成本 - 各个命名空间的成本之和。
6. 工作负载成本分布
通过最近一小时的费用预估集群中每个工作负载一个月的成本。
1. 获取当前集群的所有节点(普通节点、原生节点和超级节点)。
2. 从监控拉取普通节点、原生节点上各个 Pod 的 CPU 使用量和内存使用量。
3. 分别拉取到当前集群中普通节点和原生节点的机型信息,并计算出各个机型的 CPU 单价和内存单价(超级节点 CPU 单价和内存单价是固定的,所以不用计算,CPU 单价:36元/核/小时,内存单价:18元/G/小时)。计算方式如下:
3.1 根据成本大师的预估(根据全网所有机型的价格),得出 CPU 单价为 x 元/核/小时,内存单价为 y 元/G/小时。
3.2 根据3.1得出 CPU 单价/内存单价的比例,然后将整个机器的价格按照内存进行计费,得出该机器内存单价,再将内存单价乘以比例得出 CPU 单价。例如:CPU 单价/内存单价=r,机器为 x 核 yGB,机器价格为 z,则 CPU/内存单价计算方式:
得出该机器内存单价:z/(x*r+y)
CPU 单价:r*(z/(x*r+y))
4. 根据2中获得的各个 Pod 的 CPU 使用量和内存使用量,再根据 Pod 所在节点的 CPU 单价和内存单价,得出各个 Pod 的价格。
5. 根据2中获得的按量计费超级节点,从腾讯云可观测平台 TCOP 获取按量计费超级节点上 Pod 的刊例价。
6. 根据4和5中计算出来的 Pod 成本信息,聚合出各个 Workload 的成本信息。
7. 空闲成本:用当前所有节点的总成本 - 各个 Workload 的成本之和。
本页内容是否解决了您的问题?