Solução de problemas do servidor de métricas em clusters do Kubernetes
Saiba como depurar e resolver problemas comuns relacionados ao metrics-server no seu cluster do Kubernetes, incluindo sintomas, causas e instruções passo a passo.
Nuvem privada virtual Infraestrutura clássica
Os sintomas a seguir podem indicar uma necessidade de ajustar os recursos metrics-server:
-
O
metrics-serverestá reiniciando com frequência. -
A exclusão de um espaço de nomes faz com que ele fique preso em um estado
Terminatingekubectl describe namespaceinclui uma condição relatando um erro de descoberta de API de métricas. -
kubectl top pods,kubectl top nodes, outros comandoskubectlou aplicativos que usam a API de Kubernetes para registrar erros de Kubernetes 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 (HPAs) não escala implementações.
-
A execução de
kubectl get apiservices v1beta1.metrics.k8s.ioresulta em um status como:NAME SERVICE AVAILABLE AGE v1beta1.metrics.k8s.io kube-system/metrics-server False (FailedDiscoveryCheck) 139d
O cluster possui um serviço de métricas fornecido pela implementação metrics-server no espaço de nomes kube-system. As solicitações de recursos metrics-server são baseadas no número de nós no cluster e otimizadas
para clusters com 30 ou menos pods por nó do trabalhador. Se as solicitações de memória estiverem muito baixas, elas poderão falhar com erros de falta de memória e responder com muita lentidão. Se as solicitações de CPU estiverem muito baixas,
possivelmente as análises de vivacidade e prontidão poderão falhar devido à limitação de CPU.
Problemas com o metrics-server também podem causar problemas em outras áreas. As APIs de métricas não estarão disponíveis se o plano de controle não conseguir se comunicar com o servidor de métricas por meio do Konnectivity. Os webhooks
de controle de admissão podem impedir o plano de controle de criar pods, incluindo o pod metrics-server.
Siga estas etapas para solucionar problemas.
-
Verificar se existem pods de servidor de métricas.
kubectl get pod -n kube-system -l k8s-app=metrics-serverSe nenhum pod for listado, provavelmente há um problema com um webhook
admission-control. Consulte Por que as operações de cluster falham devido a um webhook interrompido?. -
Verifique se o apiserver pode se conectar ao
metrics-server.kubectl logs POD -n kube-system -c metrics-server --tail 5Substitua
PODpelo nome de pod mostrado anteriormente. O conteúdo de quaisquer logs retornados não importa.Se você receber uma mensagem de erro com texto como
<workerIP>:10250: getsockopt: connection timed out, consulte Comandos de tempo de limitekubectl. -
Se as etapas anteriores não mostrarem um problema, ajuste os recursos para o
metrics-server. Consulte Ajustando recursos do provedor de métricas de cluster.