K9s: monitoramento, gerenciamento e testes com Kubernetes sem complicações
O K9s é uma interface gratuita para interação via terminal com o Kubernetes, multiplataforma (compatível com Windows, Linux e macOS) e capaz de se conectar a todo tipo de cluster (situado em qualquer nuvem ou, mesmo, on-premise). Trata-se de uma excelente alternativa para acesso a recursos do Kubernetes através da linha de comando, dispensando inúmeras interações via comandos em terminais como PowerShell e Bash.
Com a possibilidade de navegação pelas diferentes estruturas do Kubernetes (até avançando ao nível de Pods, partindo para isso dos Deployments correspondentes num cluster) e dispondo também de funcionalidades de gerenciamento, esta ferramenta possibilita ainda o monitoramento de tais elementos em tempo real. Todas essas capacidades tornam o K9s uma solução útil não apenas para Analistas de Infraestrutura, mas a qualquer profissional que venha a interagir com um cluster Kubernetes (como Desenvolvedores, Data Scientists e até Testers!).
Para a instalação do K9s em meu ambiente Windows fiz do gerenciador de pacotes Chocolatey, executando para isso a seguinte instrução:
choco install k9s
O K9s assumirá para conexão o cluster definido como default para uso do utilitário kubectl.
Podemos acionar o K9s via terminal com o comando:
k9s
Ou indicando a partir de qual tipo de estrutura a visualização será carregada empregando o parâmetro -c, sucedido por um valor como dp (que neste caso indicará Deployments):
k9s -c dp
Na imagem a seguir podemos observar os Deployments ativos em um determinado instante, inclusive com uma dessas estruturas no momento de sua criação destacada em vermelho (sitecontagemdotnet6) - neste teste fiz uso da combinação Windows Terminal + PowerShell:
Com a instrução:
k9s -c svc
Podemos carregar a visualização a partir dos serviços (Services, indicados pela sigla svc) existentes em um cluster Kubernetes:
Já o comando:
k9s -c po
Trará a visualização com os Pods existentes (sigla po), incluindo métricas de consumo de CPU e memória:
No próximo exemplo temos a navegação (utilizando as setas do teclado) até um Deployment chamado sitecontagemdotnet6. Pressionando Enter sobre o mesmo serão exibidos seus Pods (apenas um aqui). Repetindo o procedimento aparecerá o container correspondente (também apenas um para este exemplo) e, novamente ao pressionar Enter, estaremos conectados a este último elemento a fim de visualizar os logs direcionados para a saída padrão (stdout) em tempo real - um ótimo exemplo de monitoramento em tempo real:
Podemos até nos valer das funções de gerenciamento oferecidas pelo K9s, escalando um Deployment (ao pressionar a tecla s) para atender às requisições que chegam a uma Web App com 4 Pods. É o que demonstra a animação a seguir:
Com o Windows Terminal podemos sair do K9s pressionando a combinação de teclas CTRL + C.
Todos os testes descritos neste artigo foram realizados em um cluster baseado no AKS (Azure Kubernetes Service), um serviço gerenciado oferecido dentro da nuvem Microsoft.
Aproveito finalmente para agradecer ao Ramon Durães (Microsoft MVP, DevPrime) por me apresentar a esta fantástica ferramenta.