IBM Cloud Docs
Depuración de metrics-server

Depuración de metrics-server

Virtual Private Cloud Infraestructura clásica

Los siguientes síntomas pueden indicar la necesidad de ajustar los recursos de metrics-server:

  • El metrics-server se está reiniciando con frecuencia.

  • La supresión de un espacio de nombres provoca que el espacio de nombres se que atascado en un estado Terminating y kubectl describe namespace incluye una condición que informa de un error de descubrimiento de API de métricas.

  • kubectl top pods, kubectl top nodes, otros mandatos de kubectl o aplicaciones que utilizan la API de Kubernetes para registrar errores de Kubernetes tales como:

    The server is currently unable to handle the request (get pods.metrics.k8s.io)
    
    Discovery failed for some groups, 1 failing: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
    
  • HorizontalPodAutoscalers (HPA) no escalan los despliegues.

  • La ejecución de kubectl get apiservices v1beta1.metrics.k8s.io genera un estado como:

    NAME                     SERVICE                      AVAILABLE                      AGE
    v1beta1.metrics.k8s.io   kube-system/metrics-server   False (FailedDiscoveryCheck)   139d
    

El clúster tiene un servicio de métricas proporcionado por el despliegue de metrics-server en el espacio de nombres de kube-system. Las solicitudes y límites de recursos de metrics-server se basan en el número de nodos del clúster y se optimizan para clústeres con 30 o menos pods por nodo de trabajador. Si las solicitudes de memoria son demasiado bajas, puede fallar con errores de falta de memoria y puede responder muy lento. Si las solicitudes de CPU son demasiado bajas, es posible que falle la actividad y los sondeos de preparación debido a la limitación de la CPU.

Los problemas con metrics-server también pueden causar problemas en otras áreas. Las API de métricas no están disponibles si el plano de control no puede comunicarse con el servidor de métricas utilizando Konnectivity. Los webhooks de control de admisión pueden impedir que el plano de control cree pods, incluido el pod metrics-server.

Siga estos pasos para resolver el problema.

  1. Verifique que existen pods de servidor de métricas.

    kubectl get pod -n kube-system -l k8s-app=metrics-server
    

    Si no se lista ningún pod, es probable que haya un problema con un webhook de admission-control. Consulte ¿Por qué fallan las operaciones de clúster debido a un webhook roto?.

  2. Verifique que apiserver puede conectarse a metrics-server.

    kubectl logs POD -n kube-system -c metrics-server --tail 5
    

    Sustituya POD por el nombre de pod mostrado anteriormente. El contenido de los registros devueltos no importa.

    Si recibe un mensaje de error que contenga texto como <workerIP>:10250: getsockopt: connection timed out, consulte tiempo de espera de mandatos de kubectl excedido.

  3. Si los pasos anteriores no muestran un problema, ajuste los recursos para el metrics-server. Consulte Ajuste de los recursos del proveedor de métricas del clúster.