[PYTHON] [Codemuster] Bereitstellen einer Beispielaustausch-App für OpenShift in der IBM Cloud mithilfe von Red Hat Universal Base Image (UBI)

Hallo zusammen. Das ist Aya Tokura.

Dieses Mal wird es als ** Codemuster ** auf der ** IBM Developer ** Site ** veröffentlicht. ["Bereitstellen einer Beispielaustausch-App für OpenShift mithilfe von Red Hat Universal Base Image. ]](Https://developer.ibm.com/jp/patterns/deploy-to-openshift-4-redhat-universal-base-image/) **, mit Betriebsverfahren und zusätzlichen Kommentaren als japanische Referenzübersetzung Ich werde es auch vorstellen.

Überblick

In diesem Artikel werden die Schritte zum Bereitstellen einer in Python unter Red Hat OpenShift in IBM Cloud unter Verwendung des Red Hat Universal Base Image (UBI) geschriebenen Beispielanwendung für den Geldwechsel beschrieben. Nach Abschluss dieses Vorgangs können Sie die folgenden Fähigkeiten erwerben.

Was ist das Red Hat Universal Base Image (UBI)?

Image des Betriebssystems für Container mit Red Hat Enterprise Linux (RHEL) als Kern. Mit anderen Worten, für Benutzer, die RHEL bereits verwenden, ist es möglich, ein Bild zu erstellen, das Qualität kombiniert. Sie können ein Bild auf jeder Plattform erstellen, es nach Belieben weitergeben und ausführen, wo immer Sie möchten. Weitere Informationen finden Sie auf der offiziellen Red Hat-Website.

wichtiger Punkt

Als Cloud-Umgebung verwenden wir einen Red Hat OpenShift-Cluster in der IBM Cloud. Wenn Sie die Open Shift on IBM Cloud-Umgebung für den Workshop beim Open Shift-Seminar von IBM Developer Dojo erhalten haben, können Sie sie verwenden.

Vorbereitungen

Sie müssen die folgenden Tools und Umgebungen bereithalten.

Gesamtflussbild

1. Innerhalb des Beispielaustausch-Mikroservices ruft ein Verbraucher der Client-API den Mikroservice über das Internet auf. (http (s) Anfrage) 2. Der Python Flask-Prozess fungiert als "Webserver" und akzeptiert REST-Anforderungen (z. B. GET / convertCurrency / ZAR / USD / 600.66). 3. Der Code, der die Anforderung in Flask weiterleitet, leitet die Anforderung an das Servicemodul weiter, das die External European Currency Exchange API (https://api.exchangeratesapi.io/) aufruft. 4. Beispielsweise wird der Wechselkurs des südafrikanischen Landes (ZAR) erfasst und gespeichert. Der ZAR-Wert von 600,66 wird in US-Dollar (USD) umgerechnet. 5. Flask antwortet, indem er dem anrufenden Verbraucher einen Dollarbetrag (in diesem Beispiel 40,59 USD) sendet.

Gebrauchsprozedur

1. Klonen Sie das GitHub-Repository lokal

  1. Führen Sie den folgenden Befehl vom Terminal aus, um die auf GitHub veröffentlichte Beispielanwendung zu klonen.
git clone https://github.com/IBM/python-ubi-openshift.git
  1. Wenn der Klon abgeschlossen ist, verschieben Sie den Arbeitsort mit dem folgenden Befehl.
cd python-ubi-openshift

2. Erstellen Sie das Docker-Image und führen Sie es lokal aus

  1. Geben Sie für "" Ihren eigenen DockerHub-Benutzernamen an und erstellen und führen Sie das Docker-Image lokal aus.

** Für Mac OS **


export DOCKERHUB_USERNAME=<your-dockerhub-username>

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

** Für Windows **


SETX DOCKERHUB_USERNAME "your-dockerhub-username"

docker build -t $DOCKERHUB_USERNAME/currencyexchange-py:v0.0.1 .
** Beispiel für den Ausgabeinhalt nach der Befehlsausführung **
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. Führen Sie das erstellte Image tatsächlich lokal aus.

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

Sie können überprüfen, ob der Exchange-Microservice-Docker-Container ausgeführt wird, indem Sie ein anderes Terminal öffnen und den Befehl docker ps ausführen. 3. Greifen Sie über Ihren Browser auf http://127.0.0.1:7878/ zu und versuchen Sie API-Aufrufe von "try-it-out". 4. Drücken Sie nach Bestätigung des Vorgangs gleichzeitig [Strg] + [C] im Terminal, um den Vorgang abzuschließen.

3. Bereitstellen auf OpenShift 4-Cluster

Um Änderungen an diesem Microservice zuzulassen, müssen Sie ein Repository in der Docker Cloud (https://hub.docker.com/) erstellen, damit Sie den neu geänderten Container verschieben können.

  1. Führen Sie die folgenden Befehle aus, um das Docker-Image zu erstellen. Geben Sie für "" Ihren Docker Hub-Benutzernamen an.

export DOCKERHUB_USERNAME=<your-dockerhub-username>

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

docker login
  1. Schieben Sie das Image dann zum Docker-Hub.
docker push $DOCKERHUB_USERNAME/currencyexchange-py:v0.0.1

Verwenden Sie von hier aus den Befehl oc, um ihn für OpenShift bereitzustellen. * Empfohlen nach v4.1.0

** So überprüfen Sie die Version der installierten oc cli **

oc version
  1. Melden Sie sich über Ihren Browser bei ** IBM Cloud Dashboard ** an.

  2. Gehen Sie zu Ihrer OpenShift-Clusterseite und klicken Sie auf die Schaltfläche ** [OpenShift-Webkonsole] **.

  3. Klicken Sie im Dropdown-Menü neben Ihrem Benutzernamen in der oberen rechten Ecke der OpenShift-Konsole auf ** [Anmeldebefehl kopieren] **, um Informationen zum Anmelden bei OpenShfit über den Befehl abzurufen.

Bitte gehen Sie sorgfältig mit den angezeigten Informationen um. Kopieren Sie dieses Mal den unter ** [Mit diesem Token anmelden] ** aufgeführten Befehl und führen Sie ihn vom Terminal aus. ▼ Beispiel einer angezeigten Seite mit Anmeldeinformationen 6. Erstellen Sie mit dem Befehl oc ein neues Projekt.

oc new-project currencyexchange-py
  1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob das Projekt erstellt wurde.

oc project
  1. Fügen Sie als Nächstes die Anwendung hinzu.

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

▼ Beispiel für den angezeigten Ausgabeinhalt Im gelben Hervorhebungsbereich sehen Sie, dass ** Red Hat Universal Base Image ** das Basis-Image für Ihre Docker-Bereitstellung ist.

  1. Führen Sie den folgenden Befehl aus, um den Mikrodienst nach außen freizulegen.

oc expose svc/currencyexchange-py
  1. Überprüfen Sie die öffentliche URL mit dem Befehl oc status. Die Route ist jetzt der Außenwelt ausgesetzt und wird sichtbar, wenn Sie über das öffentliche Internet auf die URL zugreifen.

oc status

▼ Beispiel für den angezeigten Ausgabeinhalt Der hervorgehobene Teil sind die öffentlich verfügbaren URL-Informationen.

▼ Beispiel einer Site, die durch Zugriff auf die URL angezeigt wird 

4. Microservice-Leistung und Gesundheitsüberwachung

Sie können den Status Ihrer Microservices jederzeit mit dem ** OpenShift Web Console Dashboard ** überprüfen.

Sie haben jetzt erfolgreich ein Python Flask Microservices-Container-Image mit UBI erstellt und es optional in einem RedHat OpenShift 4-Cluster in der IBM Cloud bereitgestellt. Diese Zeit ist vorbei. Danke für deine harte Arbeit.

Referenzinformationen

★ Die neuesten Informationen werden auf Twitter @ayatokura bereitgestellt.

Recommended Posts

[Codemuster] Bereitstellen einer Beispielaustausch-App für OpenShift in der IBM Cloud mithilfe von Red Hat Universal Base Image (UBI)
So codieren Sie eine Drohne mithilfe der Bilderkennung
So stellen Sie eine Django-Anwendung in der Alibaba-Cloud bereit
So stellen Sie eine Django-App in nur 5 Minuten für Heroku bereit
So stellen Sie eine Webanwendung in der Alibaba Cloud als Freiberufler bereit
So erstellen Sie ein Python-Paket mit VS Code