Nasazení aplikace ze zdroje do Azure Red Hat OpenShiftu

V tomto článku nasadíte aplikaci do clusteru Azure Red Hat OpenShift ze zdrojového kódu pomocí sestavení S2I (source-to-image). Source-to-Image (S2I) je proces sestavení pro vytváření reprodukovatelných imagí kontejnerů ze zdrojového kódu. S2I vytvoří image připravené ke spuštění vložením zdrojového kódu do image kontejneru a umožní kontejneru připravit tento zdrojový kód ke spuštění. OpenShift může vytvořit aplikaci ze zdroje a nasadit ji, takže nemusíte kontejner vytvářet ručně při každé změně. OpenShift pak může automaticky sestavovat a nasazovat nové verze, když se zobrazí oznámení o změnách zdrojového kódu.

Než začnete

Poznámka:

Tento článek předpokládá, že jste nastavili tajný kód pro přijetí změn. Pokud nemáte tajný kód pro přijetí změn pro cluster, můžete podle dokumentace přidat nebo aktualizovat tajný kód pro přijetí změn z Red Hatu.

Vytvoření clusteru

Postupujte podle kurzu vytvoření clusteru Azure Red Hat OpenShift. Pokud se rozhodnete nainstalovat a používat rozhraní příkazového řádku (CLI) místně, musíte použít Azure CLI verze 2.6.0 nebo novější. Aktuální verzi zjistíte spuštěním az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Připojení ke clusteru

Ke správě clusteru Azure Red Hat OpenShift musíte použít oc, klienta příkazového řádku OpenShift.

Poznámka:

Doporučujeme nainstalovat příkazový řádek OpenShift v Azure Cloud Shellu a použít ho pro všechny operace příkazového řádku v tomto článku. Otevřete prostředí z shell.azure.com nebo vyberte odkaz:

Button to launch Azure Cloud Shell

Podle kurzu nainstalujte rozhraní příkazového řádku, načtěte přihlašovací údaje clusteru a připojte se ke clusteru pomocí webové konzoly a rozhraní příkazového řádku OpenShift.

Po přihlášení by se měla zobrazit zpráva s informací, že projekt používáte default .

Login successful.

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

Using project "default".

Vytvoření projektu

Pokud chcete vytvořit nový projekt s názvem demoproject, spusťte příkaz:

oc new-project demoproject

Měl by se zobrazit výstup podobný následujícímu:

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

Spuštění webové konzoly

Adresu URL webové konzoly clusteru zjistíte spuštěním následujícího příkazu:

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

Měla by se zobrazit adresa URL podobná této.

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

Spusťte adresu URL konzoly v prohlížeči a přihlaste se pomocí přihlašovacích kubeadmin údajů.

Azure Red Hat OpenShift login screen

Přepněte na perspektivu Vývojář namísto perspektivy Správa istrator v nabídce na levé straně a vyberte demoproject v seznamu projektů. Pak byste měli být na stránce Topologie projektu.

Azure Red Hat OpenShift project topology

Vzhledem k tomu, že projekt je prázdný, neměly by se najít žádné úlohy a zobrazí se různé možnosti nasazení aplikace.

Nasazení pomocí webové konzoly

V možnostech zobrazených pro nasazení aplikace vyberte z Gitu. Tím se dostanete na stránku Import z Gitu . Použijte https://github.com/sclorg/django-ex.git jako adresu URL úložiště Git. Ukázková webová aplikace se implementuje pomocí programovacího jazyka Python.

Azure Red Hat OpenShift project from Git

Poznámka:

OpenShift zjistí, že se jedná o projekt Pythonu, a vybere příslušnou image tvůrce.

Posuňte se dolů k rozšířeným možnostem a ujistěte se, že je zaškrtnuté políčko Vytvořit trasu do aplikace . Tato akce vytvoří trasu OpenShift, což je způsob, jak zpřístupnit službu tím, že jí poskytne externě dostupný název hostitele.

Azure Red Hat OpenShift project from Git - Route setup

Až budete připraveni, klikněte v dolní části stránky na Vytvořit. Tím se vytvoří prostředky pro správu sestavení a nasazení aplikace. Pak budete přesměrováni na přehled topologie projektu.

Azure Red Hat OpenShift project from Git - Topology

Přehled topologie poskytuje vizuální znázornění aplikace, kterou jste nasadili. V tomto zobrazení můžete zobrazit celkovou strukturu aplikace.

Na ikonu Gitu můžete kliknout a přejít do úložiště Git, ze kterého byl vytvořen zdrojový kód aplikace. Ikona zobrazená v levém dolním rohu zobrazuje stav sestavení aplikace. Kliknutím na tuto ikonu přejdete do oddílu podrobností o sestavení. Pokud aplikace odhalila trasy, můžete kliknutím na ikonu v pravém horním rohu otevřít adresu URL pro vytvořenou trasu aplikace.

Když aplikace vertikálně navyšuje nebo snižuje kapacitu a spouští se pody a vytváří se znovu, bude reprezentace aplikace v zobrazení topologie animované, abyste získali přehled o tom, co se děje v reálném čase.

Kliknutím na ikonu aplikace zobrazíte další podrobnosti, jak je znázorněno níže.

Azure Red Hat OpenShift project from Git - Details

Zobrazení protokolů tvůrce

Jakmile se sestavení spustí, klikněte na odkaz Zobrazit protokoly zobrazený na panelu Prostředky .

Azure Red Hat OpenShift project from Git - Build logs

To vám umožní sledovat průběh sestavení při jeho spuštění. Image tvůrce, Python v tomto případě, vloží zdrojový kód aplikace do konečné image předtím, než ji odešle do interního registru image OpenShift. Sestavení se úspěšně dokončí, když se zobrazí konečná zpráva "Push successful".

Přístup k aplikaci

Po dokončení sestavení image aplikace se nasadí.

Kliknutím na topologii v levém řádku nabídek se vrátíte do zobrazení topologie projektu. Když jste aplikaci vytvořili pomocí webové konzoly, automaticky se vytvořila trasa pro aplikaci a zobrazí se mimo cluster. Adresa URL, kterou lze použít pro přístup k aplikaci z webového prohlížeče, byla viditelná na kartě Prostředky pro aplikaci, kterou jste si zobrazili dříve.

V zobrazení topologie se můžete dostat na adresu URL nasazené aplikace kliknutím na ikonu v pravém horním rohu okruhu. Po dokončení nasazení klikněte na ikonu a měla by se zobrazit aplikace, kterou jste nasadili.

Azure Red Hat OpenShift project from Git - Browse app

Nasazení pomocí příkazového řádku

Dozvěděli jste se, jak nasadit aplikaci pomocí webové konzoly, teď umožňuje nasadit stejnou webovou aplikaci, ale tentokrát pomocí nástroje příkazového oc řádku.

Spuštěním následujícího příkazu odstraňte projekt a začněte znovu:

oc delete project demoproject

Měla by se zobrazit potvrzovací zpráva, že byla odstraněna demoproject .

project.project.openshift.io "demoproject" deleted

Znovu vytvořte demoproject spuštěním příkazu:

oc new-project demoproject

V rámci projektu vytvořte novou aplikaci ze zdroje na GitHubu a zadejte tvůrce S2I pro nejnovější dostupnou verzi Pythonu.

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

Výstup by měl vypadat přibližně takto:

--> 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 použije jako název aplikace název úložiště Git. Spuštěním následujícího příkazu zkontrolujte stav sestavení a nasazení:

oc status

Po dokončení sestavení a nasazení by se měl zobrazit podobný výstup.

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.

Pokud chcete zpřístupnit aplikaci mimo cluster OpenShift, budete muset vytvořit trasu spuštěním příkazu:

oc expose service/django-ex

Měli byste získat potvrzení.

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

Načtěte adresu URL spuštěním příkazu:

oc get route django-ex

Měli byste získat zpět název hostitele přiřazený k trase, kterou můžete použít k procházení nasazené aplikace.

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

Aktivace nového binárního sestavení

Při práci na aplikaci budete pravděpodobně chtít provést změny a zobrazit je nasazené. Můžete snadno nastavit webhook, který aktivuje nové sestavení a nasazení s každým potvrzením kódu. To ale nemusí být žádoucí, protože někdy byste chtěli vidět změny bez nutnosti nasdílení všech změn kódu do úložiště.

V případech, kdy rychle iterujete změny, můžete použít to, co se nazývá binární sestavení. Pokud chcete tento scénář předvést, naklonujte úložiště Git pro aplikaci místně spuštěním příkazu:

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

Vytvoří se podadresáři django-ex obsahující zdrojový kód pro aplikaci:

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.

Přejděte do podadresáři:

cd django-ex

Otevřete integrovaný editor Azure Cloud Shellu:

code welcome/templates/welcome/index.html

Posuňte se dolů a změňte řádek, který říká Welcome to your Django application on OpenShift , aby řekl Welcome to Azure Red Hat OpenShift. Uložte soubor a zavřete editor prostřednictvím ... nabídky v pravém horním rohu.

Azure Red Hat OpenShift project from Git - Edit application in Azure Cloud Shell editor

Spuštěním příkazu spusťte nový build:

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

Předáním příznaku --from-dir=. nahraje příkazový řádek OpenShift zdrojový kód ze zadaného adresáře a pak zahájí proces sestavení a nasazení. Měli byste získat výstup podobný následujícímu a po několika minutách by se mělo sestavení dokončit.

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

Pokud aktualizujete prohlížeč pomocí aplikace, měl by se zobrazit aktualizovaný název.

Azure Red Hat OpenShift project from Git - Browse updated app

Vyčištění prostředků

Po dokončení práce s aplikací můžete projekt odstranit spuštěním následujícího příkazu:

oc delete project demoproject

Cluster můžete odstranit také podle pokynů v kurzu: Odstranění clusteru Azure Red Hat OpenShift 4.

Další kroky

V této příručce jste se naučili:

  • Vytvoření projektu
  • Nasazení aplikace ze zdrojového kódu pomocí webové konzoly
  • Nasazení aplikace ze zdrojového kódu pomocí příkazového řádku OpenShift
  • Aktivace binárního sestavení pomocí příkazového řádku OpenShift

Přečtěte si další informace o tom, jak sestavovat a nasazovat aplikace pomocí zdrojové image a dalších strategií sestavení.