3

我正在尝试像这里的示例一样测试 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

为什么控制器管理器无法获取当前使用情况?


环境细节:

  • K8s 版本 1.7.3,Heapster 在 kube-system 的 80 端口上运行服务。
  • InfluxDB 设置为接收器,我可以在 Grafana 以及 Heapster API 中正确查看使用/限制等
  • 我可以在部署的 pod 的 yaml 上看到 cpu 请求(200m)。
  • 控制器管理器日志中没有错误。我看到的只是 etcd watch 和 pod 创建消息。
  • 控制器清单中没有指定“horizo​​ntal-pod-autoscaler-sync-period”,默认应为 30 秒。
  • “hpa describe”没有列出任何事件(“<none>”)。
  • 创建/删除 HPA 不会在控制器管理器中创建任何日志
  • 当我没有安装 Heapster 时,控制器管理器日志会抱怨。安装 Heapster 后我没有看到此消息:"

无法根据列出的 Deployment/xx/php-apache 指标计算所需的副本数:无法获取 cpu 利用率:无法获取资源 cpu 的指标:无法获取 pod 资源指标:服务器无法在此完成请求的操作时间,稍后再试(获取服务 http:heapster:)


编辑 1 [9 月 14 日] :

  • 我在这里上传了 Heapster 日志。那里没有错误。
  • 我直接检查了 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" }

pod 的 Grafana 屏幕截图。 没有设置限制,但这也没有任何区别。

4

1 回答 1

0

验证 heapster 是否正在获取数据并给出指标,尝试在 kube-api 服务器上运行,替换其中的 namespace-name 和 pod-name。它将显示指标,如果一切顺利,还会在此处粘贴 heapster 日志

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

于 2017-09-14T02:25:55.563 回答