红帽
红帽从今年初开始在自家混合云平台OpenShift中提供了一个容器层级的电力监控工具Kepler,能用于监控云原生应用的功耗与能耗,不仅可以查看Pod或命名空间(Namespace)丛集中每日使用CPU的整体能耗情况,还能够细致地检视每个命名空间的能耗和功耗在不同时段的变化情形,提供每小时的更新频
率。不过目前尚未支援碳排放监控功能。
在OpenShift 4.14上现已提供这款工具,供用户进行试用。不过, 现阶段仅是技术预览版,尚未推出正式版。
去年初,红帽承诺要在2030年实现营运温室气体净零排放的目标,其中在针对企业客户节能减碳方面,红帽计划开发一套软体能耗量测的方法或工具,不仅能够搜集和监控每个容器化应用的能耗状况,甚至可以将其碳排放数据纳入管理与追踪。
这套工具源自于一个Kepler(Kubernetes-based Efficient Power Level Exporter)专案。这是由红帽、IBM在2022年2月所发起,在2023年5月加入CNCF基金会沙盒的专案,利用eBPF来取得能源相关系统状态的数据,并汇出成Prometheus指标进行监控和管理的工具。
Kepler这项工具会在每个节点中部署一个Kepler探索器,用于搜集容器层级和节点层级的资讯,主要透过eBPF程式来追踪CPU效能计数器和Linux核心Tracepoint机制,来搜集即时能耗和资源利用率相关资讯,再进一步计算出每个容器或节点所消耗的kWh能耗资讯,用于监控和管理每个容器和节点的能耗情形。
Kepler还使用API从节点元件搜集各种即时功耗资讯,例如RAPL(用于监控与管理CPU及记忆体的用电量)、NVML(GPU资源利用率管理函式库)、ACPI(系统电源效能管理介面)、IPMI(伺服器电源监测介面)等。
为了准确预估每个容器或Pod的实际能耗,在Kepler工具中还结合机器学习模型来进行测量和预估,以提高测量模型准确性,以便根据实际的资源利用率准确地估计其功耗。同时,Kepler工具本身也整合了开源监控与资料视觉化平台Grafana,可以视觉化方式呈现Pod或Namespace的电力消耗的情况。
从电力监控仪表板中,使用者不仅可以查看每日Pod或Namespace丛集中占用CPU能耗的整体情况,包括所选CPU架构和受监控指定的节点数量等,还可放大检视每个Namespace在不同时段的能耗和功耗变化,并提供每小时的更新频率。此外,也可以优先列出能耗过高的Namespace丛集,了解哪些容器和Pod消耗的电量最多,做为日后能耗改善的参考依据。图片来源_红帽
每个Pod或命名空间的能耗都能纳入监控
红帽目前虽然还没将Kepler变成OpenShift的内建功能,但随著去年11月,OpenShift 4.14版本的发布后,红帽开始推出了采用Kepler专案所开发的电力监控功能的开发者预览,让开发者可以透过安装外挂的方式,直接将其整合到OpenShift主控台的仪表板上,方便用户进行查看和分析。随后在今年1月底,这项功能进入技术预览阶段,目前尚未推出正式版。
从电力监控仪表板中,使用者不仅可以查看每日所有Pod或Namespace丛集中占用CPU能耗的整体情况,包含所选CPU架构和受监控指定的节点数量等,还可放大检视每个Namespace在不同时段的能耗和功耗变化,并提供每小时的更新频率。此外,也可以优先列出能耗过高的Namespace丛集,了解哪些容器和Pod消耗的电量最多,做为加强能耗改善的参考依据。
值得注意的是,在OpenShift中这项功能目前仅提供Pod、Namespace的功耗和能耗资讯,尚未包含碳排放资讯。因此,企业必须自行将每个容器或运算节点所消耗的kWh能耗资讯乘上碳排放因子,才能够换算出相应的碳排放量,还无法直接在OpenShift中来查看每个容器或节点的碳排状况。
红帽表示,透过Kepler工具能够协助企业更容易观察、分析、优化和记录云端原生应用程式的功耗,而且不仅仅是能产出相关能耗报告,还能用于建立和追踪其碳足迹,甚至是与软体工程CI/CD工作流程紧密结合等。
红帽最新提供的Kepler技术支援矩阵显示了目前已支援和计划提供技术支援情 况,最底层是作业环境层(包含裸机、虚拟机器环境),再上一层是电力资讯收 集层(主机板、硬体元件),最上面是应用层(Pod、容器、Process和VM)。图片来源_红帽
Kepler专案未来计划提供技术支援
根据红帽最新提供的Kepler技术支援矩阵显示了目前已支援和计划提供技术支援情况,涵盖了作业环境层、电力资讯收集层,以及应用层。
首先,在底层作业环境上,Kepler现已可支援跨不同作业环境,包括裸机和虚拟机器环境,来监测每个容器化应用的能耗,之后还将支援可信赖执行环境TEE架构。再上一层是电力资讯收集层,一方面支援来自BMC/HMC硬体管理主控台的电力数据源,未来也将能进一步支援储存、网路以及外部的电力资讯。另一方面,Kepler支援目前主流的硬体元件及记忆体,包含CPU、GPU、DRAM记忆体和QAT加解密加速器。最上面的应用层,Kepler不只可以支援Pod、容器,还能够提供Process和虚拟机器的支援。也就是说,即使是在非云原生环境中,也能够使用Kepler进行VM的能耗监测和管理。
除了Kepler专案之外,从红帽一份云原生永续性发展蓝图中透露出他们未来在云原生永续发展上,还将积极推动三项云原生永续性专案计划及发展。由左至右分别是能够感知功耗变化并调整工作负载排程的Peaks专案,还有专注于利用ML模型预测和调整Pod资源使用进行调度的Clever专案。最后一个发展计划则和减碳相关,能够自动根据容器化应用的工作负荷进行调度,将高耗能的工作负载分配到碳排放足迹较低的环境中执行。 图片来源_红帽
红帽云原生永续性发展蓝图
除了Kepler专案之外,从红帽一份云原生永续性发展蓝图中透露出他们未来在云原生永续发展上将积极推动三项云原生永续性专案及发展。红帽提到的第一个云原生永续性专案是Peaks专案。这是由红帽、ET和IBM去年10月发起的专案,它是一个能够感知功耗并调整工作负载排程的工具,使用该工具可以透过从Kepler中取得的能耗资讯以及综合能源效率、资源利用率和硬体的相关性,进而计算出其功耗效率资讯,作为能源效率工作负载调度的参考依据,来最佳化其每瓦特效能。
第二项云原生永续专案则是Clever专案,专注于利用ML模型来预测和调整Pod资源使用和进行调度,以便能够根据工作负载自动扩展或缩放Pod节点,达到功耗效能最优化。
红帽提到的最后一个云原生永续发展方向则和减碳相关,未来能够自动根据容器化应用的工作负荷进行调度,将高耗能的工作负载分配到碳排放足迹较低的环境中执行,确保在工作负载的生命周期内落实永续目标。除了Kepler已加入CNCF基金会沙盒专案,Peaks和Clever专案目前均已放上GitHub 上。