Delen via


Een toepassing implementeren van de bron naar Azure Red Hat OpenShift

In dit artikel implementeert u een toepassing in een Azure Red Hat OpenShift-cluster vanuit broncode met behulp van een S2I-build (source-to-image). Source-to-Image (S2I) is een buildproces voor het bouwen van reproduceerbare containerinstallatiekopieën uit broncode. S2I produceert kant-en-klare installatiekopieën door broncode in een containerinstallatiekopieën te injecteren en de container die broncode voor te bereiden voor uitvoering. U kunt OpenShift een toepassing laten bouwen vanuit de bron om deze te implementeren, zodat u bij elke wijziging niet handmatig een container hoeft te maken. OpenShift kan vervolgens automatisch nieuwe versies bouwen en implementeren wanneer er een melding wordt ontvangen van wijzigingen in de broncode.

Voordat u begint

Notitie

In dit artikel wordt ervan uitgegaan dat u een pull-geheim hebt ingesteld. Als u geen pull-geheim voor uw cluster hebt, kunt u de documentatie volgen om uw Red Hat-pull-geheim toe te voegen of bij te werken.

Een cluster maken

Volg de zelfstudie om een Azure Red Hat OpenShift-cluster te maken. Als u ervoor kiest om de opdrachtregelinterface (CLI) lokaal te installeren en te gebruiken, moet u voor deze zelfstudie Azure CLI versie 2.6.0 of hoger gebruiken. Voer az --version uit om uw huidige versie te vinden. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Verbinding maken met het cluster

Als u een Azure Red Hat OpenShift-cluster wilt beheren, moet u oc gebruiken, de OpenShift-opdrachtregelclient.

Notitie

U wordt aangeraden OpenShift-opdrachtregel te installeren in Azure Cloud Shell en dat u deze gebruikt voor alle opdrachtregelbewerkingen in dit artikel. Open de shell vanuit shell.azure.com of selecteer de koppeling:

Knop voor het starten van Azure Cloud Shell

Volg de zelfstudie om uw CLI te installeren, uw clusterreferenties op te halen en verbinding te maken met het cluster met de webconsole en de OpenShift CLI.

Zodra u bent aangemeld, ziet u een bericht waarin staat dat u het default project gebruikt.

Login successful.

You have access to 61 projects, the list has been suppressed. You can list all projects with 'oc projects'

Using project "default".

Een project maken

Voer de opdracht uit om een nieuw project te maken met de naam demoproject:

oc new-project demoproject

Als het goed is, ziet u een uitvoer die vergelijkbaar is met:

Now using project "demoproject" on server "https://api.wzy5hg7x.eastus.aroapp.io:6443".

You can add applications to this project with the 'new-app' command. For example, try:

    oc new-app django-psql-example

to build a new example application in Python. Or use kubectl to deploy a simple Kubernetes application:

    kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node

De webconsole starten

Zoek de URL van de clusterwebconsole uit door het volgende uit te voeren:

 az aro show \
    --name <cluster name> \
    --resource-group <resource group> \
    --query "consoleProfile.url" -o tsv

U moet een URL krijgen die vergelijkbaar is met deze URL.

https://console-openshift-console.apps.wzy5hg7x.eastus.aroapp.io/

Start de console-URL in een browser en meld u aan met de referenties van kubeadmin.

Aanmeldingsscherm voor Azure Red Hat OpenShift

Schakel over naar het perspectief Ontwikkelaars in plaats van het perspectief Beheerder in het menu aan de linkerkant en selecteer demoproject in de lijst met projecten. U moet vervolgens op de pagina Topologie voor het project staan.

Azure Red Hat OpenShift-projecttopologie

Omdat het project leeg is, moeten er geen workloads worden gevonden en krijgt u verschillende opties te zien voor het implementeren van een toepassing.

Implementeren met behulp van de webconsole

Selecteer in de opties die worden weergegeven voor het implementeren van een toepassing de optie In Git. Hiermee komt u terecht op de pagina Importeren vanuit Git . Gebruik https://github.com/sclorg/django-ex.git deze url als de URL van de Git-opslagplaats. De voorbeeldwebtoepassing wordt geïmplementeerd met behulp van de Python-programmeertaal.

Azure Red Hat OpenShift-project vanuit Git

Notitie

OpenShift detecteert dat dit een Python-project is en selecteert de juiste opbouwinstallatiekopieën.

Schuif omlaag naar Geavanceerde opties en zorg ervoor dat Een route naar de toepassing maken is ingeschakeld. Met deze actie wordt een OpenShift-route gemaakt, een manier om een service beschikbaar te maken door deze een extern bereikbaar hostnaam te geven.

Azure Red Hat OpenShift-project vanuit Git - Route-installatie

Wanneer u klaar bent, klikt u onder aan de pagina op Maken. Hiermee worden resources gemaakt om de build en implementatie van de toepassing te beheren. Vervolgens wordt u omgeleid naar het topologieoverzicht voor het project.

Azure Red Hat OpenShift-project van Git - Topologie

Het overzicht van de topologie biedt een visuele weergave van de toepassing die u hebt geïmplementeerd. In deze weergave ziet u de algehele toepassingsstructuur.

U kunt op het Git-pictogram klikken om u naar de Git-opslagplaats te brengen waaruit de broncode voor de toepassing is gebouwd. Het pictogram linksonder toont de buildstatus van de toepassing. Als u op dit pictogram klikt, gaat u naar de sectie met builddetails. Als de toepassing routes bevat, kan op het pictogram rechtsboven worden geklikt om de URL te openen voor de toepassingsroute die is gemaakt.

Terwijl de toepassing omhoog of omlaag wordt geschaald, worden de implementaties en het opnieuw maken van pods gestart, de toepassingsweergave in de topologieweergave geanimeerd om u een realtime weergave te geven van wat er aan de hand is.

Als u op het toepassingspictogram klikt, worden meer details weergegeven, zoals hieronder wordt weergegeven.

Azure Red Hat OpenShift-project van Git - Details

De opbouwlogboeken weergeven

Zodra de build is gestart, klikt u op de koppeling Logboeken weergeven die wordt weergegeven in het deelvenster Resources .

Azure Red Hat OpenShift-project vanuit Git - Build-logboeken

Hiermee kunt u de voortgang van de build bijhouden terwijl deze wordt uitgevoerd. De installatiekopieën van de builder, Python in dit geval, injecteren de broncode van de toepassing in de uiteindelijke installatiekopieën voordat deze naar het interne register van de OpenShift-installatiekopieën wordt gepusht. De build is voltooid wanneer u het laatste bericht 'Push geslaagd' ziet.

Toegang tot de toepassing

Zodra de build van de toepassingsinstallatiekopie is voltooid, wordt deze geïmplementeerd.

Klik op Topologie in de linkermenubalk om terug te keren naar de topologieweergave voor het project. Wanneer u de toepassing hebt gemaakt met behulp van de webconsole, is er automatisch een route gemaakt voor de toepassing en wordt deze buiten het cluster weergegeven. De URL die kan worden gebruikt voor toegang tot de toepassing vanuit een webbrowser, is zichtbaar op het tabblad Resources voor de toepassing die u eerder hebt bekeken.

Vanuit de topologieweergave kunt u naar de URL voor de geïmplementeerde toepassing gaan door te klikken op het pictogram rechtsboven in de ring. Wanneer de implementatie is voltooid, klikt u op het pictogram en ziet u de toepassing die u hebt geïmplementeerd.

Azure Red Hat OpenShift-project vanuit Git - Bladeren door app

Implementeren met behulp van de opdrachtregel

U hebt geleerd hoe u een toepassing implementeert met behulp van de webconsole. Nu kunt u dezelfde webtoepassing implementeren, maar nu met behulp van het oc opdrachtregelprogramma.

Voer de volgende opdracht uit om het project te verwijderen en opnieuw te beginnen:

oc delete project demoproject

U ontvangt een bevestigingsbericht dat het demoproject is verwijderd.

project.project.openshift.io "demoproject" deleted

Maak het opnieuw door het demoproject volgende uit te voeren:

oc new-project demoproject

Maak in het project een nieuwe toepassing op basis van de bron op GitHub, waarbij u de S2I-opbouwfunctie opgeeft voor de nieuwste versie van Python.

oc new-app python:latest~https://github.com/sclorg/django-ex.git

Dit moet uitvoer weergeven die vergelijkbaar is met:

--> Found image 8ec6f0d (4 weeks old) in image stream "openshift/python" under tag "latest" for "python:latest"

    Python 3.8
    ----------
   [...]

    Tags: builder, python, python38, python-38, rh-python38

    * A source build using source code from https://github.com/sclorg/django-ex.git will be created
      * The resulting image will be pushed to image stream tag "django-ex:latest"
      * Use 'oc start-build' to trigger a new build
    * This image will be deployed in deployment config "django-ex"
    * Port 8080/tcp will be load balanced by service "django-ex"
      * Other containers can access this service through the hostname "django-ex"

--> Creating resources ...
    imagestream.image.openshift.io "django-ex" created
    buildconfig.build.openshift.io "django-ex" created
    deploymentconfig.apps.openshift.io "django-ex" created
    service "django-ex" created
--> Success
    Build scheduled, use 'oc logs -f bc/django-ex' to track its progress.
    Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
     'oc expose svc/django-ex'
    Run 'oc status' to view your app.

OpenShift gebruikt de naam van de Git-opslagplaats als de naam voor de toepassing. Controleer de status van de build en implementatie door het volgende uit te voeren:

oc status

Wanneer de build en implementatie is voltooid, ziet u een vergelijkbare uitvoer.

In project demoproject on server https://api.wzy5hg7x.eastus.aroapp.io:6443

svc/django-ex - 172.30.200.50:8080
  dc/django-ex deploys istag/django-ex:latest <-
    bc/django-ex source builds https://github.com/sclorg/django-ex.git on openshift/python:latest
    deployment #1 deployed about a minute ago - 1 pod


2 infos identified, use 'oc status --suggest' to see details.

Als u de toepassing buiten het OpenShift-cluster beschikbaar wilt maken, moet u een route maken door het volgende uit te voeren:

oc expose service/django-ex

U moet een bevestiging krijgen.

route.route.openshift.io/django-ex exposed

Haal de URL op door het volgende uit te voeren:

oc get route django-ex

U moet de hostnaam terughalen die is toegewezen aan de route die u kunt gebruiken om naar de geïmplementeerde toepassing te bladeren.

NAME        HOST/PORT                                              PATH   SERVICES    PORT       TERMINATION   WILDCARD
django-ex   django-ex-demoproject.apps.wzy5hg7x.eastus.aroapp.io          django-ex   8080-tcp                 None

Een nieuwe binaire build activeren

Wanneer u aan de toepassing werkt, wilt u waarschijnlijk wijzigingen aanbrengen en deze implementeren. U kunt eenvoudig een webhook instellen die een nieuwe build en implementatie activeert bij elke codedoorvoering. Dit is echter mogelijk niet wenselijk, omdat u de wijzigingen soms wilt zien zonder dat u elke codewijziging naar de opslagplaats hoeft te pushen.

In gevallen waarin u snel wijzigingen doorgeeft, kunt u de zogenaamde binaire build gebruiken. Om dit scenario te demonstreren, kloont u de Git-opslagplaats voor de toepassing lokaal door het volgende uit te voeren:

git clone https://github.com/sclorg/django-ex.git

Hiermee maakt u een submap django-ex met de broncode voor de toepassing:

Cloning into 'django-ex'...
remote: Enumerating objects: 980, done.
remote: Total 980 (delta 0), reused 0 (delta 0), pack-reused 980
Receiving objects: 100% (980/980), 276.23 KiB | 4.85 MiB/s, done.
Resolving deltas: 100% (434/434), done.

Ga naar de submap:

cd django-ex

Open de geïntegreerde Azure Cloud Shell-editor:

code welcome/templates/welcome/index.html

Schuif omlaag en wijzig de regel die Welcome to your Django application on OpenShift u wilt zeggen Welcome to Azure Red Hat OpenShift. Sla het bestand op en sluit de editor via het ... menu rechtsboven.

Azure Red Hat OpenShift-project vanuit Git - Toepassing bewerken in Azure Cloud Shell-editor

Start een nieuwe build door de opdracht uit te voeren:

oc start-build django-ex --from-dir=. --wait

Door de --from-dir=. vlag door te geven, uploadt de OpenShift-opdrachtregel de broncode uit de opgegeven map en start het build- en implementatieproces. U moet een uitvoer krijgen die vergelijkbaar is met de onderstaande, en na een paar minuten moet de build worden voltooid.

Uploading directory "." as binary input for the build ...
.
Uploading finished
build.build.openshift.io/django-ex-2 started

Als u de browser vernieuwt met de toepassing, ziet u de bijgewerkte titel.

Azure Red Hat OpenShift-project vanuit Git - Door bijgewerkte app bladeren

Resources opschonen

Wanneer u klaar bent met de toepassing, kunt u de volgende opdracht uitvoeren om het project te verwijderen:

oc delete project demoproject

U kunt het cluster ook verwijderen door de instructies in zelfstudie te volgen: Een Azure Red Hat OpenShift 4-cluster verwijderen.

Volgende stappen

In deze handleiding hebt u het volgende geleerd:

  • Een project maken
  • Een toepassing implementeren vanuit broncode met behulp van de webconsole
  • Een toepassing implementeren vanuit broncode met behulp van de OpenShift-opdrachtregel
  • Een binaire build activeren met behulp van de OpenShift-opdrachtregel

Meer informatie over het bouwen en implementeren van toepassingen met behulp van bron-naar-installatiekopieën en andere buildstrategieën.