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.


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.

openlens dash
Visão do OpenLens

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:

Baixar OpenLens

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 e gcloud 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:

kubectl proxy
kubectl proxy

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:

  1. Vá em File > Add Cluster.
  2. Escolha a opção de colar uma configuração $KUBECONFIG.
  3. 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:

Openlens Clusters
Openlens 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:

  1. Abra o OpenLens e clique no seu cluster.
  2. Navegue até a aba de Settings (Configurações).
  3. Certifique-se de que o Prometheus está selecionado como fonte de métricas.
metrics prometheus

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

Compartilhe / Share
Fernando Müller Junior
Fernando Müller Junior

Eu sou o Fernando Müller, um Tech Lead SRE com 16 anos de experiência em TI, atualmente eu trabalho na Appmax, uma fintech localizada no Brasil. Apaixonado por trabalhar com arquiteturas e aplicações Cloud Native, ferramentas Open Source e tudo que existe no mundo SRE, sempre procurando se desenvolver e aprender constantemente(Lifelong learning), atuando em projetos inovadores!

Artigos: 46

Receba as notícias por email / Receive news by email

Insira seu endereço de e-mail abaixo e assine nossa newsletter / Enter your email address below and subscribe to our newsletter

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *