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.

  1. Initialiser le Cluster : Connectez-vous au Manta Manager en initialisant l’objet Cluster avec l’hôte et le port appropriés.

  2. Vérifier la disponibilité du Cluster : Assurez-vous que le cluster est disponible en utilisant la méthode is_available().

  3. Envoyer le Swarm : Utilisez la méthode send_swarm() pour enregistrer votre Swarm auprès du manager.

  4. 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 et port.

  • Déploiement du Swarm : La méthode send_swarm() enregistre le Swarm auprès du manager. Le swarm_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.