Kubernetes¶
Arquitectura de Despliegue¶
AltruPets se despliega en OVHCloud Managed Kubernetes para QA, STAGING y PROD.
flowchart TB
NGINX[NGINX Gateway] --> Backend1[Backend]
NGINX --> Backend2[Backend]
NGINX --> Backend3[Backend]
Backend1 --> PG[(PostgreSQL)]
Backend2 --> PG
Backend3 --> PG
Backend1 --> Valkey[(Valkey)]
Backend2 --> Valkey
Backend3 --> Valkey
Flujos de Deployment¶
Manual (sin ArgoCD)¶
Para desarrollo local con Minikube:
make setup && make dev-minikube-deploy && make dev-terraform-deploy && \
make dev-images-build && make dev-backend-tf-deploy && \
make dev-superusers-tf-deploy && make dev-b2g-tf-deploy && make dev-gateway-start
GitOps (con ArgoCD)¶
Para ambientes QA, Staging y Production:
make setup && make dev-minikube-deploy && make dev-terraform-deploy && \
make dev-images-build && make dev-argocd-deploy && make dev-gateway-start
Kustomize Structure¶
k8s/
├── base/ # Manifiestos base
├── overlays/ # Environments overrides
│ └── dev/ # Dev environment
└── argocd/ # ArgoCD applications
Targets de Deploy¶
| Target | Descripción | Path |
|---|---|---|
dev-backend-tf-deploy |
Backend API | k8s/overlays/dev/backend |
dev-superusers-tf-deploy |
CRUD Superusers | k8s/overlays/dev/web-superusers |
dev-b2g-tf-deploy |
B2G Frontend | k8s/overlays/dev/web-b2g |
Entornos¶
| Entorno | Propósito | Kubeconfig Secret |
|---|---|---|
| DEV | Local Minikube | N/A (local) |
| QA | Ephemeral testing | OVH_QA_KUBECONFIG |
| STAGING | Pre-production | OVH_STAGING_KUBECONFIG |
| PROD | Production | OVH_PROD_KUBECONFIG |
Comandos Útiles¶
# Ver pods
kubectl get pods -n altrupets-dev
# Ver servicios
kubectl get services -n altrupets-dev
# Logs
kubectl logs -f deployment/backend -n altrupets-dev
# Escalar
kubectl scale deployment/backend --replicas=3 -n altrupets-dev
# Aplicar manifiestos manualmente
kubectl apply -k k8s/overlays/dev/backend
OVH Managed PostgreSQL¶
Producción utiliza OVH Managed PostgreSQL en lugar de PostgreSQL self-managed: - Alta disponibilidad - Backups automáticos - SSL habilitado