HPA no matches for kind Deployment in group 的問題

問題

hpa.yaml

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: pc-hpa
  namespace: dev
spec:
  minReplicas: 1  #最小pod數量
  maxReplicas: 10 #最大pod數量
  targetCPUUtilizationPercentage: 3 # CPU使用率指標,cpu使用達到3%
  scaleTargetRef:   # 指定要控制的nginx信息
    apiVersion:  /v1
    kind: Deployment
    name: nginx

在我創建了hpa之後,pod,server等都是正常啓動,Metrics也正常安裝了 kubectl top命令也是有效的,但是無法監控hpa控制器對應的cpu使用率

hpa日誌

image-20220523100138953

現象

image-20220523095814605

排查

參考:

https://github.com/kubernetes-sigs/metrics-server/issues/389

看看github的說法

image-20220523095917968

真是一語點醒夢中人,之前我還以爲我哪裏yaml寫的有問題,各種排查,這上面說的是,集權是由Metrics檢測的,那爲啥不看看控制器的管理日誌呢,之前一直看pod,server,hpa的日誌,找到hpa日誌,以爲發現問題所在,但是並沒有找到解決辦法,有的解決辦法試了下也不行,這種就換個思路看看

查看controller-manager的pod的日誌

# 查找pod
kubectl get pod -n kube-system

image-20220523101205032

# 查看日誌
kubectl logs -n kube-system kube-controller-manager-master

Event(v1.ObjectReference{Kind:"HorizontalPodAutoscaler", Namespace:"dev", Name:"pc-hpa", UID:"3b1aa606-c29e-4cf7-9c8a-7d7b3888c988", APIVersion:"autoscaling/v2beta2", ResourceVersion:"884669", FieldPath:""}): type: 'Warning' reason: 'FailedGetScale' no matches for kind "Deployment" in group ""

image-20220523105038853

仔細看這個日誌,我明明指定的是apiVersion: autoscaling/v1,爲什麼這日誌上顯示APIVersion:"autoscaling/v2beta2",看來這纔是問題所在

查看是否是版本問題

關於這些版本的區別可以參考

https://www.cnblogs.com/alisystemsoftware/p/11236151.html

難道就是算是舊版底層使用的是最新版的?

把版本升一下試試

# 複製配置
cp pc-hpa.yaml pc-hpa2.yaml
# 修改配置 autoscaling/v1 ===》 autoscaling/v2beta2 , metadata.name 改爲 pc-hpa2
vi pc-hpa2.yaml
# 創建一個
kubectl apply -f pc-hpa2.yaml

image-20220523110909149

提示創建失敗,這也不行呀,難道是因爲缺失這個版本?

最終原因

在我反覆排查無果後,我左看看右看看出去點上了一根“快樂助手”,回來一看我好看犯了一個低級錯誤scaleTargetRef選項裏好像漏了點啥,沒錯就是漏了apps,啊哈哈哈,修正後的yaml

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: pc-hpa
  namespace: dev
spec:
  minReplicas: 1  #最小pod數量
  maxReplicas: 10 #最大pod數量
  targetCPUUtilizationPercentage: 3 # CPU使用率指標,cpu使用達到3%
  scaleTargetRef:   # 指定要控制的nginx信息
    apiVersion:  apps/v1
    kind: Deployment
    name: nginx

查看最後結果

kubectl get hpa -n dev

image-20220523112540666

這次排查提醒我,要注意細節,還有就是如果你指定的版本不對,k8s會默認按照最新版本創建

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章