Skip to content

RobertoCamara/Kubernetes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Kubernetes Dev Environment

Ambiente local completo de desenvolvimento com Kubernetes, preparado para arquiteturas modernas, mensageria com Kafka e múltiplas ferramentas de observabilidade.

Ambiente testado e validado nas seguintes combinações:

  • 🐧 WSL2 com Debian → uso preferencial de K3d
  • 🐧 WSL2 com Ubuntu → uso com K3d ou Kind, porém o ambiente com Kind apresentou limitações para uso do Rancher UI por conta dos certificados devido a necessidade do uso de HTTPS

📌 Visão Geral

Este ambiente simula um ecossistema próximo de produção com os seguintes componentes:

  • Kafka Broker no modo KRaft, eliminando a necessidade de ZooKeeper
  • Kafka Connect com plugins Debezium para captura de mudanças em bancos MySQL, PostgreSQL e MongoDB
  • Sink Connectors configurados para Redis, Elasticsearch e S3
  • Interfaces de observabilidade: Kafka UI, Portainer, Rancher UI para monitoramento visual e gestão do ambiente
  • Organização de Helm charts e manifests para facilitar deploy e versionamento
  • Scripts automatizados para build, instalação e gerenciamento do ambiente

🧭 Escolha seu Cluster

Este repositório contém dois ambientes distintos de cluster Kubernetes local:

Cluster Recomendado para Caminho
K3d WSL2 Debian/Ubuntu k3d-cluster
Kind WSL2 com Ubuntu kind-cluster

💡 Ambas as opções oferecem os mesmos recursos e estrutura de serviços. Escolha com base na compatibilidade do seu sistema operacional.


🛠️ Tecnologias Utilizadas


▶️ Como Usar

1. Clonar o Repositório

git clone https://github.com/RobertoCamara/Kubernetes.git
cd Kubernetes

2. Executar o Setup

Para K3d (WSL2 com Debian):

cd k3d-cluster
./setup-all.sh

Para Kind (WSL2 com Ubuntu):

cd kind-cluster
./setup-all.sh

📁 Estrutura do Projeto

Kubernetes/
├── k3d-cluster/
│   ├── docker/
│   ├── kafka/
│   ├── kong/
│   ├── manifests/
│   ├── setup/
│   └── setup-all.sh
│
├── kind-cluster/
│   ├── docker/
│   ├── kafka/
│   ├── kong/
│   ├── manifests/
│   ├── setup/
│   └── setup-all.sh
│
└── README.md

🌐 Acesse os Serviços

Serviço URL
Kafka UI http://localhost:8080
Konga UI http://localhost:8081
Kubevious http://localhost:8082
Kafka Connect REST API http://localhost:8083
Kong Admin API http://localhost:8085
Kafka Connect UI http://localhost:8086
Portainer http://localhost:9000
Rancher https://rancher.localhost/

💡 Futuras Melhorias

  • Testes de carga com K6 ou Locust
  • Simulação de falhas com Chaos Mesh
  • Monitoramento com Prometheus + Grafana
  • Tracing com Jaeger ou OpenTelemetry

❓ FAQ - Perguntas Frequentes

1. Preciso instalar algo antes de rodar o script setup-all.sh?
Você só precisa ter o Docker instalado e funcionando. O script inicial do setup verifica e instala automaticamente os pré-requisitos como kubectl, k3d e helm.

2. Compatível com quais sistemas?
O ambiente foi desenvolvido considerando o uso do WSL2 no Windows (testado). Para Linux e Mac, ajustes podem ser necessários, mas o ambiente é compatível desde que Docker, K3d e Helm estejam instalados e funcionando.

3. Posso usar ambos os clusters (k3d e kind)?
Sim, mas não simultaneamente. Delete um antes de criar o outro.

4. Quanto tempo leva para rodar o setup completo?
Depende da sua máquina e da velocidade da internet, mas normalmente leva entre 5 e 10 minutos.

5. Como adicionar novos conectores Debezium?
Edite o Dockerfile.connect para adicionar os plugins dos conectores desejados e reconstrua a imagem Kafka Connect.

6. O Kafka está rodando em modo KRaft, qual a vantagem?
O modo KRaft elimina a necessidade do Zookeeper, simplificando a arquitetura, facilitando a manutenção e melhorando a performance.

7. Como faço para parar e remover o cluster?
Execute o comando correspondente ao seu cluster:

# Para K3d
k3d cluster delete kubelocal-cluster

# Para Kind
kind delete cluster --name kubelocal-cluster

✒️ Autor

Roberto Camara
Software Architect & Senior Software Engineer
🔗 LinkedIn

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published