Configuration avancée de l’agent
Ce guide explique comment configurer l’agent W&B Launch pour builder des images de conteneur dans différents environnements, téléverser ces images vers des registres de conteneurs cloud et personnaliser le processus de build. Consultez-le si vous devez exécuter des jobs Launch nécessitant le build d’images et que vous souhaitez contrôler où et comment l’agent produit ces images. Cette page s’adresse aux administrateurs et aux opérateurs qui déploient et gèrent l’agent Launch.Le build n’est requis que pour les jobs Git et les jobs d’artifact de code. Les jobs d’image n’en nécessitent pas.Pour plus d’informations sur les types de jobs, consultez Créer un job Launch.
Générateurs
L’agent Launch prend en charge deux générateurs pour produire des images de conteneur. Choisissez le générateur adapté à l’environnement dans lequel l’agent s’exécute. L’agent Launch peut builder des images à l’aide de Docker ou de Kaniko.- Kaniko : builde une image de conteneur dans Kubernetes sans avoir à exécuter le build dans un conteneur privilégié.
- Docker : builde une image de conteneur en exécutant localement une commande
docker build.
builder.type dans la configuration de l’agent Launch. Définissez-la sur docker ou kaniko, ou sur noop pour désactiver le build. Par défaut, le chart Helm de l’agent définit builder.type sur noop. L’agent utilise d’autres clés de la section builder pour configurer le processus de build.
Si vous ne spécifiez aucun générateur dans la configuration de l’agent et qu’une CLI docker fonctionnelle est détectée, l’agent utilise Docker par défaut. Si Docker n’est pas disponible, l’agent utilise noop par défaut.
Utilisez Kaniko pour builder des images dans un cluster Kubernetes. Utilisez Docker dans tous les autres cas.
Téléverser vers un registre de conteneurs
Pour exécuter les images buildées sur votre cible de calcul, l’agent doit les téléverser vers un registre de conteneurs depuis lequel la cible peut les récupérer. Les sections suivantes expliquent comment l’agent applique des tags aux images et les téléverse. L’agent Launch attribue à chaque image qu’il builde un tag correspondant à un hachage unique de la source. L’agent téléverse ensuite l’image vers le registre spécifié dans la clébuilder.destination.
Par exemple, si vous définissez la clé builder.destination sur my-registry.example.com/my-repository, l’agent applique un tag à l’image et la téléverse vers my-registry.example.com/my-repository:[SOURCE-HASH]. Si l’image existe déjà dans le registre, l’agent ne procède pas au build.
Configuration de l’agent
L’agent lit sa configuration à partir d’un fichier YAML. La manière de fournir ce fichier dépend de la façon dont vous exécutez l’agent. Si vous déployez l’agent avec le chart Helm, fournissez la configuration de l’agent dans la cléagentConfig du fichier values.yaml.
Si vous lancez vous-même l’agent avec wandb launch-agent, indiquez le chemin d’un fichier YAML de configuration de l’agent à l’aide de l’option --config. Par défaut, l’agent charge la configuration à partir de ~/.config/wandb/launch-config.yaml.
Dans la configuration de votre agent Launch (launch-config.yaml), fournissez respectivement le nom de l’environnement de la ressource cible et le registre de conteneurs dans les clés environment et registry.
Les onglets suivants montrent comment configurer l’agent Launch en fonction de votre environnement et de votre registre.
- AWS
- Google Cloud
- Azure
La configuration de l’environnement AWS nécessite la clé region. Définissez-la sur la région AWS dans laquelle l’agent s’exécute.L’agent utilise
launch-config.yaml
boto3 pour charger les identifiants d’authentification AWS par défaut. Consultez la documentation de boto3 pour savoir comment configurer les identifiants d’authentification AWS par défaut.Autorisations de l’agent
L’agent doit être autorisé à téléverser des images vers votre registre de conteneurs et, si vous utilisez Kaniko, à lire et à écrire le contexte de build dans le stockage cloud. Les autorisations requises pour l’agent varient selon le cas d’utilisation.Autorisations du registre cloud
L’agent a besoin d’autorisations sur le registre pour pouvoir créer des dépôts et téléverser des couches d’image ainsi que des images taguées. Les agents Launch doivent disposer des autorisations suivantes pour interagir avec les registres cloud.- AWS
- Google Cloud
- Azure
Autorisations de stockage pour Kaniko
Si l’agent Launch utilise le générateur Kaniko, il doit être autorisé à téléverser des données vers un stockage cloud. Kaniko utilise un magasin de contexte situé en dehors du pod qui exécute le job de build.- AWS
- Google Cloud
- Azure
Sur AWS, utilisez Amazon S3 comme magasin de contexte pour le générateur Kaniko. Appliquez la stratégie suivante pour accorder à l’agent l’accès à un bucket S3 :
Personnaliser le build Kaniko
Pour redéfinir des valeurs par défaut, comme le comportement de mise en cache ou les variables d’environnement du pod de build, personnalisez le Job Kubernetes exécuté par Kaniko. Indiquez la spécification du Job Kubernetes utilisée par le job Kaniko dans la clébuilder.kaniko-config de la configuration de l’agent. Par exemple :
launch-config.yaml
Déployer l’agent Launch sur CoreWeave
Si vos charges de travail bénéficient d’une infrastructure accélérée par GPU, vous pouvez déployer l’agent Launch sur CoreWeave Cloud. CoreWeave est une infrastructure cloud conçue pour les charges de travail accélérées par GPU. Pour savoir comment déployer l’agent Launch sur CoreWeave, consultez la documentation CoreWeave.Vous devez créer un compte CoreWeave pour déployer l’agent Launch sur une infrastructure CoreWeave.