Risoluzione dei problemi relativi al server delle metriche nei cluster di Kubernetes
Scopri come eseguire il debug e risolvere i problemi più comuni relativi al metrics-server nel tuo cluster di Kubernetes, inclusi sintomi, cause e procedura dettagliata.
Virtual Private Cloud Infrastruttura classica
I seguenti sintomi potrebbero indicare la necessità di regolare le risorse metrics-server:
-
Il
metrics-serverviene riavviato frequentemente. -
L'eliminazione di uno spazio dei nomi provoca il blocco dello spazio dei nomi in uno stato
Terminatingekubectl describe namespaceinclude una condizione che riporta un errore di rilevamento API delle metriche. -
kubectl top pods,kubectl top nodes, altri comandikubectlo applicazioni che utilizzano l'API Kubernetes per registrare gli errori Kubernetes come: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) non scalano le distribuzioni.
-
L'esecuzione di
kubectl get apiservices v1beta1.metrics.k8s.iodetermina uno stato come:NAME SERVICE AVAILABLE AGE v1beta1.metrics.k8s.io kube-system/metrics-server False (FailedDiscoveryCheck) 139d
Il tuo cluster ha un servizio di metrica fornito dalla distribuzione metrics-server nello spazio dei nomi kube-system. I limiti e le richieste della risorsa metrics-server si basano sul numero di nodi nel
cluster e sono ottimizzati per i cluster con 30 o meno pod per nodo di lavoro. Se le richieste di memoria sono troppo basse, possono avere esito negativo con errori di memoria esaurita e possono rispondere molto lentamente. Se le richieste di
CPU sono troppo basse, è possibile che le analisi di disponibilità e di attività non riescano a causa della limitazione della CPU.
I problemi con metrics-server possono anche causare problemi in altre aree. Le API delle metriche non sono disponibili se il piano di controllo non è in grado di comunicare con il server delle metriche utilizzando Konnectivity. I
webhook di controllo di ammissione possono impedire al piano di controllo di creare i pod, incluso il pod metrics-server.
Seguire questa procedura per risolvere i problemi.
-
Verificare che i pod del server delle metriche esistano.
kubectl get pod -n kube-system -l k8s-app=metrics-serverSe non viene elencato alcun pod, è probabile che si sia verificato un problema con un webhook
admission-control. Vedi Perché le operazioni del cluster non riescono a causa di un webhook interrotto?. -
Verifica che l'apiserver possa connettersi a
metrics-server.kubectl logs POD -n kube-system -c metrics-server --tail 5Sostituisci
PODcon il nome del pod mostrato in precedenza. Il contenuto dei log restituiti non ha importanza.Se si riceve un messaggio di errore che contiene testo come
<workerIP>:10250: getsockopt: connection timed out, consultarekubectltimeout dei comandi. -
Se i passi precedenti non mostrano un problema, regolare le risorse per
metrics-server. Consultare Regolazione delle risorse del fornitore delle metriche del cluster.