使用成本洞察识别集群资源风险

为快速识别ACK集群工作负载的稳定性、性能或成本风险,您可以通过为集群开启成本洞察功能来实现。成本洞察不仅提供集群所有资源的使用率,而且还专门为QoS类别为Burstable和BestEffort的Pod提供详细的数据视图以监控资源配置。本文介绍如何使用成本洞察功能分析集群资源的风险性。

前提条件

资源配置不合理有哪些风险?

Kubernetes基于Pod的资源配置定义了以下三种QoS(Quality of Service)类,用于代表服务质量和稳定性的不同级别。当节点遇到资源压力时,Kubernetes会基于QoS类确定优先驱逐哪些Pod。

  • Guaranteed:这类Pod中每个容器都指定了Resource Request和Resource Limit,并且这两个值相等。Guaranteed Pod有最严格的资源限制,最不容易面临驱逐,确保服务的顶级稳定性和性能表现。

  • Burstable:这类Pod配置了Resource Request,未配置Resource Limit,可以使用整个节点的资源。当节点资源耗尽时,Kubernetes会优先驱逐BestEffort,然后再考虑驱逐Burstable Pod,确保灵活性与稳定性之间的平衡。

  • BestEffort:这类Pod既没有配置Resource Request,也没有配置Resource Limit。它们只在节点有剩余资源时才能运行,并且在资源紧缺时最先被驱逐,以保护那些有明确资源需求的服务。

因此,合理配置资源对于工作负载的稳定性、性能和成本有重要影响。资源的Request和Limit未配置或配置不足可能影响工作负载稳定性或性能,过度配置又可能造成成本浪费。

资源配置状态

资源类型

风险

未配置

CPU

稳定性和性能受影响,工作负载可能无法获得CPU资源,从而导致无响应。

内存

稳定性受影响,工作负载可能随时因内存不足被中止。

配置不足

CPU

性能受影响,工作负载可能运行缓慢或无响应。

内存

稳定性受影响,工作负载可能因OOM中止退出。

过度配置

CPU

资源利用率低,会产生成本浪费。

内存

资源利用率低,会产生成本浪费。

为了快速识别集群工作负载的稳定性、性能或成本风险,您可以通过为集群开启成本洞察功能来查看集群工作负载的资源水位、查看集群Burstable Pod的资源配置情况,以及查看集群存在风险的BestEffort Pod,从而实现工作负载的稳定性和性能分析。以下介绍该功能的常见使用场景和用法。

识别集群资源风险

稳定性&效率分析是成本洞察中的一个模块,以下介绍如何使用该模块,从而达到分析集群资源是否存在风险。

功能入口

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择成本套件 > 成本洞察

  3. 集群维度页签下,根据稳定性&效率分析页面的数据,分析集群资源是否存在风险。

    如下图所示,该页面不仅展示集群中各种QoS的Pod数量以及总资源用量,还支持查看详细的资源使用量分析。具体资源用量分析,请见下文。

    image

查看集群Pod资源使用率

集群Pod资源使用率分析列表会默认为您提供集群所有Pod的基础信息和资源使用率(Usage/Request),同时支持过滤和排序。您可以通过该功能批量查看集群中资源水位最高或最低的工作负载。

  • 资源使用率过低意味着资源配置过度,您的工作负载可能存在成本节省的空间。

  • 资源使用率过高意味着资源配置不足,视CPU或内存配置情况,您的工作负载可能正在面临性能或稳定性风险。

  • 如果您的资源使用率超过100%,这意味着资源使用量(Usage)超出资源请求量(Request),工作负载的稳定性可能面临风险。

示例

如下图所示,将Pod的内存使用情况按从高至低排序后,显示所展示的Pod内存利用率均超过了100%。接下来,需要根据实际情况进一步分析是否需要调整配置以降低风险。

image

查看集群Burstable Pod的资源配置情况

Burstable Pod - 资源用量分析列表用于查看QoS类为Burstable Pod的资源配置情况,同时支持过滤和排序。您可以通过该功能查看每个Burstable Pod的CPU、内存等资源的请求(Request)和限制(Limit)情况,便于您了解Pod所消耗的集群资源并识别潜在的资源瓶颈。

  • CPU Limit未配置:集群稳定性和性能受影响,工作负载可能无法获得CPU资源,从而导致无响应。

  • 内存 Limit未配置:集群稳定性受影响,工作负载可能随时因内存不足被中止。

示例

如下图所示,下方Pod未设置CPU Limit,可能会因资源竞争而导致集群性能下降或Pod被驱逐。

image

查看集群中BestEffort Pod的资源使用量

Best Effort Pod - 资源用量分析列表用于查看QoS类为BestEffort Pod的资源配置情况,这类Pod一般具有较高稳定性风险,您可以通过过滤和排序列表,来检查是否有预期外的BestEffort Pod,以便及时处理来规避风险。

示例

如下图所示,如果某些承载关键业务服务的Pod的QoS类为BestEffort,需要根据实际情况进行QoS类调整,以确保业务稳定运行。

image

后续操作:优化资源配置

  • 如果通过成本洞察功能识别到ACK集群中工作负载存在有潜在稳定性问题、性能瓶颈及成本超支风险,您可以使用ACK提供的资源画像功能,基于资源使用量的历史数据获得容器粒度的资源规格推荐,简化为容器配置Request和Limit的复杂度。更多信息,请参见资源画像

  • 利用成本洞察提供的数据和分析,您可以合理运用动态资源超卖进一步优化资源的成本效益。更多信息,请参见动态资源超卖