Gestion d'une flotte

Suivez ces étapes pour exécuter une flotte Code Engine à l'aide de l'interface de ligne de commande (CLI) ou de la console.

Avant de commencer

Pour gérer une flotte avec succès, assurez-vous d'avoir suivi les étapes de la section Préparer la gestion de votre flotte. Vous avez également la possibilité d'utiliser Code Engine pour créer l'image à laquelle vous faites référence lors de la création de votre flotte.

Exécution d'une flotte à l'aide de la console

Suivez ces étapes pour exécuter une flotte dans la console d' Code Engine.

  1. Ouvrez la console d' Code Engine.
  2. Cliquez sur Commencer la création.
  3. Sélectionnez un projet dans la liste des projets disponibles. Vous pouvez aussi en créer un. Vous devez avoir sélectionné un projet pour gérer une flotte.
  4. Sélectionnez l'option permettant de créer une flotte.
  5. Spécifiez un nom pour la flotte. Veillez à ce que le nom soit unique pour toutes les flottes du projet.
  6. Spécifiez une image de conteneur pour votre flotte, par exemple, icr.io/codeengine/helloworld. Si vous disposez de votre propre code source que vous souhaitez transformer en image de conteneur, consultez la section Planification de votre build. Pour plus d'informations sur le code utilisé dans cet exemple, consultez helloworld.
  7. Suivez les instructions pour configurer votre flotte. Pour plus d'informations sur l'importance des paramètres de mise à l'échelle, consultez la section Configuration de la mise à l'échelle de la flotte.
  8. Dans la section Tâches, précisez si vous souhaitez ajouter ou non des tâches initiales pour la flotte. Pour plus d'informations, voir Spécification des tâches.
  9. Dans la section Ressources et mise à l'échelle, configurez vos ressources d'instance et spécifiez comment vos instances sont mises à l'échelle.
  10. Dans la section Placement du réseau, cliquez sur Sélectionner les pools de sous-réseaux.
    1. Créez un nouveau pool de sous-réseaux pour spécifier l'emplacement du réseau des travailleurs de cette flotte. Voir Travailler avec la connectivité du pool de sous-réseaux dans Code Engine pour plus d'informations.
    2. Ou sélectionnez un ou plusieurs pools de sous-réseaux existants pour spécifier l'emplacement du réseau des travailleurs de cette flotte.
    3. Cliquez sur Appliquer pour valider votre sélection.
  11. Dans les sections Variables d'environnement et Montages de volumes, ajoutez des paires clé-valeur facultatives, des cartes de configuration ou des fichiers supplémentaires qui peuvent être utilisés par votre code d'exécution.
  12. Cliquez sur Créer.

Spécification des tâches

Vous pouvez créer un parc avec ou sans tâches initiales, et ajouter des tâches à tout moment.

Spécification des tâches dans la console

Pour créer une flotte sans tâches initiales, consultez la section Création d'une flotte sans tâches initiales à l'aide de la console. Pour ajouter des tâches après leur création, consultez la section Ajouter des tâches à une flotte à l'aide de la console.

Vous pouvez définir des tâches de l'une des manières suivantes :

  • Nombre de tâches: sélectionnez Nombre de tâches et indiquez un nombre entier positif.
  • Index de tâches: pour définir une plage de tâches, vous pouvez spécifier un ensemble d’index de tâches comprenant une liste, séparée par des virgules, de plages et d’entiers positifs, par exemple 2-5,7-8,10. Sélectionnez les index des tâches et saisissez les plages.
  • Tâches à partir d'un fichier: pour exécuter différentes tâches avec des commandes ou des arguments différents, vous pouvez créer un fichier de spécification de tâches qui remplace la définition de l'image. Le champ facultatif idx peut être utilisé pour spécifier un index de tâche personnalisé. Ce fichier doit être au format JSONL. Sélectionner des tâches à partir d'un fichier. Téléchargez un fichier local ou indiquez le chemin d'accès à un fichier sur IBM Cloud Object Storage. Consultez l'exemple suivant de lignes pouvant être ajoutées à un fichier de spécification de tâche.
    { "cmds": ["my", "multipart", "command"], "args": ["arg1", "arg2"] }
    { "cmds": ["other", "cmd"], "args": ["arg"], "idx": "foo" }
    { "args": ["argA", "argB", "argC"], "idx": "bar" }
    { "cmds": ["just", "another", "command"], "idx": "1234" }
    
  • Tâches issues d' IBM Cloud Object Storage: spécifier des tâches en fonction des objets présents dans un magasin de données persistant (compartiment Object Storage ). Chaque objet génère une tâche. Sélectionnez Tâches dans Cloud Object Storage, puis créez ou sélectionnez un magasin de données persistant. Vous pouvez, si vous le souhaitez, spécifier un sous-chemin.

Nom du lot (facultatif): ajoutez un nom de lot pour toutes les tâches ajoutées à l'aide de cette action. Un nom de lot identifie et regroupe des tâches associées. Les noms de lots n'ont pas besoin d'être uniques; vous pouvez donc réutiliser le nom de lot d'origine lorsque vous relancez des tâches ayant échoué. Par exemple, les noms de lots peuvent contenir des dates ou des noms de clients.

Spécification des tâches dans l'interface de ligne de commande (CLI)

Pour créer une flotte sans tâches initiales, consultez la section Création d'une flotte sans tâches initiales à l'aide de l'interface de ligne de commande(CLI). Pour ajouter des tâches après la création, consultez la section Ajouter des tâches à une flotte existante à l'aide de l'interface de ligne de commande(CLI). Pour créer une flotte avec des tâches initiales, consultez la section Création d'une flotte avec des tâches initiales à l'aide de l'interface de ligne de commande(CLI).

Vous pouvez définir des tâches de l'une des manières suivantes.

  • Nombre de tâches: indiquez n'importe quel nombre entier positif. Utilisez l'option --tasks pour spécifier le nombre de tâches que vous souhaitez exécuter. Pour créer une flotte sans tâches, omettez l'option --tasks.
  • Index des tâches: pour spécifier une plage de tâches, vous pouvez indiquer un index de tâches comprenant une liste, séparée par des virgules, de plages et de nombres entiers positifs, par exemple 2-5,7-8,10. Utilisez l'option --task-indexes.
  • Tâches à partir d'un fichier: pour exécuter différentes tâches avec des commandes ou des arguments différents, vous pouvez créer un fichier de spécification de tâches qui remplace la définition de l'image. Le champ facultatif idx peut être utilisé pour spécifier un index de tâche personnalisé. Ce fichier doit être au format JSONL. Spécifiez le fichier à l'aide de l'option --tasks-from-cos-object ou --tasks-from-local-file. Consultez l'exemple suivant de lignes pouvant être ajoutées à un fichier de spécification de tâche.
    { "cmds": ["my", "multipart", "command"], "args": ["arg1", "arg2"] }
    { "cmds": ["other", "cmd"], "args": ["arg"], "idx": "foo" }
    { "args": ["argA", "argB", "argC"], "idx": "bar" }
    { "cmds": ["just", "another", "command"], "idx": "1234" }
    
  • Tâches issues d' IBM Cloud Object Storage: spécifier des tâches en fonction des objets présents dans un magasin de données persistant (compartiment Object Storage ). Chaque objet génère une tâche. Utilisez l'option --tasks-from-cos-bucket pour spécifier un compartiment Object Storage et un sous-chemin facultatif.

Création d'un parc sans tâches initiales à l'aide de la console

Vous pouvez créer une flotte sans définir de tâches. Si la valeur de Minimum container slots ou Spare container slots est différente de zéro, les workers sont provisionnés immédiatement. Sinon, aucun travailleur n'est créé tant que les premières tâches n'ont pas été ajoutées.

Utilisez cette approche lorsque le parc est une ressource partagée et pérenne qui reçoit des tâches provenant de plusieurs sources ou selon un calendrier défini.

Pour créer une flotte sans tâches initiales, suivez les étapes décrites dans la section Exécuter une flotte à l'aide de la console. À l'étape 8, réglez l'option Spécifier les tâches initiales sur Non.

Copier une flotte pour en créer une nouvelle

Vous pouvez créer une nouvelle flotte en copiant la configuration d'une flotte existante à l'aide de la console Code Engine. La fonctionnalité Créer une copie reproduit tous les paramètres de configuration de la flotte source — y compris la référence de l'image de conteneur, l'allocation des ressources, les variables d'environnement et les paramètres de mise à l'échelle — dans une nouvelle flotte que vous pouvez ensuite personnaliser de manière indépendante. Les tâches ne sont pas reproduites.

La nouvelle flotte se comporte comme une charge de travail indépendante. La flotte source n'est pas affectée par les modifications apportées à la nouvelle flotte, et inversement.

Avant de commencer, assurez-vous qu'un parc existant a déjà été créé dans votre projet.

  1. Accédez à la page Projets d’ Code Engine.
  2. Cliquez sur le nom de votre projet pour ouvrir la page Présentation.
  3. Cliquez sur Flottes pour afficher la liste de vos flottes.
  4. Ouvrez l'option Créer une copie de l'une des manières suivantes :
    • Cliquez sur le nom de la flotte que vous souhaitez copier pour ouvrir sa page. Cliquez ensuite sur le menu Actions situé dans le coin supérieur droit de la page, puis sélectionnez Créer une copie.
    • Dans la liste des flottes, cliquez sur l'icône d'actions de ligne (⋮) de la flotte que vous souhaitez copier, puis sélectionnez Créer une copie.
  5. Sur la page Créer une flotte, la configuration de la flotte source est préremplie. Saisissez un nom unique pour la nouvelle flotte. Utilisez un nom unique dans le projet.
  6. Vérifiez et, si nécessaire, modifiez les paramètres de configuration de la nouvelle flotte, tels que l'image du conteneur, l'allocation des ressources, les variables d'environnement ou les paramètres de mise à l'échelle.
  7. Cliquez sur Créer pour créer la nouvelle flotte.

Ajouter des tâches à une flotte à l'aide de la console

Vous pouvez ajouter des tâches à une flotte à tout moment — que celle-ci soit en état En attente, En cours d'exécution ou En veille — à l'aide du bouton Ajouter des tâches.

De manière asynchrone, Code Engine crée les enregistrements de tâches et, si nécessaire, provisionne des workers supplémentaires.

Suivez ces étapes pour ajouter des tâches à un parc existant dans la console d' Code Engine.

  1. Accédez à la page Projets d’ Code Engine.
  2. Cliquez sur le nom de votre projet pour ouvrir la page Présentation.
  3. Cliquez sur Flottes pour afficher la liste de vos flottes. Cliquez sur le nom de votre flotte pour ouvrir la page de détails.
  4. Cliquez sur Ajouter des tâches.
  5. Spécifiez un ensemble de tâches à ajouter à la flotte. Voir également Spécification des tâches.
  6. Vous pouvez, si vous le souhaitez, ajouter un nom pertinent au lot.
  7. Cliquez sur Ajouter.

Création d'une flotte sans tâches initiales à l'aide de l'interface de ligne de commande (CLI)

Utilisez la commande suivante pour exécuter une flotte sans tâche initiale. Cette commande permet d'ajouter des options supplémentaires. Pour obtenir la liste complète de toutes les options de commande disponibles, consultez la référence CLI.

ibmcloud ce fleet run --name my-fleet --image icr.io/codeengine/helloworld --subnetpool-name my-pool --tasks-state-store mytaskstore
--name
Nom de la flotte. Cette valeur doit être unique pour toutes les flottes d'un même projet. Si aucun nom de flotte n'est spécifié, un nom aléatoire est généré.
--image
Référence à l'image de conteneur utilisée pour traiter les tâches. Cette valeur est obligatoire.
--subnetpool-name ou --subnetpool-id
Nom du pool de sous-réseaux à utiliser pour le placement réseau de la flotte.
ID du pool de sous-réseaux à utiliser pour l'attribution du réseau de la flotte.

Vous devez indiquer soit --subnetpool-name soit --subnetpool-id.

--tasks-state-store
Indiquez le magasin de données persistantes qui conserve l'état des tâches de la flotte. Cette valeur est obligatoire.

Exemple de sortie :

Successfully created fleet with name 'my-fleet' and ID '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'
Run 'ibmcloud ce fleet get --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to check the fleet status.
Run 'ibmcloud ce fleet worker list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of provisioned workers.
OK

Ajouter des tâches à un parc existant à l'aide de l'interface de ligne de commande (CLI)

Utilisez la commande suivante pour ajouter des tâches à une flotte existante. Cette commande permet d'ajouter des options supplémentaires. Pour obtenir la liste complète de toutes les options de commande disponibles, consultez la référence CLI.

Vous pouvez également utiliser la commande ibmcloud ce fleet task create.

Exemple

ibmcloud ce fleet task add --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e --tasks 1 --batch-name transactions-2026-09-04

Exemple de sortie

Successfully added tasks to fleet with name 'fleet-0123456789' and ID '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'
Run 'ibmcloud ce fleet get --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to check the fleet status.
Run 'ibmcloud ce fleet worker list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of provisioned workers.
Run 'ibmcloud ce fleet task list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of tasks.
OK
--fleet-id
L'UUID de la flotte à laquelle la tâche appartient. Cette valeur est obligatoire.
--tasks
Indiquez le nombre de tâches à traiter par la flotte. Cette valeur est obligatoire.
--batch-name
Nom du lot utilisé pour toutes les tâches ajoutées lors de l'appel en cours. Il peut être utilisé pour identifier et regrouper des tâches connexes. Les noms de lots n'ont pas besoin d'être uniques; vous pouvez donc réutiliser le nom de lot d'origine lorsque vous relancez des tâches ayant échoué. Par exemple, les noms de lots peuvent contenir des dates ou des noms de clients.
Cette valeur est facultative. Si aucun nom n’est spécifié, le nom du lot default est utilisé.

Création d’une flotte avec des tâches initiales à l’aide de l’interface de ligne de commande (CLI)

Utilisez l'exemple de commande suivant pour exécuter une flotte avec des tâches initiales. Cette commande permet d'ajouter des options supplémentaires. Pour obtenir la liste complète de toutes les options de commande disponibles, consultez la référence CLI.

Une fois toutes les tâches disponibles traitées, la flotte passe à l'état En veille. Les workers qui ne sont plus nécessaires pour fournir le nombre minimum de slots de conteneurs sont réduits jusqu'à ce que de nouvelles tâches soient ajoutées.

ibmcloud ce fleet run --name my-fleet --image icr.io/codeengine/helloworld --subnetpool-name my-pool --tasks-state-store mytaskstore --tasks 1
--name
Nom de la flotte. Cette valeur doit être unique pour toutes les flottes d'un même projet. Si aucun nom de flotte n'est spécifié, un nom aléatoire est généré.
--image
Référence à l'image de conteneur utilisée pour traiter les tâches. Cette valeur est obligatoire.
--subnetpool-name ou --subnetpool-id
Nom du pool de sous-réseaux à utiliser pour le placement réseau de la flotte.
ID du pool de sous-réseaux à utiliser pour l'attribution du réseau de la flotte.

Vous devez indiquer soit --subnetpool-name soit --subnetpool-id.

--tasks-state-store
Indiquez le magasin de données persistantes qui conserve l'état des tâches de la flotte. Cette valeur est obligatoire.
--tasks
Le nombre de tâches à exécuter.

Exemple de sortie :

Successfully created fleet with name 'my-fleet' and ID '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'
Run 'ibmcloud ce fleet get --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to check the fleet status.
Run 'ibmcloud ce fleet worker list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of provisioned workers.
Run 'ibmcloud ce fleet task list --fleet-id 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e' to retrieve a list of tasks.
OK