DevOps Mind
Gerenciando Clusters Kubernetes no WSL2 com OpenLens
Se você trabalha com Kubernetes e usa o Windows, provavelmente já se deparou com desafios ao tentar gerenciar seus clusters. No meu caso, sempre busquei uma forma eficiente de visualizar e administrar os recursos sem precisar recorrer apenas ao terminal. Foi então que descobri o OpenLens, uma interface poderosa e intuitiva para Kubernetes.
O OpenLens é uma versão gratuita do Lens, permitindo um controle avançado dos clusters. E o melhor? Ele pode ser usado diretamente no WSL2, facilitando a vida de quem precisa gerenciar Kubernetes sem sair do ambiente Windows. Neste artigo, vou mostrar como configurar tudo isso e compartilhar algumas dicas para otimizar seu fluxo de trabalho.
Tópicos
O que é o OpenLens e por que usá-lo?
O OpenLens é uma versão de código aberto do Lens, uma IDE popular para Kubernetes. Ele oferece uma interface gráfica poderosa para gerenciar clusters, visualizar recursos, depurar aplicações e muito mais. Para mim, foi um divisor de águas, especialmente quando precisei lidar com múltiplos clusters simultaneamente. Com ele, você pode:
- Monitorar o status dos pods, deployments e serviços visualmente.
- Gerenciar vários clusters ao mesmo tempo.
- Aplicar comandos sem precisar decorar todas as flags do
kubectl
. - Melhorar a produtividade com uma interface intuitiva.
Para quem já usa Kubernetes no WSL2, integrar o OpenLens traz uma experiência muito mais amigável e eficiente.
Com sua visão simplificada dos recursos, é possível usar ele como apoio nos estudos para a prova CKA, principalmente no tópico sobre Monitoramento de Clusters Kubernetes, como eu explico neste artigo: https://devopsmind.com.br/kubernetes-pt-br/monitorando-clusters-kubernetes/
Benefícios do OpenLens no WSL2
O WSL2 (Windows Subsystem for Linux 2) é uma ferramenta essencial para desenvolvedores que precisam de um ambiente Linux no Windows. Combinar o WSL2 com o OpenLens permite que você gerencie clusters Kubernetes diretamente do seu sistema Windows, sem precisar de máquinas virtuais pesadas ou dual boot. Na minha rotina, isso significou ganho de tempo e produtividade.
Configurando Kubernetes no WSL2
Antes de configurar o OpenLens, precisamos garantir que o WSL2 está pronto para rodar Kubernetes. Aqui está um passo a passo:
1. Instalar o WSL2 e Ubuntu
Se ainda não tem o WSL2 configurado, execute o seguinte comando no PowerShell:
wsl --install -d Ubuntu
Após a instalação, abra o Ubuntu no WSL2 e atualize os pacotes:
sudo apt update && sudo apt upgrade -y
2. Instalar o Kubernetes e kubectl
Agora, vamos instalar o kubectl e garantir que temos um cluster funcional:
curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Para verificar se a instalação está correta:
kubectl version --client
Se você usa o kind para rodar clusters locais:
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/local/bin/kind
Criando um cluster:
kind create cluster --name meu-cluster
Instalando e Configurando o OpenLens
Agora que temos Kubernetes rodando, é hora de configurar o OpenLens.
Baixar e instalar o OpenLens
Acesse o site oficial do OpenLens e faça o download da versão para Windows:
Após a instalação, abra o OpenLens e configure a conexão com seu cluster.
Desafios na Integração do OpenLens com o WSL
Ao utilizar o OpenLens no Windows para gerenciar clusters cujos arquivos de configuração estão no WSL, surgem alguns desafios:
- Localização dos Arquivos
$KUBECONFIG
: Os arquivos de configuração estão no sistema de arquivos do WSL, não no Windows. - Autenticação: Muitos provedores de nuvem utilizam plugins de autenticação que dependem de ferramentas disponíveis no WSL, como
aws
para Amazon egcloud
para Google Cloud.
Devido a essas diferenças, o OpenLens pode não reconhecer corretamente os plugins de autenticação necessários, resultando em falhas na conexão com os clusters.
Solução: Utilizando um Proxy Local com kubectl
Uma abordagem eficaz para resolver esses problemas é configurar um proxy local usando o kubectl
. Isso permite que o OpenLens se comunique com o cluster Kubernetes através de uma interface local, superando as limitações mencionadas.
1. Iniciando o Proxy Local
No ambiente WSL, execute o seguinte comando para iniciar o proxy:
kubectl proxy --port=8001 --reject-paths="^/api/./pods/./attach"
Este comando inicia um proxy que escuta na porta 8001 e permite o uso do recurso exec
, necessário para certas operações no OpenLens.
Resultado esperado:
Atenção: Certifique-se de que apenas você tem acesso à porta 8001
enquanto o proxy estiver em execução. Em redes compartilhadas, garanta que a rede seja confiável ou que o firewall do Windows impeça conexões não autorizadas.
2. Configurando o OpenLens
No OpenLens, adicione um novo cluster seguindo estes passos:
- Vá em
File > Add Cluster
. - Escolha a opção de colar uma configuração
$KUBECONFIG
. - Utilize a seguinte configuração:
apiVersion: v1
kind: Config
clusters:
- name: "WSL Cluster"
cluster:
server: http://localhost:8001
users:
- name: nouser
contexts:
- name: "WSL Cluster"
context:
cluster: "WSL Cluster"
user: nouser
current-context: "WSL Cluster"
preferences: {}
Certifique-se de que o campo server
corresponda à porta configurada no passo anterior. Após adicionar o cluster, o OpenLens deve ser capaz de se comunicar com o Kubernetes através do proxy.
Agora você pode acessar o painel do Kubernetes pelo OpenLens sem problemas.
Visão esperada no catalogo de Clusters:
Visualizando métricas
Pode ser que após adicionar o Cluster, algumas métricas estejam indisponíveis, então é necessário instalar o Prometheus.
Para instalar o Prometheus em um cluster Kubernetes e visualizar métricas no OpenLens, você pode seguir este passo a passo simples. Vou abordar como usar o Helm, que é uma maneira prática de instalar Prometheus.
Passo a Passo para Instalar o Prometheus
1. Pré-requisitos
- Helm instalado: Certifique-se de que o Helm esteja configurado no seu ambiente. (Guia de instalação do Helm).
- Cluster Kubernetes em execução: Verifique se você tem um cluster funcionando e acesso com
kubectl
.
2. Adicionar o Repositório Helm do Prometheus
Execute o comando abaixo para adicionar o repositório oficial do Prometheus:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
3. Instalar o Prometheus no Cluster
Use o Helm para instalar o Prometheus no namespace monitoring
:
kubectl create namespace monitoring
helm install prometheus prometheus-community/kube-prometheus-stack -n monitoring
Esse comando instalará o Prometheus, juntamente com o Grafana e o Alertmanager, como parte do kube-prometheus-stack.
4. Verificar o Status da Instalação
Confirme se todos os componentes estão rodando no namespace monitoring
:
kubectl get pods -n monitoring
Você deve ver algo semelhante a:
NAME READY STATUS RESTARTS AGE
prometheus-kube-prometheus-stack-... 1/1 Running 0 1m
alertmanager-prometheus-kube-prometheus-stack 1/1 Running 0 1m
grafana-... 1/1 Running 0 1m
5. Expor o Prometheus no Cluster
Para acessar o Prometheus diretamente no navegador ou conectá-lo ao OpenLens, você pode expor o serviço. Aqui estão duas opções:
a) Configurar com um NodePort:
Edite o serviço Prometheus para usar um NodePort:
kubectl edit svc prometheus-kube-prometheus-prometheus -n monitoring
No YAML, altere o tipo de serviço para:
type: NodePort
Após salvar, pegue o NodePort gerado com o comando:
kubectl get svc -n monitoring
b) Usar Port Forward:
Se preferir não expor o Prometheus, você pode usar o port forward:
kubectl port-forward svc/prometheus-kube-prometheus-prometheus 9090:9090 -n monitoring
Agora o Prometheus estará acessível em http://localhost:9090
.
6. Configurar o OpenLens
Com o Prometheus rodando, o OpenLens detectará automaticamente as métricas de recursos do cluster, desde que o metrics-server esteja configurado. Siga os passos abaixo para garantir a integração:
- Abra o OpenLens e clique no seu cluster.
- Navegue até a aba de Settings (Configurações).
- Certifique-se de que o Prometheus está selecionado como fonte de métricas.
Com o Prometheus instalado e configurado no cluster, você terá acesso a métricas detalhadas de CPU, memória e outros recursos diretamente no OpenLens.
Explorando o OpenLens
Com o OpenLens configurado, você pode:
- Visualizar Pods: Veja quais estão rodando, em erro ou pending.
- Ver logs em tempo real: Clique em um pod e acompanhe os logs.
- Criar e deletar recursos: Interface intuitiva para gerenciar deployments.
Dicas para otimizar o uso
- Use atalhos de teclado: O OpenLens tem vários atalhos que facilitam o gerenciamento.
- Monitore a saúde do cluster: Verifique rapidamente quais workloads estão consumindo mais recursos.
- Integre extensões: O OpenLens suporta plugins que melhoram a usabilidade.
Conclusão
Se você trabalha gerenciando clusters Kubernetes no WSL2, usar o OpenLens é um grande diferencial. Ele facilita a gestão dos clusters e reduz a dependência de comandos CLI complexos. Além disso, a interface intuitiva melhora a experiência do dia a dia.
Esta abordagem facilita a integração entre o OpenLens e o WSL, permitindo um gerenciamento eficiente de clusters Kubernetes no Windows. No entanto, é importante estar atento à segurança, garantindo que o acesso ao proxy seja restrito e que as configurações estejam alinhadas com as melhores práticas de segurança.
Para aqueles que buscam alternativas ao OpenLens, o Monokle é uma opção open source que oferece recursos avançados de gerenciamento de clusters Kubernetes.
Ao seguir este guia, você poderá gerenciar seus clusters Kubernetes de forma eficaz, aproveitando o melhor dos ambientes Windows e Linux através do WSL.
FAQs
1. Posso gerenciar múltiplos clusters simultaneamente com esta configuração?
Sim, você pode iniciar múltiplas instâncias do kubectl proxy
em diferentes portas, cada uma conectada a um cluster distinto, e configurá-las no OpenLens conforme necessário.
2. É seguro expor o proxy na porta 8001?
Desde que o acesso à porta seja restrito ao seu computador e você esteja em uma rede confiável, é seguro. Evite expor o proxy em redes públicas ou não confiáveis.
3. Preciso instalar o OpenLens tanto no Windows quanto no WSL?
Não, o OpenLens é instalado apenas no Windows. O WSL é utilizado para executar o kubectl proxy
e gerenciar as configurações do Kubernetes