主题
可持续计算-从云原生工作负载的能耗管理管理谈起。
理念
红帽三位一体:降本增效、智能创建、软件供应链安全。
概念
- 吸血鬼电力:指当电子设备名义上被关闭或者处于待机模式时浪费的能量。
- “双碳”战略:碳达峰与碳中和,相应国家政策。
- 可持续计算:以优化清洁产能、提升计算水平、保障不间断服务、快速响应安全事件为目标,包含可持续计算基础设施、云计算技术与平台、可持续业务三个层次,覆盖IT软硬件、配套设施、业务应用,囊括了规划、设计、开发、运行、维护、升级、废弃回收的全周期活动。
项目
kepler:由红帽新兴技术团队创立的开源项目,定义为云计算中每个应用的“软件电表”,用电量。优点是使用eBPF采集数据所以电表本身耗电较少。
kepler在云计算可持续计算中的观测地位:参考cncf博客。
云原生工作负载的能耗管理
云 边 边
优化目标:整体碳排放降到最低。
策略:重新分配调度、重构业务代码
方法:负载重的应用尽可能放在云端,负载轻的应用尽可能放在边端。
kepler 支持范围
- 支持 Pod、容器、进程级别的指标
- 支持CPU(x86、arm、s390x)、GPU、DRAM
- 将开始支持BMC、HMC和其他设备
- 支持裸机、裸金属功能测量,将调查TEE的支持情况。
kepler
概念
kubernetes-based efficient power level exporter 是一个普罗米修斯exporter。
架构
部署
Kepler部署要点
- kepler-clusterrole
- privileged
- Mount path
- lib-modules
- proc
cluster | cluster |
K8s node | K8s node |
Container runtime | Container runtime |
nginx container、App containerkepler container | nginx Pod、App Pod、kepler Pod |
ebpf + cgroup | ebpf + cgroup |
Linux BM | Linux VM |
部署方式
- manifest
- helm chart
- operator
- rpm
构建
eBPF程序、GPU需要构建在kepler镜像里面。
pod list、硬件监控传感器需要挂载再容器中。
构建要点:
- docker image
- internal resource(host path)
- external resource(k8s api)
模型训练
- 功率比建模: 该建模通过功率总和的使用率来计算更细粒度的功率。当总功率已知时,默认情况下会使用此建模。
- 功率估计建模:该建模通过使用度量作为训练模型的输入特征来估计功率。即使不能测量功率度量,也可以使用此建模。估计可以分为三个级别:节点总功率 (包括风扇、电源等)、节点内部组件功率 (如CPU、内存)、Pod功率。另请参阅开始使用Kepler模型服务器。(适合虚拟机的功耗计算:虚拟化后的检测数据不准确。)
- 训练分三步 1、部署kepler 2、训练模型 3、使用
- 计算的可持续性:边缘工作负载的节能位置
- 绿色CI/CD:GitOps的可持续发展之旅
- 通过lstio实现优化微服务性能和可持续性,开普勒与智能调度 未来方向:能耗+性能双优化
openshift 能耗监控 power monitoring
openshift新功能:openshift能耗监控(基于kepler),已集成为开发者预览功能。
问题
- 不同机器指令功耗开销可能不同:kepler是从机器出发的,每台机器计算每台机器上pod的功耗,所以是有差异的。
- 为什么不用PDU计算电耗使用模型:kepler为进程级,模型更详细精准、利于程序优化
- kepler本身能耗:是程序,需要耗电,表盘会展示。
总结
kepler是红帽的upstream项目,可以与模型训练、CICD或服务网格等功能相结合,适合在云计算中部署、了解环境整体功耗情况,将负载低的资源调度到边端,减少充电次数并降低能源消耗,整体看来该项目在大环境下才能发挥更大的作用。结合有雀现状,适合在有绿色能源理念公司、大环境下的项目使用,可以考虑作为中优先级的需求导入项目。