我試圖測試Kubernetes HPA像例如here橫向自潔牙機不報告CPU使用率
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與服務運行在80端口,在 KUBE-系統。
- InfluxDB設置爲沉,我可以在Grafana以及對Heapster API
- 我可以看到在部署吊艙的YAML CPU請求(200米)看到正確的使用/限制 等。
- 控制器管理器日誌中沒有錯誤。我看到的只有etcd手錶和pod創建消息。
- 控制器清單中沒有指定「horizontal-pod-autoscaler-sync-period」,默認值應爲30秒。
- 「hpa describe」沒有列出任何事件(「<無>」)。
- 創建/刪除HPA不會創建任何登錄控制器管理器
- 當我沒有安裝Heapster時,控制器管理器日誌會發生抱怨。我沒有看到安裝此消息Heapster:「
未能計算基於上市指標 的部署/ XX/PHP的Apache副本所需數量:未能獲取CPU使用率:無法 GET資源CPU指標:未能獲得莢資源指標:該 服務器不能在這個時候完成請求的操作,再試 後來(獲得服務的http:heapster :)
編輯1 [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" }