Ce guide détaille les étapes pour déployer et mettre à jour l'application sur le VPS OVH.
Pour déployer vos changements sur le VPS :
./scripts/deploy.shCe script va :
- Vous demander un message de commit (optionnel)
- Si un message est fourni, commit et push vos changements sur Git
- Pull les changements sur le VPS
- Rebuilder l'image Docker
- Redéployer l'application sur Microk8s
- Image Docker :
agent-app - Registry :
localhost:32000/agent-app:latest - Déploiement Kubernetes :
agent-api
Le script deploy.sh gère le processus de déploiement de agent-api sur Microk8s :
- Construction de l'image Docker
- Taggage de l'image pour le registry local
- Push de l'image vers le registry
- Mise à jour du déploiement Kubernetes
# Déployer l'application
./scripts/deploy.sh
# Options supplémentaires
./scripts/deploy.sh --git # Met à jour le dépôt Git avant le déploiement- Les logs de déploiement sont temporairement désactivés
- Vérifiez manuellement le statut du déploiement si nécessaire avec :
microk8s kubectl get pods microk8s kubectl logs deployment/agent-api
Après modification du code sur votre Mac, reconstruire et pousser les images :
# Sur votre Mac
cd /Users/vinh/Documents/agent-app
docker build --platform linux/amd64 -t agent-db .
docker tag agent-db 51.77.200.196:32000/agent-db
docker push 51.77.200.196:32000/agent-db# Sur votre Mac
cd /Users/vinh/Documents/agent-app
docker build --platform linux/amd64 -t agent-app .
docker tag agent-api 51.77.200.196:32000/agent-app
docker push 51.77.200.196:32000/agent-apiLes fichiers de configuration se trouvent dans le dossier /home/ubuntu/phidata_yaml/ sur le VPS :
secrets.yaml: Variables d'environnement sensiblesdb-deployment.yaml: Déploiement PostgreSQLapi-deployment.yaml: Déploiement FastAPIapp-deployment.yaml: Déploiement Streamlit A DELETE !!ingress.yaml: Configuration de l'accès externedb-service.yaml: Service NodePort pour accès PostgreSQL
# Depuis le dossier k8s sur votre Mac
scp *.yaml [email protected]:/home/ubuntu/phidata_yaml/
# Sur le VPS
cd /home/ubuntu/phidata_yaml/
microk8s kubectl apply -f secrets.yaml
microk8s kubectl apply -f db-deployment.yaml
microk8s kubectl apply -f db-service.yaml
microk8s kubectl apply -f api-deployment.yaml
microk8s kubectl apply -f ingress.yaml
microk8s kubectl apply -f app-deployment.yaml # A supprimer si Streamlit non utilisé- API FastAPI : http://vps-af24e24d.vps.ovh.net/api/
- Documentation API (Swagger) : http://vps-af24e24d.vps.ovh.net/docs/
Configuration DBeaver :
- Host: vps-af24e24d.vps.ovh.net
- Port: 30432
- Database: ai
- Username: ai
- Password: ai
# État des pods
microk8s kubectl get pods
# État des services
microk8s kubectl get services
# État de l'ingress
microk8s kubectl get ingressmicrok8s kubectl logs -f deployment/agent-api
microk8s kubectl logs -f deployment/agent-db
### Redémarrer les services
# Redémarrer l'API
microk8s kubectl rollout restart deployment agent-api
# Redémarrer la base de données
microk8s kubectl rollout restart deployment agent-db
# Vérifier les logs
microk8s kubectl logs <nom-du-pod>
# Supprimer et recréer le pod
microk8s kubectl delete pod <nom-du-pod>Si la base de données ne démarre pas à cause d'un répertoire non vide :
# Supprimer le PVC
microk8s kubectl delete pvc postgres-pv-claim
# Réappliquer le déploiement
microk8s kubectl apply -f db-deployment.yamlmicrok8s kubectl exec -it <nom-du-pod> -- /bin/bashPour sécuriser l'accès à PostgreSQL, il est recommandé de :
- Configurer un pare-feu pour limiter l'accès au port 30432
sudo ufw allow from <votre-ip> to any port 30432 proto tcp- Utiliser des mots de passe forts dans
secrets.yaml - Configurer SSL pour les connexions PostgreSQL
Configurées dans secrets.yaml :
- DB_USER: "ai"
- DB_PASSWORD: "ai"
- DB_DATABASE: "ai"
- OPENAI_API_KEY: [Votre clé API]
- PHI_API_KEY: [Votre clé API]
Application de gestion d'agents conversationnels avec déploiement Kubernetes (Microk8s).
agent-app/
├── agents/ # Agents conversationnels
│ ├── __init__.py
│ └── example.py # Agent exemple
├── scripts/ # Scripts d'automatisation
│ ├── deploy.sh # Script de déploiement complet
│ └── sync.sh # Synchronisation rapide des agents
├── k8s/ # Configurations Kubernetes
└── Dockerfile # Image de l'application
- Modification des agents dans le dossier
/agents - Test local via
MyBoun_chat.py
Deux options de déploiement sont disponibles :
./scripts/sync.sh- Synchronise uniquement le dossier
agents/ - Redémarre le pod API sans rebuild
- Idéal pour les modifications d'agents
./scripts/deploy.sh- Met à jour le code via Git
- Reconstruit l'image Docker
- Redéploie les pods Kubernetes
- Nécessaire pour les changements de dépendances ou de configuration
- Les scripts affichent automatiquement l'état des pods
- Testez avec
MyBoun_chat.py
- SSH configuré pour le VPS
- Accès à Microk8s sur le VPS
- Docker pour les builds locaux (optionnel)
# Test local
python MyBoun_chat.py "Votre message"
# Déploiement rapide (agents uniquement)
./scripts/sync.sh
# Déploiement complet
./scripts/deploy.sh
# Choisir option 2 pour rebuild complet- Les logs des pods sont accessibles via :
microk8s kubectl logs -f deployment/api-deploymentUn script Python pour envoyer des messages à une API de chat et recevoir des réponses.
- Envoi de messages à un agent conversationnel
- Support pour différents paramètres de configuration
- Gestion robuste des réponses de l'API
# Utilisation de base
python MyBoun_chat.py "Votre message ici"
# Avec des paramètres personnalisés
python MyBoun_chat.py "Bonjour" --agent_id mon_agent --session_id ma_sessionmessage: Le message à envoyer (obligatoire)--agent_id: ID de l'agent (défaut : "example-agent")--session_id: ID de session (défaut : "vinh_session_id")--user_id: ID utilisateur (défaut : "vinh_id")--url: URL de l'API de chat (défaut : "http://vps-af24e24d.vps.ovh.net/v1/playground/agent/run")
- Python 3.x
requests(pour les requêtes HTTP)
- Clonez le dépôt
- Installez les dépendances :
pip install requestsN'hésitez pas à ouvrir des issues ou à soumettre des pull requests.
[À spécifier]