我正在尝试像示例here一样测试Kubernetes HPA

kubectl run php-apache --image=gcr.io/google_containers/hpa-example --requests=cpu=200m --expose --port=80
kubectl autoscale deployment php-apache --cpu-percent=20 --min=1 --max=10
kubectl get hpa

输出是
NAME         REFERENCE               TARGETS           MINPODS   MAXPODS   REPLICAS   AGE
php-apache   Deployment/php-apache   <unknown> / 20%   1         3         0          1h

为什么 Controller 经理无法获得当前使用情况?

环境详细信息:
  • K8s版本1.7.3,其中Heapster通过端口80上的服务运行
    kube系统。
  • InfluxDB设置为接收器,我可以看到用法/限制
    等在Grafana以及Heapster API
  • 上正确显示
  • 我可以在已部署的pod的Yaml上看到cpu请求(200m)。
  • Controller 管理器日志中没有错误。我所看到的只是etcd监视和pod创建消息。
  • Controller list 中未指定“horizo​​ntal-pod-autoscaler-sync-period”,默认应为30秒。
  • “hpa describe”不列出任何事件(“”)。
  • 创建/删除HPA不会在 Controller 管理器
  • 中创建任何日志
  • 如果我没有安装Heapster,则 Controller 管理器日志会抱怨。安装Heapster后,我看不到此消息:“



  • 编辑1 [9月14日]:
  • 我已经上传了Heapster logs here。那里没有错误。
  • 我直接检查了Heapster API的指标,然后得到了响应。
    curl http://10.107.55.59/api/v1/model/namespaces/cp/pods/php-apache-593471247-c65fh/metrics/cpu/usage
  • { "metrics": [ { "timestamp": "2017-09-14T13:46:00Z", "value": 19008838 }, { "timestamp": "2017-09-14T13:47:00Z", "value": 19008838 }, { "timestamp": "2017-09-14T13:48:00Z", "value": 19008838 } ], "latestTimestamp": "2017-09-14T13:48:00Z" }
    kubernetes - 水平自动缩放器不报告CPU使用情况-LMLPHP

    最佳答案

    验证heapster是否正在获取数据并提供指标,请尝试在kube-api服务器上运行以下命令,在其中替换命名空间名称和pod-name。它将显示指标,如果一切正常,还可以在此处粘贴堆日志

    curl http://localhost:8080/api/v1/model/namespaces/ {namespace-name} / pods / {pod-name} / metrics /

    关于kubernetes - 水平自动缩放器不报告CPU使用情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46205914/

    10-09 21:35