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.

Top comments (0)