web-dev-qa-db-fra.com

Kubernetes: les noeuds/pods supérieurs de kubectl ne fonctionnent pas

Lorsque je fais des top pods/nœuds kubectl, le message d'erreur suivant s'affiche:

métrique pas encore disponible

Quand je vérifie les journaux, je reçois 

$ kubectl logs metrics-server-7df4c4484d-h75wr -n kube-system -c metrics-server

I1008 12:02:55.159069       1 serving.go:273] Generated self-signed cert(apiserver.local.config/certificates/apiserver.crt, apiserver.local.config/certificates/apiserver.key)
[restful] 2018/10/08 12:02:56 log.go:33: [restful/swagger] listing is available at https://:443/swaggerapi
[restful] 2018/10/08 12:02:56 log.go:33: [restful/swagger] https://:443/swaggerui/ is mapped to folder /swagger-ui/
I1008 12:02:56.358063       1 serve.go:96] Serving securely on [::]:443
E1008 12:03:04.225519       1 reststorage.go:101] unable to fetch node metrics for node "hpa-test": no metrics known for node "hpa-test"
E1008 12:03:07.619489       1 reststorage.go:101] unable to fetch node metrics for node "hpa-test": no metrics known for node "hpa-test"

De plus, je peux faire un ping sur le noeud hpa-test depuis: 

$ kubectl exec -it  metrics-server-7df4c4484d-h75wr -n kube-system sh

De plus, j'ai essayé de chercher une solution partout mais rien n'a réglé le problème

3
Mallikarjun Br

Besoin d'ajouter des indicateurs pour metrics-sever:

--kubelet-insecure-tls=true
--kubelet-port={YOU_KUBELET_PORT}
--kubelet-preferred-address-types=InternalIP
--v=5
--logtostderr
3
Arslanbekov

Il y a deux façons de résoudre ce problème:

1) l’utilisation de heapster : L’installation de heapster permettra à 'kubectl top nodes' de fonctionner immédiatement. Cependant, heapster étant obsolète, vous devriez probablement passer à metrics-server.

2) en utilisant metrics-server : Malheureusement, il se peut que cela ne fonctionne pas immédiatement lors de l’installation de metrics-server ... Dans le cas contraire, vous devez mettre à jour le fin du fichier metrics-server-deployment.yaml (1.8+) que vous avez utilisé pour l’installation et ajoutez une section de commande avec les bons paramètres, comme suit:

containers:
- name: metrics-server
  image: k8s.gcr.io/metrics-server-AMD64:v0.3.1
  imagePullPolicy: Always
  volumeMounts:
  - name: tmp-dir
    mountPath: /tmp

  command:
      - /metrics-server
      - --kubelet-insecure-tls
      - --kubelet-preferred-address-types=InternalIP

puis appliquez simplement les modifications:

kubectl apply -f metrics-server-deployment.yaml

vous devriez alors pouvoir obtenir des résultats avec

kubectl top nodes

et

kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"

1
aregnier