web-dev-qa-db-fra.com

kubectl top node `error: metrics not available yet`. Utilisation de metrics-server comme Heapster obsolète

Kubernetes n'a pas pu trouver d'api métrique-serveur. J'utilise Kubernetes avec Docker sur Mac. J'essayais de faire HPA à partir de l'exemple suivant [ https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/] . Cependant, lorsque j'exécute la commande kubectl get hpa, Ma cible était encore inconnue. Ensuite, j'ai essayé, kubectl describe hpa. Ce qui m'a donné une erreur comme ci-dessous:

  Name:                                                  php-Apache
  Namespace:                                             default
  Labels:                                                <none>
  Annotations:                                           <none>
  CreationTimestamp:                                     Sun, 07 Oct 2018 12:36:31 -0700
  Reference:                                             Deployment/php-Apache
  Metrics:                                               ( current / target )
    resource cpu on pods  (as a percentage of request):  <unknown> / 5%
  Min replicas:                                          1
  Max replicas:                                          10
  Conditions:
    Type           Status  Reason                   Message
    ----           ------  ------                   -------
    AbleToScale    True    SucceededGetScale        the HPA controller was able to get the target's current scale
    ScalingActive  False   FailedGetResourceMetric  the HPA was unable to compute the replica count: unable to get metrics for resource cpu: no metrics returned from resource metrics API
  Events:
    Type     Reason                        Age               From                       Message
    ----     ------                        ----              ----                       -------
    Warning  FailedComputeMetricsReplicas  1h (x34 over 5h)  horizontal-pod-autoscaler  failed to get cpu utilization: unable to get metrics for resource cpu: no metrics returned from resource metrics API
    Warning  FailedGetResourceMetric       1m (x42 over 5h)  horizontal-pod-autoscaler  unable to get metrics for resource cpu: no metrics returned from resource metrics API

J'utilise [ https://github.com/kubernetes-incubator/metrics-server] comme suggéré dans la documentation de Kubernetes. J'ai également essayé de faire la même chose en utilisant Minikube. Mais cela n'a pas fonctionné non plus.

Fonctionnement kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes les sorties :

{
  "kind": "NodeMetricsList",
  "apiVersion": "metrics.k8s.io/v1beta1",
  "metadata": {
    "selfLink": "/apis/metrics.k8s.io/v1beta1/nodes"
  },
  "items": []
}
6
Vivek

Solution (si vous utilisez Minikube):

Changement du contexte de Kubernetes en Minikube.

Serveur de métriques activé et tas de mémoire désactivé dans le minikube.

minikube addons disable heapster

minikube addons enable metrics-server

Déployez le serveur de métriques dans votre cluster en utilisant les étapes suivantes:

git clone https://github.com/kubernetes-incubator/metrics-server.git

cd metrics-server

kubectl create -f deploy/1.7/ (si Kubernetes version 1.7)

[~ # ~] ou [~ # ~]

kubectl create -f deploy/1.8+/ (si Kubernetes version 1.8+)

Début minikube dashboad et minikube service [your service].

Essayez kubectl top node.

J'ai trouvé cette ressource ( https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/ ) utile.

4
Vivek

Lors de l'utilisation de minikube 1.4.0, il n'est pas nécessaire de faire autre chose que minikube start: kubectl top node/pod devrait fonctionner immédiatement.

0
stackoverflowed

Je sais que c'est une réponse tardive, mais j'ai eu quelques problèmes avec Docker Kubernetes et Autoscaler moi-même sans trouver de bonne réponse sur Internet. Après plusieurs jours de débogage, j'ai découvert qu'il y avait des problèmes de connectivité avec le metrics-server (impossible de se connecter aux pods).

J'ai désactivé TLS dans metrics-server et il a commencé à fonctionner .. J'ai répondu à mon propre message ici si quelqu'un d'autre rencontre le même problème:

Docker Kubernetes (Mac) - Autoscaler incapable de trouver des métriques

0
Mr.Turtle