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.
Como a instalação dele foi através de um Helm, vemos o mesmo através do comando pluto detect-helm
.
O comando pluto -h
lista todos os comando disponíveis.
Top comments (0)