CCE Resource Recommender 用户文档

容器引擎 CCE

  • 功能发布记录
  • 产品描述
    • 介绍
    • 优势
    • 使用限制
    • 应用场景
    • 核心概念
    • 特性
  • 开发指南
    • EFK日志采集系统部署指南
    • 创建LoadBalancer类型的Service
    • Prometheus监控系统部署指南
    • kubectl管理配置
    • 在CCE集群中使用-Network-Policy
  • 常用工具
    • 视图命令行场景示例
  • 产品公告
    • CCE 新版集群管理发布公告
    • CCE 控制台升级公告
    • Kubernetes 版本发布说明
      • CCE发布Kubernetes 1.18版本说明
      • CCE发布Kubernetes 1.30版本说明
      • CCE Kubernetes 版本更新说明
      • CCE发布Kubernetes 1.22版本说明
      • CCE发布Kubernetes 1.20版本说明
      • CCE发布Kubernetes 1.28版本说明
      • CCE发布Kubernetes 1.24版本说明
      • CCE发布Kubernetes 1.26版本说明
    • 安全漏洞修复公告
      • 漏洞CVE-2020-14386修复公告
      • 修复漏洞CVE-2021-30465公告
      • 漏洞CVE-2019-5736修复公告
      • 漏洞CVE-2025-1097、CVE-2025-1098等修复公告
      • 关于 runc 的安全问题(CVE-2024-21626)影响声明
  • 快速入门
    • 快速部署nginx应用
    • 使用CCE容器引擎流程概述
  • 典型实践
    • CCE集群网络说明及规划
    • CCE典型实践之容器网络模式选择
    • Pod异常问题排查
    • 通过 CCE Ingress 实现虚机和容器服务的统一接入
    • CCE集群使用Jenkins持续发布
    • CCE-访问公网实践
    • Linux系统配置常用参数说明
    • 用户使用自定义 CNI 插件方法
    • CCE典型实践之Guestbook搭建
    • 使用KMS对etcd数据加密
    • 添加CGroup V2节点
    • CCE容器运行时选择
    • CCE使用检查清单
    • VPC-ENI模式集群访问公网实践
    • 利用 Velero 实现将应用跨云迁移到 百度CCE
    • 使用 CNI 配置容器内网络参数
    • CCE Resource Recommender 用户文档
    • CCE集群中使用私有镜像实践
    • 云原生AI
      • 使用 CCE AITraining Operator 实现弹性容错训练
      • 部署 TensorFlow Serving 推理服务
      • GPU虚拟化之隔离性最优型的最佳实践
  • 操作指南
    • 多用户访问控制
    • 使用须知
    • 命名空间管理
      • 设置资源配额
      • 设置资源限制
      • 命名空间基本操作
    • 弹性伸缩
      • 使用 cce-autoscaling-placeholder 实现秒级弹性伸缩
      • CCE 集群节点自动伸缩
      • 容器定时水平伸缩(CronHPA)
      • 容器水平伸缩(HPA)
    • 存储管理
      • 使用云盘CDS
      • 使用并行文件存储PFS
      • 使用对象存储BOS
      • 使用并行文件存储PFS L2
      • 使用本地存储
      • 使用数据湖存储加速工具RapidFS
      • 使用文件存储CFS
      • 概述
    • 节点管理
      • 移出节点
      • kubelet容器监控只读端口风险提示
      • 管理污点
      • 设置GPU显存共享
      • 添加节点
      • 自定义Kubelet参数
      • 设置节点封锁
      • 节点排水
      • 管理节点标签
    • 组件管理
      • CCE CSI BOS Plugin 说明
      • Kube Scheduler 说明文档
      • CCE CSI PFS L2 Plugin
      • CCE NodeLocal DNSCache 说明
      • CCE Ingress NGINX Controller 说明
      • CCE RDMA Device Plugin 说明
      • CCE Node Problem Detector 说明
      • CCE Credential Controller 说明
      • Kube Controller Manager 说明
      • CCE Ingress Controller 说明
      • CCE GPU Manager 说明
      • CCE Backup Controller 说明
      • CCE QoS Agent 说明
      • CCE Descheduler 说明
      • 组件概述
      • CCE Image Accelerate 说明
      • CCE Network Plugin说明
      • Kube ApiServer 说明
      • CCE Log Operator 说明
      • CoreDNS 说明
      • CCE NPU Manager 说明
      • CCE AI Job Scheduler 说明
      • CCE LB Controller 说明
      • CCE P2P Accelerator 说明
      • CCE_Hybrid_Manager说明
      • CCE CSI PFS Plugin 说明
      • CCE Deep Learning Frameworks Operator 说明
      • CCE Node Remedier 说明
      • CCE CSI CDS Plugin 说明
      • CCE Ascend Mindx DL说明
      • CCE Calico Felix 说明
      • CCE Virtual Kubelet组件
      • CCE Fluid说明
      • CCE Onepilot 说明
      • CCE CronHPA Controller 说明
      • CCE 动态调度插件说明
    • 云原生AI
      • 云原生AI概述
      • GPU虚拟化
        • MPS 最佳实践&注意事项
        • GPU独占和共享说明
        • GPU在离线混部使用说明
        • GPU虚拟化适配表
        • 单GPU容器共享多卡使用说明
        • 共享GPU场景下的镜像构建注意事项
        • 关闭节点显存共享功能注意事项
      • 队列管理
        • 逻辑队列和物理队列使用说明
        • 修改队列
        • 删除队列
        • 新建队列
      • 任务管理
        • 基于 NCCL的RDMA分布式训练示例
        • 新建AITraining任务
        • 新建PaddlePaddle任务
        • 删除任务
        • 查看任务信息
        • 新建Mxnet任务
        • 新建TensorFlow任务
        • 新建Pytorch任务
      • 数据集管理
        • 删除数据集
        • 操作数据集
        • 查看数据集
        • 新建数据集
      • AI监控大盘
        • 接入监控实例并开启采集任务
        • NVIDIA芯片资源观测
          • AI Job Scheduler组件
          • GPUManager组件
          • GPU资源池总览
          • GPU节点资源
          • GPU工作负载资源
        • 昇腾芯片资源观测
          • 昇腾节点资源
          • 昇腾资源池总览
          • 昇腾工作负载资源
      • AI 加速套件
        • 使用AIAK-Inference 加速推理业务
        • 使用AIAK-Training Pytorch版
        • AIAK 简介
        • 使用 AIAK-Training 部署分布式训练任务
    • Helm管理
      • Helm模板
      • Helm实例
    • 应用管理
      • 部署
      • 保密字典
      • 服务
      • 配置字典
      • 容器组
      • 概述
    • 镜像仓库
      • 使用容器镜像构建服务
      • 镜像仓库基本操作
    • Serverless集群
      • 在Serverless集群中使用Service
      • 产品概述
      • 创建Serverless集群
    • 工作负载
      • 设置工作负载自动水平伸缩
      • Statefulset管理
      • 使用私有镜像创建工作负载
      • Job管理
      • 查看容器组
      • CronJob管理
      • Daemonset管理
      • 免密拉取容器镜像
      • Deployment管理
    • 节点组管理
      • 节点组管理
      • 节点组介绍
      • 升级节点组
      • 添加外部已有节点
      • 自定义节点组 Kubelet 配置
      • 添加备选机型
      • 节点组节点故障检测自愈
      • 配置扩缩容策略
    • 监控日志
      • 使用Prometheus监控集群
      • CCE 事件中心
      • 集群审计仪表盘
      • CCE 集群异常事件报警
      • Java应用监控
      • 集群服务画像
      • 日志管理
      • 集群审计
      • 日志中心
        • 在容器引擎控制台配置采集规则
        • 查看集群控制面日志
        • 日志概述
        • 查看业务日志
        • 使用CRD配置采集规则
    • 网络管理
      • CCE 集群内容器访问集群外服务
      • 容器网段空间耗尽如何继续扩容(VPC-ENI模式)
      • 容器网段空间耗尽如何继续扩容(VPC网络模式)
      • CCE IP Masquerade Agent 用户指南
      • 创建VPC-ENI模式集群
      • 对等连接场景下容器流量转发配置
      • 使用Network Policy网络策略
      • CCE 支持 IPv4 和 IPv6 双栈网络
      • 在CCE集群中使用NetworkPolicy
      • 网络编排
        • 集群 Pod 子网拓扑分布(容器网络 v2)
        • 容器网络 QoS 管理
        • VPC-ENI指定子网分配IP(容器网络 v2)
      • 网络连通性
        • 容器网络通过 NAT 网关访问公网
      • 网络维护
        • CCE容器网络常见错误码对应表
      • DNS
        • DNS 原理概述
        • DNS 问题排查指南
        • CoreDNS 组件手动升级指南
    • 虚拟节点
      • 管理虚拟节点
      • 配置BCIPod
      • 配置bci-profile
    • 备份中心
      • 备份概述
      • 恢复管理
      • 备份仓库
      • 备份管理
    • 巡检与诊断
      • GPU运行环境检查
      • 集群巡检
      • 故障诊断
    • 流量接入
      • NGINX Ingress 使用配置参考
      • CCE基于nginx-ingress实现灰度发布
      • BLB Ingress Annotation说明
      • 通过CCE使用K8S_Ingress
      • 通过YAML创建LoadBalancer_Service
      • 通过CCE使用K8S_Service
      • LoadBalancer Service Annotation说明
      • 使用直连 Pod 模式 LoadBalancer Service
      • Service复用已有负载均衡BLB
      • 通过YAML创建CCE_Ingress
      • 使用 NGINX Ingress
    • 权限管理
      • 配置集群OIDC认证
      • 配置IAM标签权限策略
      • 配置IAM自定义权限策略
      • 配置IAM预置权限策略
      • 权限概述
      • 配置预置RBAC权限策略
    • 配置管理
      • Secret管理
      • Configmap管理
    • 集群管理
      • 集群快照
      • CCE 安全组
      • 查看集群
      • 创建集群
      • 操作集群
      • 升级集群Kubernetes版本
      • 通过kubectl连接集群
      • 托管集群使用说明
      • CCE 支持 GPUSharing 集群
      • CCE节点资源预留说明
      • CCE 节点 CDS 扩容
  • 服务等级协议SLA
    • CCE服务等级协议SLA(V1.0)
  • Solution-Fabric
    • Fabric解决方案
  • API参考
    • 通用说明
    • 公共头和错误返回
    • 概述
  • 常见问题
    • windows下使用kubectl
    • 自动扩缩容常见问题
    • 通过kubectl创建简单的服务
    • 业务应用如何使用负载均衡?
    • 常见问题总览
    • 集群管理常见问题
  • API_V2参考
    • 通用说明
    • Instance相关接口
    • 附录
    • Autoscaler相关接口
    • 组件管理相关接口
    • 套餐适配相关接口
    • Task相关接口
    • 公共头和错误返回
    • Network相关接口
    • 服务域名
    • Cluster相关接口
    • Kubeconfig相关接口
    • InstanceGroup相关接口
    • RBAC相关接口
    • 概述
  • 产品定价
    • 产品定价
  • Solution-Xchain
    • 超级链解决方案
  • SDK
    • Go-SDK
      • 节点组管理
      • 节点管理
      • 集群管理
      • 初始化
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

容器引擎 CCE

  • 功能发布记录
  • 产品描述
    • 介绍
    • 优势
    • 使用限制
    • 应用场景
    • 核心概念
    • 特性
  • 开发指南
    • EFK日志采集系统部署指南
    • 创建LoadBalancer类型的Service
    • Prometheus监控系统部署指南
    • kubectl管理配置
    • 在CCE集群中使用-Network-Policy
  • 常用工具
    • 视图命令行场景示例
  • 产品公告
    • CCE 新版集群管理发布公告
    • CCE 控制台升级公告
    • Kubernetes 版本发布说明
      • CCE发布Kubernetes 1.18版本说明
      • CCE发布Kubernetes 1.30版本说明
      • CCE Kubernetes 版本更新说明
      • CCE发布Kubernetes 1.22版本说明
      • CCE发布Kubernetes 1.20版本说明
      • CCE发布Kubernetes 1.28版本说明
      • CCE发布Kubernetes 1.24版本说明
      • CCE发布Kubernetes 1.26版本说明
    • 安全漏洞修复公告
      • 漏洞CVE-2020-14386修复公告
      • 修复漏洞CVE-2021-30465公告
      • 漏洞CVE-2019-5736修复公告
      • 漏洞CVE-2025-1097、CVE-2025-1098等修复公告
      • 关于 runc 的安全问题(CVE-2024-21626)影响声明
  • 快速入门
    • 快速部署nginx应用
    • 使用CCE容器引擎流程概述
  • 典型实践
    • CCE集群网络说明及规划
    • CCE典型实践之容器网络模式选择
    • Pod异常问题排查
    • 通过 CCE Ingress 实现虚机和容器服务的统一接入
    • CCE集群使用Jenkins持续发布
    • CCE-访问公网实践
    • Linux系统配置常用参数说明
    • 用户使用自定义 CNI 插件方法
    • CCE典型实践之Guestbook搭建
    • 使用KMS对etcd数据加密
    • 添加CGroup V2节点
    • CCE容器运行时选择
    • CCE使用检查清单
    • VPC-ENI模式集群访问公网实践
    • 利用 Velero 实现将应用跨云迁移到 百度CCE
    • 使用 CNI 配置容器内网络参数
    • CCE Resource Recommender 用户文档
    • CCE集群中使用私有镜像实践
    • 云原生AI
      • 使用 CCE AITraining Operator 实现弹性容错训练
      • 部署 TensorFlow Serving 推理服务
      • GPU虚拟化之隔离性最优型的最佳实践
  • 操作指南
    • 多用户访问控制
    • 使用须知
    • 命名空间管理
      • 设置资源配额
      • 设置资源限制
      • 命名空间基本操作
    • 弹性伸缩
      • 使用 cce-autoscaling-placeholder 实现秒级弹性伸缩
      • CCE 集群节点自动伸缩
      • 容器定时水平伸缩(CronHPA)
      • 容器水平伸缩(HPA)
    • 存储管理
      • 使用云盘CDS
      • 使用并行文件存储PFS
      • 使用对象存储BOS
      • 使用并行文件存储PFS L2
      • 使用本地存储
      • 使用数据湖存储加速工具RapidFS
      • 使用文件存储CFS
      • 概述
    • 节点管理
      • 移出节点
      • kubelet容器监控只读端口风险提示
      • 管理污点
      • 设置GPU显存共享
      • 添加节点
      • 自定义Kubelet参数
      • 设置节点封锁
      • 节点排水
      • 管理节点标签
    • 组件管理
      • CCE CSI BOS Plugin 说明
      • Kube Scheduler 说明文档
      • CCE CSI PFS L2 Plugin
      • CCE NodeLocal DNSCache 说明
      • CCE Ingress NGINX Controller 说明
      • CCE RDMA Device Plugin 说明
      • CCE Node Problem Detector 说明
      • CCE Credential Controller 说明
      • Kube Controller Manager 说明
      • CCE Ingress Controller 说明
      • CCE GPU Manager 说明
      • CCE Backup Controller 说明
      • CCE QoS Agent 说明
      • CCE Descheduler 说明
      • 组件概述
      • CCE Image Accelerate 说明
      • CCE Network Plugin说明
      • Kube ApiServer 说明
      • CCE Log Operator 说明
      • CoreDNS 说明
      • CCE NPU Manager 说明
      • CCE AI Job Scheduler 说明
      • CCE LB Controller 说明
      • CCE P2P Accelerator 说明
      • CCE_Hybrid_Manager说明
      • CCE CSI PFS Plugin 说明
      • CCE Deep Learning Frameworks Operator 说明
      • CCE Node Remedier 说明
      • CCE CSI CDS Plugin 说明
      • CCE Ascend Mindx DL说明
      • CCE Calico Felix 说明
      • CCE Virtual Kubelet组件
      • CCE Fluid说明
      • CCE Onepilot 说明
      • CCE CronHPA Controller 说明
      • CCE 动态调度插件说明
    • 云原生AI
      • 云原生AI概述
      • GPU虚拟化
        • MPS 最佳实践&注意事项
        • GPU独占和共享说明
        • GPU在离线混部使用说明
        • GPU虚拟化适配表
        • 单GPU容器共享多卡使用说明
        • 共享GPU场景下的镜像构建注意事项
        • 关闭节点显存共享功能注意事项
      • 队列管理
        • 逻辑队列和物理队列使用说明
        • 修改队列
        • 删除队列
        • 新建队列
      • 任务管理
        • 基于 NCCL的RDMA分布式训练示例
        • 新建AITraining任务
        • 新建PaddlePaddle任务
        • 删除任务
        • 查看任务信息
        • 新建Mxnet任务
        • 新建TensorFlow任务
        • 新建Pytorch任务
      • 数据集管理
        • 删除数据集
        • 操作数据集
        • 查看数据集
        • 新建数据集
      • AI监控大盘
        • 接入监控实例并开启采集任务
        • NVIDIA芯片资源观测
          • AI Job Scheduler组件
          • GPUManager组件
          • GPU资源池总览
          • GPU节点资源
          • GPU工作负载资源
        • 昇腾芯片资源观测
          • 昇腾节点资源
          • 昇腾资源池总览
          • 昇腾工作负载资源
      • AI 加速套件
        • 使用AIAK-Inference 加速推理业务
        • 使用AIAK-Training Pytorch版
        • AIAK 简介
        • 使用 AIAK-Training 部署分布式训练任务
    • Helm管理
      • Helm模板
      • Helm实例
    • 应用管理
      • 部署
      • 保密字典
      • 服务
      • 配置字典
      • 容器组
      • 概述
    • 镜像仓库
      • 使用容器镜像构建服务
      • 镜像仓库基本操作
    • Serverless集群
      • 在Serverless集群中使用Service
      • 产品概述
      • 创建Serverless集群
    • 工作负载
      • 设置工作负载自动水平伸缩
      • Statefulset管理
      • 使用私有镜像创建工作负载
      • Job管理
      • 查看容器组
      • CronJob管理
      • Daemonset管理
      • 免密拉取容器镜像
      • Deployment管理
    • 节点组管理
      • 节点组管理
      • 节点组介绍
      • 升级节点组
      • 添加外部已有节点
      • 自定义节点组 Kubelet 配置
      • 添加备选机型
      • 节点组节点故障检测自愈
      • 配置扩缩容策略
    • 监控日志
      • 使用Prometheus监控集群
      • CCE 事件中心
      • 集群审计仪表盘
      • CCE 集群异常事件报警
      • Java应用监控
      • 集群服务画像
      • 日志管理
      • 集群审计
      • 日志中心
        • 在容器引擎控制台配置采集规则
        • 查看集群控制面日志
        • 日志概述
        • 查看业务日志
        • 使用CRD配置采集规则
    • 网络管理
      • CCE 集群内容器访问集群外服务
      • 容器网段空间耗尽如何继续扩容(VPC-ENI模式)
      • 容器网段空间耗尽如何继续扩容(VPC网络模式)
      • CCE IP Masquerade Agent 用户指南
      • 创建VPC-ENI模式集群
      • 对等连接场景下容器流量转发配置
      • 使用Network Policy网络策略
      • CCE 支持 IPv4 和 IPv6 双栈网络
      • 在CCE集群中使用NetworkPolicy
      • 网络编排
        • 集群 Pod 子网拓扑分布(容器网络 v2)
        • 容器网络 QoS 管理
        • VPC-ENI指定子网分配IP(容器网络 v2)
      • 网络连通性
        • 容器网络通过 NAT 网关访问公网
      • 网络维护
        • CCE容器网络常见错误码对应表
      • DNS
        • DNS 原理概述
        • DNS 问题排查指南
        • CoreDNS 组件手动升级指南
    • 虚拟节点
      • 管理虚拟节点
      • 配置BCIPod
      • 配置bci-profile
    • 备份中心
      • 备份概述
      • 恢复管理
      • 备份仓库
      • 备份管理
    • 巡检与诊断
      • GPU运行环境检查
      • 集群巡检
      • 故障诊断
    • 流量接入
      • NGINX Ingress 使用配置参考
      • CCE基于nginx-ingress实现灰度发布
      • BLB Ingress Annotation说明
      • 通过CCE使用K8S_Ingress
      • 通过YAML创建LoadBalancer_Service
      • 通过CCE使用K8S_Service
      • LoadBalancer Service Annotation说明
      • 使用直连 Pod 模式 LoadBalancer Service
      • Service复用已有负载均衡BLB
      • 通过YAML创建CCE_Ingress
      • 使用 NGINX Ingress
    • 权限管理
      • 配置集群OIDC认证
      • 配置IAM标签权限策略
      • 配置IAM自定义权限策略
      • 配置IAM预置权限策略
      • 权限概述
      • 配置预置RBAC权限策略
    • 配置管理
      • Secret管理
      • Configmap管理
    • 集群管理
      • 集群快照
      • CCE 安全组
      • 查看集群
      • 创建集群
      • 操作集群
      • 升级集群Kubernetes版本
      • 通过kubectl连接集群
      • 托管集群使用说明
      • CCE 支持 GPUSharing 集群
      • CCE节点资源预留说明
      • CCE 节点 CDS 扩容
  • 服务等级协议SLA
    • CCE服务等级协议SLA(V1.0)
  • Solution-Fabric
    • Fabric解决方案
  • API参考
    • 通用说明
    • 公共头和错误返回
    • 概述
  • 常见问题
    • windows下使用kubectl
    • 自动扩缩容常见问题
    • 通过kubectl创建简单的服务
    • 业务应用如何使用负载均衡?
    • 常见问题总览
    • 集群管理常见问题
  • API_V2参考
    • 通用说明
    • Instance相关接口
    • 附录
    • Autoscaler相关接口
    • 组件管理相关接口
    • 套餐适配相关接口
    • Task相关接口
    • 公共头和错误返回
    • Network相关接口
    • 服务域名
    • Cluster相关接口
    • Kubeconfig相关接口
    • InstanceGroup相关接口
    • RBAC相关接口
    • 概述
  • 产品定价
    • 产品定价
  • Solution-Xchain
    • 超级链解决方案
  • SDK
    • Go-SDK
      • 节点组管理
      • 节点管理
      • 集群管理
      • 初始化
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 容器引擎CCE
  • arrow
  • 典型实践
  • arrow
  • CCE Resource Recommender 用户文档
本页目录
  • 组件介绍
  • 部署在集群内的资源对象
  • 功能说明
  • CCE Resource Recommender 推荐原理
  • 注意事项
  • 环境要求
  • 被控资源要求
  • 推荐计算
  • 使用说明
  • 安装组件
  • 安装流程
  • 1、开启 CProm
  • 2、 安装 CCE Resource Recommender
  • 3、 验证安装是否成功
  • 卸载 CCE Resource Recommender
  • 后台获取推荐数值
  • 工作负载
  • Recommendation CR

CCE Resource Recommender 用户文档

更新时间:2025-08-21

组件介绍

  • Kubernetes 提升业务编排和资源利用率

    • Kubernetes 可以有效的提升业务编排能力和资源利用率,但如果没有额外的能力支撑,提升的能力十分有限。
    • Kubernetes 集群的资源利用率不高的主要原因是根据 Kubernetes 的资源调度逻辑,在创建 Kubernetes 工作负载时,通常需要为工作负载配置合适的资源 Request,表示对资源的占用和限制,其中对利用率影响最大的是 Request。
    • 为防止自己的工作负载所用的资源被别的工作负载所占用,或者是为了应对高峰流量时的资源消耗诉求,用户习惯于为 Request 设置较大的数值。
    • Request 和实际使用资源之间的差值,是不能被其它工作负载所使用的,因此造成了浪费。
    • Request 数值设置不合理,造成了 Kubernetes 集群资源利用率低。
  • 百度智能云 CCE 支持在集群中安装 CCE Resource Recommender 组件。CCE Resource Recommender 组件 可以为 Kubernetes 的 Workload 推荐容器级别资源的 Request 数值,减少资源浪费

部署在集群内的资源对象

安装 CCE Resource Recommender 组件 , 将在集群内部署以下 Kubernetes 对象:

Kubernetes 对象名称 类型 所属 Namespaces
analytics.analysis.baidubce.com CustomResourceDefinition -
recommendations.analysis.baidubce.com CustomResourceDefinition -
analysis-default Analytics kube-system
recommendation-configuration ConfigMap kube-system
recommenderd ClusterRole -
recommenderd ClusterRoleBinding -
recommenderd Service kube-system
recommenderd ClusterRoleBinding kube-system
recommenderd ServiceAccount kube-system
recommenderd Deployment kube-system

功能说明

支持为 Deployment、StatefulSet、DaemonSet 中的每一个 Container 智能推荐合适的资源 Request。 支持维持 Request 比例:推荐的 Request 会维持初始 Workload 中 Container 设置的 Reqeust 之间的比例。

CCE Resource Recommender 推荐原理

组件在 kube-system 命名空间下创建 Analytics CR 对象,覆盖所有集群中的所有 Kubernetes 原生工作负载(Deployment、DaemonSet、StatefulSet),会分析工作负载最长 14 天的监控数据数据,12 小时更新一次推荐值。 然后根据 Analytics 生成集群内每个工作负载的 Recommendation CR 对象,用于存储推荐的数据。 Recommendation CR 如果产生了推荐数据,就会把推荐数据写入到对应工作负载的 Annotation 里。

注意事项

环境要求

  • Kubernetes 版本:1.18+
  • 接入 Prometheus 监控服务(CProm 或 自建 Prometheus 数据源)

被控资源要求

  • 支持 Deployment、StatefulSet、DaemonSet。
  • 不支持 Job、CronJob,不支持不是由 Workload 管理的 Pod。

推荐计算

  • 推荐最小值:单个容器推荐的 CPU 最小值是 0.125 核,即 125m;内存的最小值是 125Mi。
  • 该组件会自动分析工作负载历史的监控数据,推荐合适的 Request 数值。
  • 安装该组件非立即生效,为准确计算推荐值,需要分析该 Workload 的历史资源使用数据。
  • 不同的 Workload 的计算时间长度可能不一致,集群中不同的 Workload 之间互相可能会有影响。
  • 安装该组件后,对至少运行一天的 Workload 产生推荐数据。
  • 对于安装组件后新建的 Workload,一般情况下,也需要一天的时间才会产生 Workload 的推荐数据。
  • 建议工作负载稳定运行一段时间之后,再使用推荐值更新 Workload。

使用说明

安装组件

百度智能云官方 helm 模版安装。

安装流程

1、开启 CProm

  • 登录CCE管理控制台,选择“监控日志 > Prometheus监控”,点击“接入实例”。

WeChatfcc53cee49b890ce0367306592a43655.jpg

  • 等待接入实例成功, 单击"跳转到Prometheus监控服务"。

91721200119_.pic.jpg

  • 在监控实例页面复制 实例id 和 Remote Read 地址,且单击生成Token并复制。这些信息将用于下一步安装。

WeChatea8d1e1c441d4815a91b65c01e0ca010.jpg

2、 安装 CCE Resource Recommender

WeChat3f850841d87999864e2434dc3524dc09.jpg

WeChat3d51ec437299499c96cf9706dd70f3e4.jpg

参数 描述 默认值 是否必填
recommenderd.containerArgs.prometheus-address recommenderd 的 Prometheus 地址 空(Cprom的地址后面需加 /prometheus ) 是
recommenderd.containerArgs.prometheus-auth-instanceId recommenderd 的 CProm 实例ID 空 是
recommenderd.containerArgs.prometheus-auth-bearertoken recommenderd 的 CProm Token信息 空 是
analysisDefault.enable 是否开启全局资源推荐默认配置
默认配置会 true 否
  • 添加参数示例
YAML
1# Default values for cce-resource-recommender.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
4recommenderd:
5  image:
6    repository: registry.baidubce.com/cce-plugin-pro/cce-resource-recommender
7    pullPolicy: IfNotPresent
8    # Overrides the image tag whose default is the chart appVersion.
9    tag: "v1.0.0"
10
11  replicaCount: 2
12
13  containerArgs:
14    feature-gates: Analysis=true
15    v: 2
16	prometheus-address: https://cprom.gz.baidubce.com/test/select/prometheus
17    prometheus-auth-instanceId: cprom-pjuun6b516c71
18    prometheus-auth-bearertoken: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lc3BhY2UiOiJjcHJvbS1wanV1bjZiNTE2YzcxIiwic2VjcmV0TmFtZSI6ImVjYTk3ZTE0OGNiNzRlOTY4M2Q3YjcyNDA4MjlkMWZmIiwiZXhwIjoxNzgzODUwMTkyLCJpc3MiOiJjcHJvbSJ9.U5VkXlKbSJvOqPHWW_gGOhaEJA-hDdvsOyIHgYijacA
19
20  podAnnotations: { }
21
22  resources: { }
23
24  nodeSelector: { }
25
26  tolerations: [ ]
27
28  affinity: { }
29
30analysisDefault:
31  enable: true

3、 验证安装是否成功

使用如下命令检查安装的 Deployment 是否正常:

kubectl get deploy recommenderd -n kube-system

结果类似如下:

YAML
1NAME           READY   UP-TO-DATE   AVAILABLE   AGE
2recommenderd   2/2     2            2           37s

卸载 CCE Resource Recommender

helm --kubeconfig {$kubeconfig} uninstall cce-resource-recommender -n kube-system

后台获取推荐数值

工作负载

CCE Resource Recommender 组件会将推荐值保存至对应工作负载的YAML文件中,您可以通过标准的 Kuberentes API 获取每个工作负载的推荐值,然后集成到业务的发布系统中。如下所示查看工作负载下每个容器的 Request 推荐量:

YAML
1apiVersion: apps/v1
2kind: Deployment
3metadata:
4  annotations:
5    analysis.baidubce.com/resource-recommendation: |
6      containers:
7      # 若一个 Pod 里有多个容器,每个容器都有 CPU 和 Memory 的 Request 的推荐值
8      - containerName: nginx
9        target:
10          cpu: 125m
11          memory: 125Mi #若这里缺少单位,显示的是字符串"58243235",省略的单位是byte
12    deployment.kubernetes.io/revision: "1"
13  creationTimestamp: "2024-06-11T03:15:57Z"
14  generation: 1
15  labels:
16    app: nginx
17  name: deployment-example
18  namespace: default
19  resourceVersion: "1118119"
20  uid: 8b6d54d9-c683-4e76-a95e-658e14a954b1
21spec:
22  progressDeadlineSeconds: 600
23  replicas: 1
24  revisionHistoryLimit: 10
25  selector:
26    matchLabels:
27      app: nginx
28  strategy:
29    rollingUpdate:
30      maxSurge: 25%
31      maxUnavailable: 25%
32    type: RollingUpdate
33  template:
34    metadata:
35      creationTimestamp: null
36      labels:
37        app: nginx
38    spec:
39      containers:
40      - image: hub.baidubce.com/cce/nginx-alpine-go:latest
41        imagePullPolicy: Always
42        livenessProbe:
43          failureThreshold: 3
44          httpGet:
45            path: /
46            port: 80
47            scheme: HTTP
48          initialDelaySeconds: 20
49          periodSeconds: 5
50          successThreshold: 1
51          timeoutSeconds: 5
52        name: nginx
53        ports:
54        - containerPort: 80
55          protocol: TCP
56        readinessProbe:
57          failureThreshold: 3
58          httpGet:
59            path: /
60            port: 80
61            scheme: HTTP
62          initialDelaySeconds: 5
63          periodSeconds: 5
64          successThreshold: 1
65          timeoutSeconds: 1
66        resources:
67          limits:
68            cpu: 250m
69            memory: 512Mi
70          requests:
71            cpu: 250m
72            memory: 512Mi
73        terminationMessagePath: /dev/termination-log
74        terminationMessagePolicy: File
75      dnsPolicy: ClusterFirst
76      restartPolicy: Always
77      schedulerName: default-scheduler
78      securityContext: {}
79      terminationGracePeriodSeconds: 30

Recommendation CR

CCE Resource Recommender 组件会根据分析结果会生成集群内每个工作负载的 Recommendation CR 对象,用于存储推荐数据,同时也会将推荐值保存到工作负载的 YAML 中

YAML
1apiVersion: analysis.baidubce.com/v1alpha1
2kind: Recommendation
3metadata:
4  annotations:
5    analysis.baidubce.com/run-number: "1"
6  creationTimestamp: "2024-06-11T04:54:27Z"
7  generateName: analysis-default-resource-
8  generation: 2
9  labels:
10    analysis.baidubce.com/analytics-uid: 83cccfd5-b3c5-45aa-a92a-d9dd607dc75f
11    analysis.baidubce.com/recommendation-rule-name: analysis-default
12    analysis.baidubce.com/recommendation-rule-recommender: Resource
13    analysis.baidubce.com/recommendation-rule-uid: bce27929-64d6-4b5f-89e4-001cbed5ed64
14    analysis.baidubce.com/recommendation-target-kind: StatefulSet
15    analysis.baidubce.com/recommendation-target-name: agent-q7vl19h81
16    analysis.baidubce.com/recommendation-target-version: v1
17    app.kubernetes.io/component: vmagent
18    app.kubernetes.io/instance: agent-q7vl19h81
19    app.kubernetes.io/managed-by: Helm
20    app.kubernetes.io/name: monitor-agent
21    app.kubernetes.io/version: 0.2.0
22    helm.sh/chart: monitor-agent-0.3.6
23  name: analysis-default-resource-2gzjt
24  namespace: default
25  ownerReferences:
26  - apiVersion: analysis.baidubce.com/v1alpha1
27    blockOwnerDeletion: false
28    controller: false
29    kind: RecommendationRule
30    name: analysis-default
31    uid: bce27929-64d6-4b5f-89e4-001cbed5ed64
32  resourceVersion: "1118082"
33  uid: 4793159d-83b5-45db-8c34-c3443a7c45cd
34spec:
35  adoptionType: StatusAndAnnotation
36  completionStrategy:
37    completionStrategyType: Once
38  targetRef:
39    apiVersion: apps/v1
40    kind: StatefulSet
41    name: agent-q7vl19h81
42    namespace: cprom-system
43  type: Resource
44status:
45  action: Patch
46  conditions:
47  - lastTransitionTime: "2024-06-11T04:54:28Z"
48    message: Recommendation is ready
49    reason: RecommendationReady
50    status: "True"
51    type: Ready
52  currentInfo: '{"spec":{"template":{"spec":{"containers":[{"name":"sidecar","resources":{"requests":{"cpu":"100m","memory":"100Mi"}}},{"name":"vmagent","resources":{"requests":{"cpu":"100m","memory":"100Mi"}}}]}}}}'
53  lastUpdateTime: "2024-06-11T04:54:28Z"
54  recommendedInfo: '{"spec":{"template":{"spec":{"containers":[{"name":"sidecar","resources":{"requests":{"cpu":"125m","memory":"125Mi"}}},{"name":"vmagent","resources":{"requests":{"cpu":"125m","memory":"125Mi"}}}]}}}}'
55  recommendedValue: |
56    resourceRequest:
57      containers:
58      - containerName: sidecar
59        target:
60          cpu: 125m
61          memory: 125Mi
62      - containerName: vmagent
63        target:
64          cpu: 125m
65          memory: 125Mi
66  targetRef: {}

在该示例中:

  • 推荐的 TargetRef 指向 cprom-system 的 StatefulSet:agent-q7vl19h81
  • 推荐类型为资源推荐
  • adoptionType 是 StatusAndAnnotation,表示将推荐结果展示在 recommendation.status 和 Deployment 的 Annotation
  • recommendedInfo 显示了推荐的资源配置,currentInfo 显示了当前的资源配置,格式是 Json ,可以通过 Kubectl Patch 将推荐结果更新到 TargetRef

上一篇
使用 CNI 配置容器内网络参数
下一篇
CCE集群中使用私有镜像实践