metrics-server組件是離線監控數據組件,提供查看集群離線監控數據功能。您在使用metrics-server組件遇到問題時,可參照下方FAQ排查。
kubectl top pod/node全部無數據
請按照以下方式進行預檢查。
執行以下命令,檢查metrics-server的API Service是否正常。
kubectl get apiservices
返回結果中
v1beta1.metrics.k8s.io
顯示True
,說明metrics-server的API Service是正常的。可選:如果metrics-server的API Service不正常,在metrics-server所在的Node節點上執行以下命令,檢查metrics-server的443端口與8082端口是否可以在集群中正常訪問。
curl -v 127.0.0.1:8082/apis/metrics/v1alpha1/nodes
執行以上命令,能正常返回數據,說明metrics-server的443端口與8082端口可以在集群中正常訪問。
可選:如果metrics-server的443端口與8082端口無法在集群中正常訪問,重啟metrics-server。
您可以通過刪除metrics-server的Pod的方式重啟metrics-server。
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在無狀態頁面頂部設置命名空間為kube-system,單擊metrics-server。
在容器組頁簽下,選擇metrics-server的Pod操作列下的更多>刪除,然后在對話框單擊確定。
按上述說明檢查后,沒有發現問題,請按照以下工單模板提交工單。
工單模板
API Service是否正常?
是
metrics-server 443與8082端口是否可達?
是
提供集群ID。
kubectl top pod/node部分無數據
請按照以下方式進行預檢查。
檢查是特定的Node上所有Pod無數據,還是特定的Pod無數據。如果是特定的Node上所有Pod無數據,請檢查節點是否存在時區漂移,可以通過NTP服務器的date命令進行時區校驗。
檢查metrics-server Pod到特定的Node的10255端口的網絡連通性。
按上述說明檢查后,沒有發現問題。請按照以下工單模板提交工單。
工單模板
單個Node上的Pod是否全部無數據?
是
節點時區是否有漂移?
無
metrics-server到指定節點的連通性是否可達?
是
HPA無法獲取metrics數據
請按照以下方式進行預檢查。
檢查對應的Pod執行kubectl top pod pod-id
的結果。如果數據異常,請參考上述kubectl top pod/node部分無數據和kubectl top pod/node全部無數據的檢查方法進行檢查。
按上述說明檢查后,沒有發現問題。請按照以下工單模板提交工單。
工單模板
監控數據是否有異常?
無
執行
kubectl describe hpa hpa-name
,提交元數據信息。
滾動發布時HPA額外彈出多余的Pod
請按照以下方式進行預檢查。
檢查metrics-server是否升級到了最新的版本。如果版本沒有問題,在kube-system命名空間下的metrics-server配置啟動參數。
--metric-resolution=15s
--enable-hpa-rolling-update-skipped=true
按上述說明檢查后,沒有發現問題。請按照以下工單模板提交工單。
工單模板
檢查metrics-server的版本是否為最新?
是
檢查配置參數是否已經增加防誤彈能力?
是
執行
kubectl describe hpa hpa-name
,提交HPA的描述。
相關文檔
關于metrics-server組件的介紹和發布記錄,請參見metrics-server。