Ce guide vous accompagne pour déployer votre bot de trading sur Kubernetes de manière complète et sécurisée.
Votre infrastructure Kubernetes comprendra :
- 2 applications principales : Bot de trading + Interface web
- Stockage persistant : Données, modèles ML, logs
- Gestion des secrets : Clés API sécurisées
- Monitoring : Health checks et métriques
- Auto-scaling : Adaptation automatique de charge
- Load balancing : Distribution de charge avec Nginx
Internet
↓
[LoadBalancer] ← Nginx Proxy
↓
[Trading Web Interface] ← Flask App + Dashboard
↓
[Trading Bot] ← Live Trading + ML Models
↓
[Persistent Storage] ← Data + Models + Logs
# Vérifier que kubectl fonctionne
kubectl cluster-info
# Cloner ou naviguer vers votre projet
cd /Users/bastienjavaux/Desktop/AlphaBeta808TradingCréez un fichier .env avec vos vraies clés :
cat > .env << 'EOF'
BINANCE_API_KEY=your_real_binance_api_key
BINANCE_API_SECRET=your_real_binance_secret
WEBHOOK_SECRET=your_webhook_secret_key
WEB_ADMIN_USER=admin
WEB_ADMIN_PASSWORD=your_secure_password
EOFtestnet: true dans la configuration pour les tests !
# Déploiement complet en une commande
./k8s/deploy.sh latest
# Ou avec plus d'options
./k8s/deploy.sh v1.0 --deploy-ingress --skip-pushLe script va :
- ✅ Construire l'image Docker
- ✅ Créer le namespace Kubernetes
- ✅ Configurer les secrets
- ✅ Déployer tous les composants
- ✅ Attendre que tout soit prêt
# Voir le statut général
./k8s/manage.sh status
# Vérifier que les pods sont prêts
kubectl get pods -n alphabeta808-tradingVous devriez voir quelque chose comme :
NAME READY STATUS RESTARTS AGE
trading-bot-xxx-xxx 1/1 Running 0 2m
trading-web-interface-xxx-xxx 1/1 Running 0 2m
# Créer un tunnel vers l'interface web
./k8s/manage.sh port-forward web 8080
# Ouvrir dans votre navigateur
open http://localhost:8080# Voir l'IP externe
kubectl get svc trading-web-loadbalancer -n alphabeta808-trading
# Utiliser l'EXTERNAL-IP affichée# Modifier k8s/ingress.yaml avec votre domaine
# Puis déployer l'ingress
./k8s/deploy.sh --deploy-ingress# Logs du bot de trading
./k8s/manage.sh logs bot
# Logs de l'interface web
./k8s/manage.sh logs web# Connexion au bot
./k8s/manage.sh shell bot
# Connexion à l'interface web
./k8s/manage.sh shell web# Redémarrer tout
./k8s/manage.sh restart all
# Redémarrer juste le bot
./k8s/manage.sh restart bot# Augmenter le nombre d'instances web
./k8s/manage.sh scale web 3
# L'HPA gère l'auto-scaling automatiquement
kubectl get hpa -n alphabeta808-trading# Après avoir modifié le code
./k8s/deploy.sh v1.1
# Ou mise à jour forcée
./k8s/deploy.sh latest --skip-push
./k8s/manage.sh restart all# Modifier k8s/configmap.yaml
kubectl apply -f k8s/configmap.yaml
# Redémarrer pour appliquer les changements
./k8s/manage.sh restart all- ✅ Les clés API sont stockées dans des secrets Kubernetes
- ✅ Utilisateur non-root dans les containers
- ✅ Permissions RBAC minimales
- ✅ Isolation des namespaces
# Vérifier les secrets
kubectl get secrets -n alphabeta808-trading
# Vérifier les permissions
kubectl auth can-i --list --as=system:serviceaccount:alphabeta808-trading:trading-bot-sa -n alphabeta808-tradingLes limites sont pré-configurées :
- Bot de trading : 1-2 CPU, 1-2Gi RAM
- Interface web : 0.25-0.5 CPU, 512Mi-1Gi RAM
# L'HPA scale automatiquement basé sur :
# - CPU > 70%
# - Mémoire > 80%
kubectl describe hpa trading-web-hpa -n alphabeta808-trading- Données de trading : 10Gi
- Modèles ML : 5Gi
- Logs : 2Gi
# Voir les détails de l'erreur
kubectl describe pod <pod-name> -n alphabeta808-trading
# Voir les logs d'erreur
kubectl logs <pod-name> -n alphabeta808-trading --previous# Vérifier les secrets
kubectl get secret trading-secrets -n alphabeta808-trading -o yaml
# Tester la connectivité depuis un pod
./k8s/manage.sh shell bot
# Dans le pod : python -c "import os; print(os.getenv('BINANCE_API_KEY'))"# Vérifier les services
kubectl get svc -n alphabeta808-trading
# Port forward manuel
kubectl port-forward svc/trading-web-service 8080:5000 -n alphabeta808-trading# Voir l'utilisation des volumes
kubectl get pvc -n alphabeta808-trading
df -h # dans les pods via shell# Développement (testnet)
./k8s/deploy.sh dev --skip-push
# Staging (testnet avec données réelles)
./k8s/deploy.sh staging
# Production (live trading) - ATTENTION !
./k8s/deploy.sh prod --deploy-ingressModifiez configmap.yaml pour chaque environnement :
testnet: true/falsesymbols: [...](différentes paires)risk_management.*(limites différentes)
# Déployer le monitoring
kubectl apply -f k8s/monitoring.yaml
# Ajouter des métriques custom dans votre code Flask- Bot arrêté > 1 minute
- Utilisation mémoire > 90%
- Utilisation CPU > 80%
- Erreurs API Binance
# Suppression sécurisée avec confirmations
./k8s/undeploy.sh
# Suppression forcée (DANGER !)
kubectl delete namespace alphabeta808-trading --forceAvant de mettre en production :
- Tests complets en mode testnet
- Clés API de production configurées
- Limites de risque appropriées
- Monitoring configuré
- Sauvegardes des données importantes
- Plan de rollback préparé
- Alertes configurées
- Documentation d'équipe mise à jour
En cas de problème :
- Logs :
./k8s/manage.sh logs bot - Statut :
./k8s/manage.sh status - Events :
kubectl get events -n alphabeta808-trading - Documentation :
k8s/README.md
🎉 Félicitations ! Votre bot de trading AlphaBeta808 est maintenant déployé sur Kubernetes avec une infrastructure robuste, scalable et sécurisée !