Déploiement de charges de travail d'application à partir d'images dans IBM Cloud Container Registry
Déployez votre application avec Code Engine, qui utilise une image dans IBM Cloud® Container Registry. Vous pouvez créer une application à partir de la console ou à l'aide de l'interface de ligne de commande.
Avant de commencer
-
Vous devez disposer d'une image dans IBM Cloud® Container Registry. Pour plus d'informations, voir Initiation à Container Registry. Vous pouvez également générer une image à partir de la source du référentiel ou de la source locale.
-
Vérifiez que vous pouvez accéder au registre. Pour plus d'informations, voir Configuration de droits d'accès aux registres de conteneurs.
Vous souhaitez configurer votre projet de manière à ce que tous les utilisateurs puissent stocker et consulter des images sur Container Registry sans avoir à créer manuellement des secrets de registre? Avec des droits suffisants, vous pouvez configurer cet accès au registre par défaut par emplacement (région). Si vous ne disposez pas des droits suffisants pour effectuer ces actions, vous pouvez utiliser cette page pour vous aider à comprendre les droits requis. Voir Configuration des paramètres à l'échelle du projet.
Déploiement d'une application qui fait référence à une image dans Container Registry à partir de la console
Déployez une application qui utilise une image dans Container Registry à l'aide de la console Code Engine.
Code Engine peut automatiquement extraire des images à partir d'un espace de nom Container Registry dans votre compte. Pour extraire des images d'un autre compte Container Registry ou d'un compte du Docker Hub privé, voir Déploiement de charges de travail d'application à partir d'images dans un registre privé.
- Ouvrez la console Code Engine.
- Sélectionnez « Commencer la création ».
- Sélectionnez un projet dans la liste des projets disponibles. Vous pouvez aussi en créer un. Vous devez disposer d'un projet sélectionné pour déployer une application.
- Sélectionnez Application.
- Entrez un nom pour l'application, par exemple
helloapp. Affectez à votre application un nom qui est unique dans le projet. - Sélectionnez « Utiliser une image de conteneur existante », puis cliquez sur « Configurer l'image ».
- Sélectionnez un emplacement de registre de conteneurs, tel que
IBM Registry Dallas. - Sélectionnez
Code Engine managed secretpour Registry secret. Comme cet exemple utilise une image située dans l'espace de noms Container Registry de votre compte, Code Engine peut créer et gérer automatiquement le secret de registre à votre place. - Sélectionnez un espace de nom existant et le nom de l'image dans le registre de l'application Code Engine à référencer. Par exemple, sélectionnez
mynamespaceet l'imagehello_repodans cet espace de nom. - Sélectionnez une valeur pour Balise, par exemple
latest. - Cliquez sur Terminé.
- Modifiez les paramètres d'exécution ou les variables d'environnement de votre application. Pour plus d'informations sur ces options, voir Options de visibilité du nœud final des applications et Options de déploiement d'une application.
- Cliquez sur Créer pour créer l'application.
- Lorsque l'application prend le statut Prêt, vous pouvez la tester. Cliquez sur Tester l'application, puis sur Envoyer une demande dans le panneau de test de l'application. Pour ouvrir l'application dans une page Web, cliquez sur URL de l'application.
Maintenant que votre application est déployée, vous avez accès à des informations sur ses révisions et sur les instances en cours d'exécution, ainsi qu'aux détails de configuration.
Si vous souhaitez ajouter un accès au registre à une instance Container Registry qui n'est pas dans votre compte, voir Ajout d'un accès à une instance Container Registry.
Déploiement d'une application avec une image dans Container Registry via l'interface de ligne de commande
Déployez une application qui utilise une image dans IBM Cloud® Container Registry avec l'interface de ligne de commande avec la commande ibmcloud ce app create. Pour obtenir la liste complète des options, voir la
commande ibmcloud ce app create.
Avant de commencer
- Configurez votre environnement d'interface de ligne de commande Code Engine.
- Créez et utilisez un projet.
- Avant de pouvoir utiliser une application Code Engine qui fait référence à une image dans Container Registry, vous devez d'abord ajouter l'accès au registre afin que Code Engine puisse extraire l'image lorsque l'application est déployée. Pour plus d'informations sur les droits requis pour l'accès aux registres d'images, voir Configuration des droits pour les registres d'images.
-
Pour ajouter un accès dans Container Registry, créez une clé d'API IAM. Pour créer une clé d'API IAM IBM Cloud via l'interface de ligne de commande, exécutez la commande
iam api-key-create. Par exemple, pour créer une clé API nommée «cliapikey» avec la description «My CLI API key» et l'enregistrer dans un fichier nommé «key_file», exécutez la commande suivante :ibmcloud iam api-key-create cliapikey -d "My CLI API key" --file key_fileSi vous choisissez de ne pas sauvegarder votre clé dans un fichier, vous devez enregistrer la clé d'API qui s'affiche lors de sa création. Vous ne pourrez pas la récupérer ultérieurement.
-
Après avoir créé votre clé d'API, ajoutez un accès au registre à Code Engine. Pour ajouter l'accès à Container Registry à l'aide de l'interface de ligne de commande, utilisez la commande
ibmcloud ce secret create --format registrypour créer un secret de registre. Par exemple, la commande suivante crée une entrée de registre permettant d'accéder à une instance d' Container Registry nomméemyregistry. Notez que, même si les options--serveret--usernamesont spécifiées dans l'exemple de commande, la valeur par défaut pour l'option--serverestus.icr.ioet que l'option--usernameprend par défaut la valeuriamapikeylorsque le serveur estus.icr.io.ibmcloud ce secret create --format registry --name myregistry --server us.icr.io --username iamapikey --password APIKEYExemple de sortie
Creating registry secret 'myregistry'... OK -
Créez votre application et référencez l'image
hello_repodans Container Registry. Par exemple, utilisez la commandeibmcloud ce app createafin de créer l'applicationmyhelloapppour référencerus.icr.io/mynamespace/hello_repoà l'aide des informations d'accès demyregistry.ibmcloud ce app create --name myhelloapp --image us.icr.io/mynamespace/hello_repo --registry-secret myregistryLe format du nom de l'image de cette application est
REGISTRY/NAMESPACE/REPOSITORY:TAG, oùREGISTRYetTAGsont facultatifs. SiREGISTRYn'est pas spécifié, la valeur par défaut estdocker.io. SiTAGn'est pas spécifié, la valeur par défaut estlatest. -
Une fois votre application déployée, vous pouvez y accéder. Pour obtenir l'URL de votre application, exécutez
ibmcloud ce app get --name myhelloapp --output url. Lorsque vous curez l'applicationmyhelloapp,Hello Worldest renvoyé.curl https://myhelloapp.abcdabcdhye.us-south.codeengine.appdomain.cloud
Etapes suivantes
-
Après le déploiement de votre application, accédez à votre application via une URL.
-
Vous pouvez créer un mappage de domaine personnalisé et l'affecter à votre application. Pour plus d'informations sur le déploiement d'applications dans plusieurs régions avec un nom de domaine personnalisé, voir Configuration d'une application à haute disponibilité.
-
Maintenant que votre application est déployée, pensez à la rendre orientée événements. En utilisant des abonnements à des événements, vous pouvez déclencher vos applications par des plannings périodiques ou définir votre application pour qu'elle réagisse à des événements tels que des téléchargements de fichiers ou des messagesKafka.
Une fois votre application déployée, vous pouvez mettre à jour votre application déployée et son code référencé avec n'importe quelle manière suivante, indépendamment de la façon dont vous avez créé ou mis à jour votre application :
-
Si vous disposez d'une image de conteneur conforme à la norme Open Container Initiative(OCI), il vous suffit alors de fournir une référence à cette image, qui pointe vers l'emplacement de votre registre de conteneurs, lors du déploiement de votre application. Vous pouvez déployer votre application avec une image dans un registre public ou un registre privé.
Si vous avez créé votre application à l'aide de la commande
app createet que vous avez spécifié l'option--build-sourcepour générer l'image de conteneur à partir de la source locale ou du référentiel et que vous souhaitez modifier votre application pour qu'elle pointe vers une autre image de conteneur, vous devez d'abord supprimer l'association de la génération de votre application. Par exemple, exécutezibmcloud ce application update -n APP_NAME --build-clear. Après avoir retiré l'association de la génération de votre application, vous pouvez mettre à jour l'application pour référencer une image différente. -
Si vous démarrez avec le code source qui réside dans un référentiel Git, vous pouvez choisir de laisser Code Engine prendre soin de construire l'image à partir de votre source et de déployer l'application avec une opération unique. Dans ce scénario, Code Engine télécharge votre image sur IBM Cloud® Container Registry. Pour en savoir plus, reportez-vous à la section Déploiement de votre application à partir du code source du référentiel. Si vous souhaitez plus de contrôle sur la génération de votre image, vous pouvez choisir de créer l'image avec Code Engine avant de déployer votre application.
-
Si vous démarrez avec le code source résidant sur un poste de travail en local, vous pouvez choisir de laisser Code Engine prendre soin de construire l'image à partir de votre source et de déployer l'application avec une commande CLI unique. Dans ce scénario, Code Engine télécharge votre image sur IBM Cloud® Container Registry. Pour en savoir plus, reportez-vous à la section Déploiement de votre application à partir du code source local avec l'interface de ligne de commande. Si vous souhaitez plus de contrôle sur la génération de votre image, vous pouvez choisir de créer l'image avec Code Engine avant de déployer votre application.
Par exemple, vous pouvez choisir de laisser Code Engine gérer la génération de votre source locale pendant que vous faites évoluer le développement de votre source pour l'application. Ensuite, après la maturation de l'image, vous pouvez mettre à jour l'application déployée pour faire référence à l'image spécifique que vous voulez. Vous pouvez répéter ce processus si nécessaire.
Lorsque vous déployez votre application mise à jour, la dernière version de votre image de conteneur référencée est téléchargée et déployée, sauf si une balise est spécifiée pour l'image. Si une balise est spécifiée pour l'image, l'image balisée est utilisée pour le déploiement.
Vous recherchez d'autres exemples de code ? Découvrez le site Exemples pour le dépôt « IBM Cloud Code Engine GitHub ».