Como monitorar o uso de Recursos Kubernettes com Métricas Servidor e Kubectl Up

Monitorar o uso de recursos de seu cluster Kubernetes é essencial para que você possa acompanhar o desempenho e entender se suas cargas de trabalho estão sendo executadas com eficiência. O comando kubectl top transmite métricas diretamente de seu cluster, permitindo que você acesse o básico em seu terminal.

Esse comando normalmente não funciona imediatamente em um novo ambiente Kubernetes. Depende do plug-in do Metrics Server que está instalado em seu cluster. Esse componente coleta métricas de seus nós e pods e fornece uma API para recuperar os dados.

Neste artigo, mostraremos como instalar o Metrics Server e acessar suas métricas usando o kubectl top . Você poderá ver o consumo de CPU e memória de cada um de seus nós e pods.

índice

  1. Adicionando o servidor de métricas ao Kubernetes
  2. Recuperando métricas com Kubectl Top
  3. Alterando a ordem de classificação dos objetos
  4. Filtre a lista de objetos
  5. Obtenha o uso de um recurso específico
  6. Resumo

Adicionando o servidor de métricas ao Kubernetes

As distribuições do Kubernetes geralmente não vêm com o Metrics Server integrado. Você pode verificar facilmente se seu cluster já é compatível tentando executar kubectl top :

 Erro de nó superior $ kubectl: API de métricas não disponível

A mensagem de erro confirma que a API do Metrics Server não está presente no cluster.

O Metrics Server é mantido na comunidade Kubernetes Special Interest Group (SIG). Ele pode ser adicionado ao seu cluster usando seu manifesto YAML simples ou o gráfico Helm do projeto.

Usaremos o arquivo manifesto para este tutorial. Execute o seguinte comando Kubectl para instalar o Metrics Server:

 $ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml serviceaccount/metrics-server criado clusterrole.rbac.authorization.k8s.io/system:aggregated- metrics-reader criou clusterrole.rbac.authorization.k8s.io/system:metrics-server criou rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader criou clusterrolebinding.rbac.authorization.k8s.io/metrics- server:system:auth-delegator criou clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server criou service/metrics-server criou deployment.apps/metrics-server criou apiservice.apiregistration.k8s.io/v1beta1.metrics. k8s.io criado

O Metrics Server agora começará a coletar e expor dados de consumo de recursos do Kubernetes. Se a instalação falhar com um erro, você deve verificar se o cluster atende aos requisitos do projeto. O Metrics Server possui dependências específicas que podem não ser suportadas em alguns ambientes.

Muitas distribuições do Kubernetes oferecem suporte ao Metrics Server usando seu próprio sistema de plug-ins. Você pode usar este comando para adicionar facilmente o Metrics Server a um cluster Minikube, por exemplo:

 $ minikube addons habilitam o servidor de métricas Usando a imagem k8s.gcr.io/metrics-server/metrics-server:v0.4.2 O addon 'metrics-server' está habilitado

Recuperando métricas com Kubectl Top

Com o Metrics Server instalado, agora você pode executar kubectl top para acessar as informações que ele coleta.

Use o subcomando node para obter a utilização de recursos atual de cada um dos nós em seu cluster:

 $ kubectl nó superior NOME CPU(núcleos) CPU% MEMORY(bytes) MEMORY% minikube 249m 3% 847Mi 2%

O subcomando pod fornece métricas individuais para cada um de seus pods:

 $ kubectl top pod NOME CPU(núcleos) MEMÓRIA(bytes) nginx 120m 8Mi

Isso exibirá os pods no namespace default . Adicione o --namespace se estiver interessado em pods em um namespace específico:

 $ kubectl top pod --namespace demo-app NOME CPU(núcleos) MEMÓRIA(bytes) nginx 0m 2Mi

A sinalização --all-namespaces também é compatível para listar todos os pods em seu cluster.

As métricas podem levar alguns minutos para ficarem disponíveis após a criação de novos pods. Há um atraso no pipeline do servidor de métricas, portanto, não se torna um problema de desempenho por si só.

O comando kubectl top não sobrecarrega você com dezenas de métricas. Ele se concentra em cobrir os conceitos básicos de CPU e uso de memória. Esse início básico pode ser adequado para cenários em que você simplesmente precisa de dados rapidamente, como identificar o pod que causou um aumento na utilização geral.

Uma fonte de confusão pode ser os valores de 100m informados no campo CPU(cores) . O comando exibe o uso da CPU em milicores. uma medição de 1000m sempre significa 100% de consumo de um único núcleo de CPU. 500m indica 50% de consumo de um núcleo, enquanto 2000m significa que dois núcleos estão sendo ocupados.

Alterando a ordem de classificação dos objetos

O comando kubectl top pode, opcionalmente, classificar a lista de objetos emitidos por CPU ou consumo de memória. Isso facilita a identificação rápida de quais nós ou pods estão pressionando mais os recursos do cluster.

Adicione o sinalizador --sort-by com cpu ou memory como seu valor para habilitar este comportamento:

 $ kubectl top pod --sort-by=memory NAME CPU(núcleos) CPU% MEMORY(bytes) MEMORY% nginx-1 249m 3% 1790Mi 5% nginx-2 150m 1% 847Mi 2%

Filtre a lista de objetos

Como outros comandos do Kubectl, o sinalizador --selector permite filtrar a lista de objetos para elementos com tags específicas:

 $ kubectl top pod --selector application=demo-app NAME CPU(núcleos) CPU% MEMORY(bytes) MEMORY% nginx-1 249m 3% 1790Mi 5% nginx-2 150m 1% 847Mi 2%

Neste exemplo, apenas os pods que possuem a tag application: demo-app serão incluídos na saída. = , == e != são suportados como operadores. Várias restrições podem ser aplicadas juntando-as como uma string separada por vírgulas, como application=demo-app,version!=1 . Os objetos só serão exibidos se corresponderem a todos os filtros de tags em sua consulta.

Obtenha o uso de um recurso específico

Os subcomandos do top node top pod podem receber o nome de um nó ou pod específico para pesquisar. As métricas atuais associadas a esse item serão exibidas isoladamente.

Forneça o nome do objeto como um argumento simples para o comando, logo após node ou pod :

 $ kubectl top node minikube NAME CPU(núcleos) CPU% MEMORY(bytes) MEMORY% minikube 245m 3% 714Mi 2%

Resumo

O comando kubectl top exibe métricas de consumo de recursos essenciais para nós e pods em seu cluster Kubernetes. Você pode usá-lo para verificar rapidamente o uso de CPU e memória associado a cada uma de suas cargas de trabalho. Essas informações podem ser úteis para diagnosticar problemas de desempenho e identificar quando é hora de adicionar outro aplicativo Node.

Antes de usar o comando, você deve instalar o Kubernetes Metrics Server em seu cluster. Isso fornece a API que expõe dados de utilização de recursos. A ativação do Metrics Server gera uma sobrecarga de desempenho, mas isso geralmente é insignificante na maioria das implementações. Normalmente requer 1 milhão de núcleos de CPU e 2 MiB de memória por nó monitorado, embora isso possa variar dependendo das cargas de trabalho executadas em seu ambiente específico.

  • Como saber se alguém silenciou sua história no Facebook
  • Facebook bloqueado temporariamente – Como desbloquear

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é uma carga fantasma?

O que é o Minikube Kubernetes?

Minikube é uma ferramenta open source que ao criar uma máquina virtual (pode funcionar em sistemas Linux sem criar esta virtualização) permite ter um ambiente Kubernetes simples com a maioria das suas funcionalidades.

O que é uma carga de trabalho no Kubernetes?

Cargas de trabalho ou cargas de trabalho no Kubernetes referem-se a aplicativos executados na plataforma que oferecem ao usuário uma série de novas funcionalidades, como, por exemplo, a opção de não gerenciar cada um dos pods do Kubernetes diretamente, mas utilizar os recursos dessas cargas de

O que é a nuvem Kubernetes?

Kubernetes , o serviço altamente confiável e automatizado do Google Cloud que facilita a instalação e a execução. A plataforma de modernização de aplicativos do Google Cloud permite criar e executar aplicativos em qualquer lugar usando tecnologias nativas da nuvem, como Kubernetes .

Como instalar o Kubectl no Windows?

Instale o binário kubectl com curl no Windows

Baixe a versão mais recente v1. 25,0. Nota: Para a versão estável mais recente (por exemplo, para scripts), dê uma olhada em https://dl.k8s.io/release/stable.txt. Adicione o binário ao seu PATH.

Ir arriba