簡體   English   中英

kubernetes“無法獲取指標”

[英]kubernetes "unable to get metrics"

我正在嘗試通過分別運行這兩個命令來自動擴展部署和狀態集:

kubectl autoscale statefulset mysql --cpu-percent=50 --min=1 --max=10
kubectl expose deployment frontend --type=LoadBalancer --name=frontend

可悲的是,在 minikube 儀表板上,這兩個服務下都出現了這個錯誤:

failed to get cpu utilization: unable to get metrics for resource cpu: unable to fetch metrics from resource metrics API: the server could not find the requested resource (get pods.metrics.k8s.io)

在線搜索我讀到它可能是 dns 錯誤,所以我檢查了但 CoreDNS 似乎運行良好。 兩種工作負載都沒有什么特別之處,這是“前端”部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: frontend
  labels:
    app: frontend
spec:
  replicas: 3
  selector:
    matchLabels:
      app: frontend
  template:
    metadata:
      labels:
        app: frontend
    spec:
      containers:
      - name: frontend
        image: hubuser/repo
        ports:
        - containerPort: 3000

有沒有人有任何建議?

如果您安裝了 metrics-server,請檢查minikube addons list 如果沒有,請minikube addons enable metrics-server 等待一分鍾,然后嘗試kubectl top pod 如果所有 go 都正常,您應該不會在儀表板上看到錯誤,因為現在提供了指標。

首先,您能否驗證 API 是否工作正常? 為此,請運行kubectl get --raw /apis/metrics.k8s.io/v1beta1

如果您收到類似於以下內容的錯誤:

Error from server (NotFound) :”

請按照以下步驟操作:

1.- 從 kube-apiserver 清單中刪除所有代理環境變量。

2.- 在 kube-controller-manager-amd64 中,設置--horizontal-pod-autoscaler-use-rest-clients=false

3.- 最后一種情況是您的 metric-server 插件默認禁用。 您可以使用以下方法進行驗證:

$ minikube 插件列表

如果它被禁用,您將看到類似metrics-server: disabled內容。

您可以使用以下方法啟用它:

$minikube addons enable metrics-server

完成后,刪除並重新創建您的 HPA。

您可以使用以下線程作為參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM