Como instalar o metrics-server em cluster Kubernetes

Em mais um tutorial supersônico em poucos minutos você terá o servidor de métricas do Kubernetes instalado e rodando te permitindo consultar rapidamente o consumo dos recursos do cluster pelo comando de linha sem a necessidade de acessar outra ferramenta como Grafana ou Prometheus por exemplo.

O procedimento para instalação é muito simples, mas tem um pequeno truque para os casos em que você esteja fazendo a implantação em um cluster de estudos em que os certificados estejam configurados corretamente. Mas fique tranquilo que este passo já está nesse tutorial.

Para instalar basta utilizar a linha de comando abaixo:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.1/components.yaml

Caso você queira instalar uma outra versão basta trocar na linha de comando direcionando para a versão correta. Aqui você encontra o repositório oficial com as releases que estão disponíveis do Metrics Server.

Aguarde até que o deploy tenha sido concluído e você já poderá utilizar os comandos para obter as métricas, por exemplo:

# Exibe o consumo de recursos do nós do Cluster

kubectl top nodes
NAME         CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
master-001   278m         13%    1338Mi          34%
worker-001   120m         6%     745Mi           19%
worker-002   127m         6%     765Mi           19%


# Exibe o consumo de pods no Cluster
kubectl top pods
NAME                                       CPU(cores)   MEMORY(bytes)
calico-kube-controllers-56cdb7c587-74jch   4m           26Mi
calico-node-42kp5                          76m          204Mi
calico-node-7kh9d                          56m          203Mi
calico-node-lwbtf                          44m          202Mi
coredns-6d4b75cb6d-99q2p                   3m           21Mi
coredns-6d4b75cb6d-rmczr                   3m           18Mi
etcd-master-001                            32m          70Mi
kube-apiserver-master-001                  120m         459Mi
kube-controller-manager-master-001         30m          57Mi
kube-proxy-4jct4                           1m           23Mi
kube-proxy-6tx6m                           1m           25Mi
kube-proxy-g99gj                           1m           24Mi
kube-scheduler-master-001                  6m           24Mi
metrics-server-658867cdb7-jwf9t            9m           27Mi

Caso os comandos abaixo não estejam funcionando provavelmente o deploy não foi concluído com sucesso. Para ajustar isso basta editarmos o Deployment do metrics-server:

kubectl edit deployment metrics-server -n kube-system

Agora adicionamos a linha destacada abaixo: –kubelet-insecure-tls

...
template:
    metadata:
      creationTimestamp: null
      labels:
        k8s-app: metrics-server
    spec:
      containers:
      - args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
        - --kubelet-use-node-status-port
        - --metric-resolution=15s
        - --kubelet-insecure-tls
...

Pronto agora aguarde que pod seja atualizado e tente rodar os comandos novamente. Caso mesmo assim você não tenha tido sucesso consulte a documentação aqui.

E ai o que acharam? Super fácil né? A única coisa que pode dar um pouquinho de trabalho é essa edição do deployment, mas tirando isso o deploy é muito tranquilo.

Agora você pode ver na linha de comando de forma rápida e fácil como está o consumo de recursos dos seus componentes sem precisar acessar o Grafana, o que pode ser muito útil durante um troubleshooting.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s