10分钟搭建Paws环境:基于Prometheus和cAdvisor的资源监控配置终极指南

发布时间:2026/7/7 19:03:57
10分钟搭建Paws环境:基于Prometheus和cAdvisor的资源监控配置终极指南 10分钟搭建Paws环境基于Prometheus和cAdvisor的资源监控配置终极指南【免费下载链接】pawsPerformance Aware System is a system for precise resource recommendation and intelligent scheduling.项目地址: https://gitcode.com/openeuler/paws前往项目官网免费下载https://ar.openeuler.org/ar/性能感知系统Performance Aware System是一个为大规模集群提供精确资源推荐和智能调度的系统。它通过Prometheus和cAdvisor实现精细化的资源监控帮助您优化Kubernetes集群的资源利用率同时确保应用服务质量。本文将为您提供一个快速搭建Paws环境的完整教程让您在10分钟内完成基于Prometheus和cAdvisor的资源监控配置。 Paws核心功能与架构概述Paws系统通过数据驱动的方法解决Kubernetes集群中的两个关键挑战资源利用率优化和性能干扰最小化。系统采用黑盒调度方法即使在不了解工作负载内部细节的情况下也能通过代理指标如CPU利用率实现智能调度。系统主要组件包括DRIFT推荐器提供运行中Pod的资源推荐算法Prometheus作为历史数据的中央存储库PROM爬虫从Prometheus抓取指标数据VPA对象支持自定义标签以实现各种优化 环境准备与依赖安装在开始之前请确保您的环境满足以下要求系统要求Kubernetes 1.22 集群或Kind集群可访问Kubernetes集群的KubeconfigDocker仓库访问权限已安装Kubernetes Vertical Pod AutoscalerPrometheus和cAdvisor安装Paws系统依赖Prometheus和cAdvisor来收集容器资源使用指标。以下是快速安装步骤# 安装Prometheus Stack helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack # 配置cAdvisor容器标签存储 # 编辑cAdvisor配置以启用容器标签存储关键配置点cAdvisor需要正确配置容器标签存储。在vertical-pod-autoscaler/docs/install.md中提到的您需要设置以下标志之一--store_container_labelstrue或设置--whitelisted_container_labels标志包含Kubernetes推荐标签⚡ 快速安装Paws系统步骤1安装Kubernetes VPA首先安装Kubernetes Vertical Pod Autoscaler的基础组件git clone https://github.com/kubernetes/autoscaler.git cd vertical-pod-autoscaler ./hack/vpa-up.sh步骤2克隆并配置Paws项目git clone https://gitcode.com/openeuler/paws.git cd paws/vertical-pod-autoscaler步骤3配置Prometheus连接编辑配置文件config/recommender_config.yaml设置Prometheus URLRECOMMENDER_NAME: paws-recommender PROM_URL: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090 HISTORY_LENGTH: 86400 FORECASTING_DAYS: 7 SLEEP_WINDOW: 60步骤4部署Paws推荐器# 构建并推送Docker镜像 docker build -t docker.io/your-repo/paws-recommender:v1.0.0 . docker push docker.io/your-repo/paws-recommender:v1.0.0 # 应用部署配置 kubectl apply -f manifests/core/recommender-deployment.yaml Prometheus和cAdvisor详细配置cAdvisor配置优化为了确保Paws能够正确识别容器指标cAdvisor需要配置正确的标签存储。在cAdvisor运行时选项中建议使用以下配置apiVersion: apps/v1 kind: DaemonSet metadata: name: cadvisor spec: template: spec: containers: - name: cadvisor image: gcr.io/cadvisor/cadvisor:latest args: - --store_container_labelsfalse - --whitelisted_container_labelsio.kubernetes.container.name,io.kubernetes.pod.name,io.kubernetes.pod.namespace,app.kubernetes.io/instance,app.kubernetes.io/part-of,app.kubernetes.io/managed-by,app.kubernetes.io/namePrometheus数据采集配置确保Prometheus能够正确采集cAdvisor指标# prometheus配置示例 scrape_configs: - job_name: kubernetes-cadvisor kubernetes_sd_configs: - role: node scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: [__meta_kubernetes_node_name] regex: (.) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor 测试与验证配置部署测试工作负载使用提供的脚本快速部署测试环境cd vertical-pod-autoscaler/deploy_scripts # 部署PAWS VPA推荐器 ./start.sh # 部署VPA对象Redis ./deploy_test_vpa_object.sh # 部署测试工作负载Redis ./deploy_test_workload.sh验证安装状态检查所有组件是否正常运行# 检查VPA状态 kubectl get vpa # 检查Pods状态 kubectl get pods -n kube-system # 查看PAWS推荐器日志 kubectl logs [paws-recommender-pod-name] -n kube-system --follow成功运行的日志应显示类似以下内容Successfully patched VPA object with the recommendation: [ { containerName: the-container-name, lowerBound: {cpu: 100m, memory: 50Mi}, target: {cpu: 100m, memory: 50Mi}, uncappedTarget: {cpu: 10m, memory: 8Mi}, upperBound: {cpu: 100m, memory: 50Mi} } ]️ 常见问题与故障排除问题1Prometheus连接失败504错误当推荐器无法访问Prometheus时可能出现504错误。根据安装文档中的说明有两种访问方式集群内服务访问生产环境推荐PROM_URL: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090端口转发访问开发环境kubectl port-forward svc/kube-prometheus-stack-prometheus 9090:9090 -n monitoring问题2cAdvisor指标缺失确保cAdvisor正确配置了容器标签。检查cAdvisor日志kubectl logs [cadvisor-pod-name] -n kube-system确认日志中包含正确的标签存储配置。问题3VPA对象无推荐检查Prometheus中是否有相关指标# 查询容器CPU使用率 curl -G http://localhost:9090/api/v1/query \ --data-urlencode querycontainer_cpu_usage_total{containerredis} 高级配置与优化优先级类别配置Paws VPA使用优先级类别为不同工作负载选择最佳推荐算法。您可以在priority-classes目录中定义自己的Pod优先级类别。cd vertical-pod-autoscaler/manifests/priority-classes kubectl apply -f .调度器插件配置Paws调度器包含时间利用率插件可以通过以下配置启用# 调度器配置文件 plugins: multiPoint: enabled: disabled: - NodeResourcesFit - NodeResourcesBalancedAllocation pluginConfig: - name: TemporalUtilization args: hotSpotThreshold: 60 enableOvercommit: true 监控与性能分析关键监控指标Paws系统提供以下关键监控指标资源利用率指标CPU使用率、内存使用率性能干扰指标缓存未命中率、CPU时间片等待调度效率指标Pod放置质量、资源分配准确性Grafana仪表板配置您可以创建自定义Grafana仪表板来监控Paws系统性能导入Prometheus作为数据源添加以下关键查询容器CPU使用率container_cpu_usage_total内存使用率container_memory_usage_bytesPod调度延迟kube_pod_scheduling_duration_seconds 总结与最佳实践通过本文的10分钟快速指南您已经成功搭建了基于Prometheus和cAdvisor的Paws资源监控环境。以下是几个关键的最佳实践建议生产环境部署建议高可用配置为Prometheus和Paws推荐器配置多个副本数据保留策略根据业务需求配置Prometheus数据保留时间资源限制为所有组件设置适当的资源限制监控告警配置关键指标的告警规则性能优化技巧调整查询间隔根据集群规模调整Prometheus查询频率优化标签存储合理配置cAdvisor标签白名单缓存策略利用Prometheus的查询缓存提高性能扩展与定制Paws系统支持多种扩展方式自定义推荐算法在algorithm目录中实现新的推荐算法插件开发基于Kubernetes调度框架开发新的调度插件指标扩展集成更多监控指标源通过合理配置Prometheus和cAdvisorPaws系统能够为您的Kubernetes集群提供智能的资源推荐和调度优化显著提高资源利用率同时确保应用性能不受影响。现在您已经掌握了快速搭建和配置Paws环境的核心技能可以开始在实际环境中应用这些技术了提示记得定期检查官方文档和scheduler插件文档获取最新配置信息和最佳实践。【免费下载链接】pawsPerformance Aware System is a system for precise resource recommendation and intelligent scheduling.项目地址: https://gitcode.com/openeuler/paws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻