[ad_1]
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. a kubectl top
O comando 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 medições usando kubectl top
. Você poderá ver o consumo de CPU e memória de cada um de seus nós e pods.
Adicionando o servidor de métricas ao Kubernetes
As distribuições do Kubernetes normalmente não vêm com o Metrics Server integrado. Você pode verificar facilmente se seu cluster já é compatível tentando executar kubectl top
:
$ kubectl top node error: Metrics API not available
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 created clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created clusterrole.rbac.authorization.k8s.io/system:metrics-server created rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created service/metrics-server created deployment.apps/metrics-server created apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
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 tem 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 enable metrics-server Using image k8s.gcr.io/metrics-server/metrics-server:v0.4.2 The 'metrics-server' addon is enabled
Recuperando métricas com Kubectl Top
Com o Metrics Server instalado, agora você pode executar kubectl top
acessar as informações que coleta.
Use o node
subcomando para obter a utilização de recursos atual de cada um dos nós em seu cluster:
$ kubectl top node NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% minikube 249m 3% 847Mi 2%
a pod
O subcomando fornece métricas individuais para cada um dos seus pods:
$ kubectl top pod NAME CPU(cores) MEMORY(bytes) nginx 120m 8Mi
Isso exibirá Pods no default
namespace Adicione o --namespace
verifique se você está interessado em Pods em um namespace específico:
$ kubectl top pod --namespace demo-app NAME CPU(cores) MEMORY(bytes) nginx 0m 2Mi
a --all-namespaces
sinalizador 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 em si.
a kubectl top
O comando 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 a 100m
valores informados no CPU(cores)
campo. O comando exibe o uso da CPU em milicores. uma medida 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
a kubectl top
O comando pode, opcionalmente, classificar a lista de objetos emitidos por CPU ou consumo de memória. Isso facilita a descoberta rápida de quais nós ou pods estão pressionando mais os recursos do cluster.
Adicione o --sort-by
bandeira com ninguém cpu
qualquer memory
como seu valor para acionar esse comportamento:
$ kubectl top pod --sort-by=memory NAME CPU(cores) 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 --selector
flag permite filtrar a lista de objetos para elementos com tags específicas:
$ kubectl top pod --selector application=demo-app NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% nginx-1 249m 3% 1790Mi 5% nginx-2 150m 1% 847Mi 2%
Neste exemplo, apenas os pods que têm a application: demo-app
a tag será incluída na saída. =
, ==
S !=
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 a utilização de um recurso específico
a top node
S top pod
subcomandos 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
qualquer pod
:
$ kubectl top node minikube NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% minikube 245m 3% 714Mi 2%
Resumo
a kubectl top
O comando 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.
[ad_2]