[PYTHON] [Modèle de code] Comment déployer un exemple d'application d'échange sur OpenShift sur IBM Cloud à l'aide de Red Hat Universal Base Image (UBI)

Bonjour à tous. C'est Aya Tokura.

Cette fois, il est publié en tant que ** Code Pattern ** sur le site ** IBM Developer ** ** ["Déployez un exemple d'application d'échange sur OpenShift à l'aide de Red Hat Universal Base Image. ]](Https://developer.ibm.com/jp/patterns/deploy-to-openshift-4-redhat-universal-base-image/) **, avec des procédures d'exploitation et des commentaires supplémentaires en tant que traduction de référence japonaise Je vais également le présenter.

Aperçu

Dans cet article, nous allons couvrir les étapes pour déployer un exemple d'application d'échange de devises écrit en Python sur Red Hat OpenShift sur IBM Cloud à l'aide de Red Hat Universal Base Image (UBI). Après avoir terminé cette opération, vous pourrez acquérir les compétences suivantes.

Qu'est-ce que Red Hat Universal Base Image (UBI)?

Image du système d'exploitation pour les conteneurs avec Red Hat Enterprise Linux (RHEL) comme noyau. En d'autres termes, pour les utilisateurs qui utilisent déjà RHEL, il est possible de créer une image qui allie qualité. Vous pouvez créer une image sur n'importe quelle plateforme, la redistribuer à volonté et l'exécuter où vous le souhaitez. Pour plus d'informations, veuillez visiter le site Web officiel de Red Hat.

point important

En tant qu'environnement cloud, nous utiliserons un cluster Red Hat OpenShift sur IBM Cloud. Si vous avez obtenu l'environnement Open Shift sur IBM Cloud pour l'atelier du séminaire Open Shift d'IBM Developer Dojo, vous pouvez également l'utiliser.

Préparation préalable

Vous devez disposer des outils et de l'environnement suivants prêts.

Image du flux global

1. Dans l'exemple de microservice d'échange, un consommateur de l'API client appelle le microservice via Internet. (demande http (s)) 2. Le processus Python Flask agit comme un "serveur Web" et accepte les requêtes REST (par exemple GET / convertCurrency / ZAR / USD / 600.66). 3. Le code qui achemine la demande dans Flask transmet la demande au module de service, qui appelle l'API External European Currency Exchange (https://api.exchangeratesapi.io/). 4. Par exemple, le taux de change de la terre sud-africaine (ZAR) est acquis et stocké. La valeur ZAR de 600,66 est convertie en dollars américains (USD). 5. Flask répond en envoyant un montant en dollars (40,59 $ dans cet exemple) au consommateur appelant.

Mode opératoire

1. Clonez le référentiel GitHub localement

  1. Exécutez la commande suivante à partir du terminal pour cloner l'exemple d'application publié sur GitHub.
git clone https://github.com/IBM/python-ubi-openshift.git
  1. Une fois le clonage terminé, déplacez le lieu de travail avec la commande suivante.
cd python-ubi-openshift

2. Créez et exécutez l'image Docker localement

  1. Pour «», spécifiez votre propre nom d'utilisateur DockerHub et créez et exécutez l'image Docker localement.

** Pour Mac OS **


export DOCKERHUB_USERNAME=<your-dockerhub-username>

docker build -t $DOCKERHUB_USERNAME/currencyexchange-py:v0.0.1 .

** Pour les fenêtres **


SETX DOCKERHUB_USERNAME "your-dockerhub-username"

docker build -t $DOCKERHUB_USERNAME/currencyexchange-py:v0.0.1 .
** Exemple de contenu de sortie après l'exécution de la commande **
Sending build context to Docker daemon  69.63MB
Step 1/10 : FROM registry.access.redhat.com/ubi8/ubi
 ---> fd73e6738a95

 ...

Collecting flask (from -r requirements.txt (line 13))
  Downloading https://files.pythonhosted.org/packages/9b/93/628509b8d5dc749656a9641f4caf13540e2cdec85276964ff8f43bbb1d3b/Flask-1.1.1-py2.py3-none-any.whl (94kB)

 ...

Successfully built 3b5631170697
Successfully tagged <DOCKERHUB_USERNAME>/currencyexchange-py:v0.0.1

  1. Exécutez en fait l'image générée localement.

docker run -p 7878:7878 $DOCKERHUB_USERNAME/currencyexchange-py:v0.0.1

Vous pouvez vérifier que le conteneur Docker du microservice Exchange est en cours d'exécution en ouvrant un autre terminal et en exécutant la commande docker ps. 3. Accédez à http://127.0.0.1:7878/ depuis votre navigateur et essayez les appels API à partir de try-it-out. 4. Après avoir confirmé l'opération, appuyez en même temps sur [Control] + [C] dans le terminal pour terminer.

3. Déployer sur le cluster OpenShift 4

Pour autoriser les modifications de ce microservice, vous devez créer un référentiel dans le Docker Cloud (https://hub.docker.com/) afin de pouvoir pousser le conteneur nouvellement modifié.

  1. Exécutez les commandes suivantes pour créer l'image docker. Pour «», spécifiez votre nom d'utilisateur Docker Hub.

export DOCKERHUB_USERNAME=<your-dockerhub-username>

docker build -t $DOCKERHUB_USERNAME/currencyexchange-py:v0.0.1 .

docker login
  1. Poussez ensuite l'image vers le hub docker.
docker push $DOCKERHUB_USERNAME/currencyexchange-py:v0.0.1

À partir de là, utilisez la commande oc pour déployer sur OpenShift. * Recommandé après la v4.1.0

** Comment vérifier la version d'oc cli installé **

oc version
  1. Connectez-vous à ** IBM Cloud Dashboard ** depuis votre navigateur.

  2. Accédez à la page de votre cluster OpenShift et cliquez sur le bouton ** [console Web OpenShift] **.

  3. Cliquez sur ** [Copier la commande de connexion] ** dans le menu déroulant à côté du nom d'utilisateur affiché dans le coin supérieur droit de la console OpenShift pour obtenir les informations de connexion à OpenShfit à partir de la commande.

Veuillez traiter attentivement les informations affichées. Cette fois, copiez la commande répertoriée sous ** [Connectez-vous avec ce jeton] ** et exécutez-la depuis le terminal. ▼ Exemple de page d'informations d'identification affichée 6. Créez un nouveau projet avec la commande oc.

oc new-project currencyexchange-py
  1. Exécutez la commande suivante pour vérifier si le projet a été créé.

oc project
  1. Ensuite, ajoutez l'application.

oc new-app $DOCKERHUB_USERNAME/currencyexchange-py:v0.0.1

▼ Exemple de contenu de sortie affiché Dans la section en surbrillance jaune, vous pouvez voir que ** Red Hat Universal Base Image ** est l'image de base de votre déploiement Docker.

  1. Exécutez la commande suivante pour exposer le micro-service à l'extérieur.

oc expose svc/currencyexchange-py
  1. Vérifiez l'URL publique avec la commande oc status. L'itinéraire est maintenant exposé au monde extérieur et sera visible lorsque vous accédez à l'URL via Internet public.

oc status

▼ Exemple de contenu de sortie affiché La partie en surbrillance correspond aux informations d'URL accessibles au public.

▼ Exemple de site affiché en accédant à l'URL 

4. Surveillance des performances et de l’intégrité des microservices

Vous pouvez vérifier l'état de vos microservices à tout moment à l'aide du ** Tableau de bord de la console Web OpenShift **.

Vous avez maintenant créé une image de conteneur de microservices Python Flask à l'aide de UBI et l'avez éventuellement déployée sur un cluster RedHat OpenShift 4 sur IBM Cloud. Cette fois, c'est fini. Je vous remercie pour votre travail acharné.

Informations de référence

★ Les dernières informations sont diffusées sur Twitter @ayatokura

Recommended Posts

[Modèle de code] Comment déployer un exemple d'application d'échange sur OpenShift sur IBM Cloud à l'aide de Red Hat Universal Base Image (UBI)
Comment coder un drone en utilisant la reconnaissance d'image
Comment déployer une application Django dans le cloud Alibaba
Comment déployer une application Django sur heroku en seulement 5 minutes
Comment déployer une application Web sur Alibaba Cloud en tant que pigiste
Comment créer un package Python à l'aide de VS Code