Connexion au Cluster Manta et déploiement d’un Swarm¶
Connexion à un Cluster Manta¶
L’objet Cluster
est utilisé pour contrôler les Swarms, gérer les nœuds et accéder aux résultats et aux journaux au sein de la plateforme Manta. Vous trouverez ci-dessous une explication de la manière de se connecter à un Cluster Manta, en modes sécurisé et non sécurisé, en utilisant la méthode connect
.
Documentation de l’API de l’objet Cluster
Pour plus d’informations sur l’objet Cluster
, reportez-vous à la documentation de l’API Cluster
.
Connexion à un Cluster
Pour vous connecter à un Cluster Manta, utilisez la méthode Cluster.connect()
, qui crée un client gRPC pour la communication avec le manager de cluster.
Connexion non sécurisée¶
Une connexion non sécurisée peut être établie en utilisant l’hôte et les ports par défaut sans spécifier de jeton de sécurité. Ce mode convient pour le développement ou les tests dans un environnement contrôlé.
Exemple : Connexion non sécurisée
from manta import Cluster
import asyncio
# Connect to the cluster using default host and ports
cluster = asyncio.run(Cluster.connect(host="localhost", port=50051))
# Check if the cluster is available
response = asyncio.run(cluster.is_available())
print(response.message) # Output should indicate availability
Connexion sécurisée¶
Une connexion sécurisée nécessite un secured_token
, utilisé pour l’authentification lors de la connexion au manager de cluster. Ce mode est recommandé pour les environnements de production où la sécurité est une priorité.
Exemple : Connexion sécurisée
from manta import Cluster
import asyncio
# Connect securely using a secured token
secured_token = "YOUR_SECURED_TOKEN"
cluster = asyncio.run(
Cluster.connect(
host="localhost",
port=50051,
ca_port=50050,
secured_token=secured_token
)
)
# Check if the cluster is available
response = asyncio.run(cluster.is_available())
print(response.message) # Output should indicate availability
Avertissement
Une fois que vous avez réussi à vous connecter à votre cluster, le secured_token
ne doit pas être renseigné. À la place, des fichiers de certificat locaux seront utilisés pour accéder de manière sécurisée à votre cluster.
Déploiement des Swarms à l’aide de l’objet Cluster¶
Une fois que vous êtes connecté avec succès au cluster, vous pouvez déployer des Swarms pour exécution sur les nœuds. Le processus de déploiement consiste à envoyer le Swarm au manager, l’enregistrer et le démarrer.
Vous trouverez ci-dessous un guide étape par étape pour déployer un Swarm en utilisant l’objet Cluster
.
Initialiser le Cluster : Connectez-vous au Manta Manager en initialisant l’objet
Cluster
avec l’hôte et le port appropriés.Vérifier la disponibilité du Cluster : Assurez-vous que le cluster est disponible en utilisant la méthode
is_available()
.Envoyer le Swarm : Utilisez la méthode
send_swarm()
pour enregistrer votre Swarm auprès du manager.Démarrer le Swarm : Utilisez la méthode
start_swarm()
pour lancer l’exécution du Swarm.
Exemple : Déploiement et exécution d’un Swarm
import asyncio
from manta import Cluster
from swarm import FLSwarm
async def deploy_swarm():
# Initialize the Cluster object with the Manager's host and port
cluster = await Cluster.connect(host="localhost", port=50051, ca_port=50050)
# Ensure the cluster is available
response = await cluster.is_available()
print(response.message) # Should print "Available"
# Define a Swarm object, e.g., a Federated Learning Swarm
swarm = FLSwarm(n_workers=10)
# Send the Swarm to the Manager
swarm_response = await cluster.send_swarm(swarm)
swarm_id = swarm_response.swarm_id
print(f"Swarm registered with ID: {swarm_id}")
# Allow some time for the Swarm to be registered
await asyncio.sleep(1)
# Start the Swarm
start_response = await cluster.start_swarm(swarm_id)
print(start_response.message) # Should confirm that the swarm has started
# Run the deployment process
asyncio.run(deploy_swarm())
Explication des principales méthodes
Initialisation du Cluster : Se connecte au Manta Manager à l’adresse spécifiée
host
etport
.Déploiement du Swarm : La méthode
send_swarm()
enregistre le Swarm auprès du manager. Leswarm_id
renvoyé peut être utilisé pour suivre l’état du Swarm.Exécution du Swarm : La méthode
start_swarm()
déclenche l’exécution du Swarm sur les nœuds connectés. La réponse indique si le Swarm a démarré avec succès.
Accéder aux résultats du Swarm¶
Une fois le Swarm déployé et en cours d’exécution, vous pouvez récupérer les résultats et les journaux en utilisant l’objet Cluster
. Cela permet de surveiller et de gérer efficacement les Swarms.
Exemple : Accès aux journaux et aux résultats du Swarm
# Example code to access logs or results after swarm execution
logs = await cluster.collect_logs(swarm_id)
print(logs) # Output swarm logs
Note
Voir collect_logs
pour plus d’informations.
Pour des appels API détaillés et des options supplémentaires, reportez-vous à la documentation de l’API Cluster
.
Grâce à ce guide, vous devriez être en mesure de vous connecter à un cluster Manta, de déployer des Swarms et de surveiller leur exécution de manière efficace.