Antes de desplegar en Kubernetes, asegúrate de completar los siguientes pasos:
Compatible con: k8s, k3s, minikube, microk8s, EKS, GKE, AKS y cualquier cluster Kubernetes 1.19+
- Construir la imagen Docker:
make docker-build IMAGE_NAME=your-registry/wapi IMAGE_TAG=v1.0.0 - Subir la imagen al registro:
make docker-push IMAGE_NAME=your-registry/wapi IMAGE_TAG=v1.0.0 - Verificar que la imagen está disponible:
docker pull your-registry/wapi:v1.0.0
- Copiar archivo de ejemplo:
cp kubernetes/secret.example.yaml kubernetes/secret.yaml - Editar
kubernetes/secret.yamlcon credenciales reales:-
DATABASE_URL: URL de tu base de datos Turso -
DATABASE_AUTH_TOKEN: Token de autenticación de Turso -
BETTER_AUTH_SECRET: Secreto mínimo de 32 caracteres
-
- IMPORTANTE: Verificar que
kubernetes/secret.yamlestá en.gitignore
- Editar
kubernetes/configmap.yaml:-
BETTER_AUTH_URL: Tu dominio público (ej: https://wapi.tudominio.com) - Ajustar otras variables según necesidad
-
- Editar
kubernetes/deployment.yaml:- Actualizar
image:con tu imagen real - Ajustar
resourcessegún tus necesidades - Configurar
imagePullSecretssi usas registro privado
- Actualizar
- Editar
kubernetes/ingress.yaml:- Cambiar
host:con tu dominio real - Descomentar y configurar sección
tlssi usas HTTPS - Configurar anotaciones según tu Ingress Controller (nginx, traefik, etc.)
- Cambiar
- Editar
kubernetes/pvc.yaml(opcional):- Ajustar tamaño de volúmenes según necesidad
- Configurar
storageClassNamesi tienes una clase específica - Verificar que tu cluster tiene un provisioner de volúmenes
- Verificar acceso al cluster:
kubectl cluster-info - Verificar storage classes disponibles:
kubectl get storageclass - Verificar que tienes Ingress Controller:
kubectl get ingressclass
Una vez completado el checklist:
# Opción 1: Todo automatizado
make k8s-full IMAGE_NAME=your-registry/wapi IMAGE_TAG=v1.0.0
# Opción 2: Paso a paso
make k8s-deploy- Verificar pods:
make k8s-status - Revisar logs:
make k8s-logs - Verificar PVC:
kubectl get pvc -n wapi - Probar acceso:
kubectl port-forward -n wapi deployment/wapi 3000:3000 - Verificar Ingress:
kubectl get ingress -n wapi - Probar acceso desde el dominio configurado
- Implementar gestión de secretos (Sealed Secrets, External Secrets Operator)
- Configurar Network Policies
- Implementar Pod Security Standards
- Configurar RBAC apropiado
- Habilitar TLS/SSL en Ingress
- Configurar backups automáticos
- Implementar monitoreo y alertas
# Ver ayuda de todos los comandos
make help
# Verificar requisitos
make k8s-check
# Ver estado completo
make k8s-status
# Acceder al shell del pod
make k8s-shell
# Crear backup
make k8s-backup
# Rollback si hay problemas
make k8s-rollbackSi encuentras problemas, revisa:
- Logs del pod:
make k8s-logs - Descripción del pod:
kubectl describe pod -n wapi -l app=wapi - Eventos del namespace:
kubectl get events -n wapi --sort-by='.lastTimestamp' - Estado de PVC:
kubectl get pvc -n wapi - Documentación completa: docs/KUBERNETES.md