Antes de começar, você precisará instalar os seguintes componentes:
- Windows/Mac: Docker Desktop
- Linux:
curl -fsSL https://get.docker.com | sh# Windows (usando chocolatey)
choco install minikube
# Mac (usando homebrew)
brew install minikube
# Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube# Windows (usando chocolatey)
choco install kubernetes-cli
# Mac (usando homebrew)
brew install kubectl
# Linux
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectlminikube startkubectl get nodeskubectl apply -f \
https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.21/releases/cnpg-1.21.0.yamlgit clone [URL_DO_SEU_REPOSITORIO]
cd [NOME_DO_DIRETORIO]kubectl apply -f cluster.yaml# Verificar os pods
kubectl get pods -n guardia-lke-postgres
# Verificar o cluster PostgreSQL
kubectl get cluster -n guardia-lke-postgreskubectl port-forward -n guardia-lke-postgres svc/guardia-lke-pg-cluster-rw 5432:5432# Usando psql (se instalado)
psql -h localhost -p 5432 -U postgres -d lke
# As credenciais são:
# usuário: postgres
# senha: postgresO projeto inclui dois scripts para facilitar o deploy:
chmod +x start-cluster.sh
./start-cluster.sh.\start-cluster.ps1O cluster PostgreSQL está configurado com:
- 3 instâncias (1 primária e 2 réplicas)
- 4Gi de armazenamento por instância
- Recursos limitados:
- CPU: 200m-500m
- Memória: 512Mi-1Gi
- Auditoria habilitada através do pgAudit
- Banco de dados padrão:
lke
Para verificar os logs do cluster:
kubectl logs -n guardia-lke-postgres -l postgresql-role=primary- Se os pods não iniciarem:
kubectl describe pods -n guardia-lke-postgres- Se o minikube não iniciar:
minikube delete
minikube start- Para reiniciar o cluster PostgreSQL:
kubectl delete -f cluster.yaml
kubectl apply -f cluster.yamlPara remover o cluster:
kubectl delete -f cluster.yamlPara parar o minikube:
minikube stopcluster.yaml são para desenvolvimento local apenas. Em um ambiente de produção, você deve:
- Usar senhas fortes
- Implementar rotação de credenciais
- Usar gerenciadores de segredos
- Configurar network policies
- Habilitar TLS
Para problemas ou dúvidas, por favor:
- Verifique os logs dos pods
- Consulte a documentação do CloudNativePG
- Abra uma issue no repositório do projeto