Connexion au cluster Manta et déploiement du 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 un explication de la façon de se connecter à un cluster Manta, à la fois de manière non sécurisée et modes sécurisés, en utilisant la méthode connect
.
Documentation de l’API des objets de cluster
Pour plus d’informations sur l’objet Cluster
, reportez-vous à l’API de la documentation Cluster
.
Connexion à un cluster
Pour vous connecter à un cluster Manta, vous utilisez le Cluster.connect()
méthode qui crée un client gRPC pour la communication avec le cluster directeur.
Connexion non sécurisée¶
Une connexion non sécurisée peut être établie en utilisant l’hôte par défaut et ports sans spécifier de jeton de sécurité. Ce mode convient pour développement ou test 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
, qui est utilisé pour authentification lors de la connexion au Manager de cluster. Ce mode est recommandé pour les environnements de production où la sécurité est une préoccupation.
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 été connecté avec succès à votre cluster, secured_token
ne doit pas être renseigné. Au lieu de cela, un jeton local certifié les fichiers seront utilisés pour accéder en toute sécurité à 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 implique 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 à l’aide de 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()
.Envoyez le Swarm : utilisez la méthode
send_swarm()
pour enregistrer votre Swarm avec le manager.Démarrez le Swarm : utilisez la méthode
start_swarm()
pour lancer Swarm exécution d’un 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 au spécifié
host
etport
.Déploiement d’un Swarm : La méthode
send_swarm()
enregistre le Swarm avec le Manager. Leswarm_id
renvoyé peut être utilisé pour suivre le statut du Swarm.Exécution de Swarm : La méthode
start_swarm()
déclenche l’exécution d’un 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 de Swarm¶
Une fois le Swarm déployé et exécuté, vous pouvez récupérer les résultats et les journaux en utilisant l’objet Cluster
. Cela permet de surveiller et gérer efficacement des Swarms.
Exemple : accès aux journaux et aux résultats de 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’informationsinformation.
Pour des appels API détaillés et des options supplémentaires, reportez-vous à la l’API de la documentation de Cluster
.
Avec ce guide, vous devriez pouvoir vous connecter à un cluster Manta, déployer des Swarms et surveiller efficacement leur exécution.