Introdução
Imagine uma ferramenta que lhe permite ver, gerenciar e visualizar vários aspectos de seus clusters Kubernetes mediante uma interface gráfica intuitiva, em vez de comandos complexos. O Kubernetes Dashboard faz exatamente isso, simplificando o processo de implantação, escalonamento e gerenciamento de aplicações conteinerizadas. Ele oferece uma interface web amigável, onde é possível visualizar logs, métricas e relatórios de erros em um só lugar, além de realizar atualizações contínuas, escalar Pods, e gerenciar serviços e recursos com facilidade. Sendo uma solução gratuita e open source, mantida pela Cloud Native Computing Foundation, o Kubernetes Dashboard é um recurso essencial para administradores que desejam maximizar a eficiência e visibilidade de seus clusters.
Instalação
O Kubernetes Dashboard atualmente suporta apenas a instalação baseada no Helm, por ser mais rápida e nos dar um melhor controle sobre todas as dependências necessárias para que o Dashboard funcione. O Chart passou por uma reformulação recente, agora, por padrão, o Kong, sem banco de dados, é usado como um gateway que conecta todos os nossos containers e expõe a interface do usuário. Os usuários podem então usar qualquer controlador de ingress ou proxy na frente do gateway Kong.
# Adiciona o repositório kubernetes-dashboard
# Deploy do Helm Chart
Vale ressaltar que a instalação básica não cria os objetos necessários para o total controle do cluster (RBAC). Adicionalmente precisamos seguir os seguintes passos:
Criação da Service Account
Criaremos a Service Account com o nome admin-user no mesmo namespace de instalação do Chart:
Criação da ClusterRoleBinding
A instalação padrão do Kubernetes sempre apresenta a ClusterRole de nome cluster-admin. A usaremos como objeto de referência para dar as permissões à Service Account recém criada. Deste modo, basta criar a ClusterRoleBinding:
Criação do Token de autenticação:
Mostrarei duas formas para criação desse Token. A primeira cria um Token efêmero, com duração de uma hora. A segunda cria um Token sem data de expiração.
Para a criação do Token efêmero, usaremos o seguinte comando:
Para a criação do Token definitivo, precisaremos criar uma secret:
Depois da criação, colete o token gerado com o seguinte comando:
Tenha cuidado ao armazenar ou repassar esse Token, haja visto que ele dá permissão total no cluster. Caso você queira restringir o acesso, basta utilizar outra ClusterRole com permissões reduzidas.
Acesso
Uma vez seguidos todos os passos anteriores, basta executar o comando de port-foward do service de nome kubernetes-dashboard-kong-proxy:
E, finalmente, acesso o seguinte endereço local no seu navegador:
Caso se utilize o nginx ingress controller no seu cluster, você pode configurar o objeto ingress via values do Helm Chart.
Boas Práticas
Como qualquer aplicação que seja instalada no cluster, é sempre importante seguir boas práticas para garantir estabilidade, resiliência e segurança.
Sempre use HTTPS para criptografar o tráfego entre o cliente e o Dashboard, utilizando certificados TLS assinados por uma autoridade certificadora confiável.
Implemente Network Policies do Kubernetes para restringir o tráfego de e para o Dashboard.
Configure a expiração de tokens para reduzir o risco de uso indevido de tokens e rotacione regularmente tokens e credenciais.
Habilite o registro de auditoria para o servidor da API do Kubernetes para rastrear o acesso ao Dashboard e as mudanças. Monitore os logs em busca de atividades suspeitas.
Mantenha a versão do K8s Dashboard atualizada para aproveitar os patches de segurança e melhorias. Verifique regularmente se há atualizações e aplique-as prontamente.
Colete as métricas básicas e personalizadas, através do objeto Service Monitor do Prometheus (presente no Helm Chart), para monitorar a aplicação.
Conclusão
O Kubernetes Dashboard é uma solução poderosa e gratuita para visualizar e gerenciar seu cluster K8s a partir de uma interface baseada na web. Ele não vem com o K8s "pronto para uso" e deve ser instalado adicionalmente. Certifique-se de seguir as melhores práticas de segurança e restringir as permissões RBAC ao dashboard.
Pra você que prefere, também gravei um vídeo deste passo-a-passo que você confere aqui:
Existem muitas alternativas populares disponíveis, então certifique-se de verificar para avaliar e escolher a certa para suas necessidades.
Não deixe de acompanhar nosso blog, estamos sempre compartilhando conteúdos interessantes e ouça também o Kubicast, o podcast que traz conhecimento em um formato diferente.