DEV Community

Cover image for Gerenciando APIs obsoletas do Kubernetes com Pluto
Rafael Conceição
Rafael Conceição

Posted on

Gerenciando APIs obsoletas do Kubernetes com Pluto

O que é o Pluto

Pluto é uma ferramenta desenvolvida pela FairwindsOps que ajuda na detecção de APIs obsoletas do Kubernetes .

Mas antes de falarmos da ferramenta, vamos entender um pouco sobre as APIs do Kubernetes e porque devemos nos preocupar com elas.

As APIs do Kubernetes

As APIs são a forma que podemos interagir com o cluster. Podemos então manipular e consultar os objetos (Pod, deployment...) através delas. Normalmente utilizamos o kubectl para acessar as APIs, mas também é possível através de chamadas REST.

Substituições ou remoções das APIs do Kubernetes

O Kubernetes está em constante evolução, sendo assim, alguns recursos novos são adicionados e outros precisam ser removidos, o mesmo acontece para as APIs.

Como resultado, as APIs antigas são depreciadas e eventualmente removidas, a depreciação, nesse contexto, significa marcar uma API para eventual remoção.

Para saber mais como o Kubernetes deprecia suas APIs veja na documentação da política de reprovação do Kubernetes.

Porque me preocupar com APIs obsoletas

Ao definir uma configuração de Deployment, você especifica a versão da API (apiVersion) do objeto Kubernetes a ser usado.

Se você atualizar seu cluster, há chances de encontrar APIs do Kubernetes depreciadas se a versão para a qual você atualizou não oferecer suporte a elas.

Nesse caso, provavelmente, seu Deployment pode não funcionar se a API depreciada tiver sido removida na nova versão do cluster.

Para saber todas as APIs depreciadas e/ou removidas veja no guia de depreciação.

Também é possível verificar todos os grupos de API suportados na sua versão através do comando kubectl api-versions

O desafio é como verificar quais APIs estão depreciadas e quais, de todos os recursos em execução no cluster, estão sendo utilizadas. Nesse ponto que o Pluto entra para nos ajudar.

Características do Pluto

  • Ele lista todas as APIs que foram depreciadas ou removidas, não apenas do Kubernetes, mas também para outras ferramentas como Istio e CertManager.

  • Detecta APIs depreciadas a partir de arquivos de configuração, helm instalados e/ou em todos os resources do cluster.

  • Também é possível utilizar num Workflow do Github Actions.

Como instalar

Você pode instalar em sua estação baixando a versão apropriada para seu sistema.

O Pluto possui versão para Windows, Linux e MacOs.

Exemplo de instalação no MacOs:

wget https://github.com/FairwindsOps/pluto/releases/download/v5.15.1/pluto_5.15.1_darwin_amd64.tar.gz -O /tmp/pluto_5.15.1_darwin_amd64.tar.gz
tar -zxvf /tmp/pluto_5.15.1_darwin_amd64.tar.gz
chmod +x /tmp/pluto
cp /tmp/pluto /usr/local/bin

Exemplo de uso

Usando o comando pluto detect-all-in-cluster em um cluster que roda na versão 1.21 do Kubernetes, podemos ver que temos o recurso HPA Operator em uma versão que será removida na próxima versão do Kubernetes.

saida do comando detect all

Como a instalação dele foi através de um Helm, vemos o mesmo através do comando pluto detect-helm.

saida do comando detect helm

O comando pluto -h lista todos os comando disponíveis.

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay