Pulogalamu ya ProHoster > Blog > Ulamuliro > Mapulogalamu amakono pa OpenShift, gawo 3: OpenShift ngati malo otukuka komanso Mapaipi a OpenShift
Mapulogalamu amakono pa OpenShift, gawo 3: OpenShift ngati malo otukuka komanso Mapaipi a OpenShift
Moni nonse pabulogu iyi! Ili ndi positi yachitatu pamndandanda womwe tikuwonetsa momwe mungatumizire mapulogalamu amakono pa Red Hat OpenShift.
M'mitu iwiri yapitayi, tidawonetsa momwe tingagwiritsire ntchito mapulogalamu amakono a intaneti m'masitepe ochepa chabe ndi momwe mungagwiritsire ntchito chithunzi chatsopano cha S2I pamodzi ndi chithunzi cha seva ya HTTP yapashelufu, monga NGINX, pogwiritsa ntchito maunyolo omangidwa kuti akonze zopangira zopangira. .
Lero tikuwonetsa momwe mungayendetsere seva yachitukuko ya pulogalamu yanu pa OpenShift nsanja ndikuyigwirizanitsa ndi mafayilo amtundu wakomweko, ndikukambirananso zomwe OpenShift Pipelines ali ndi momwe angagwiritsire ntchito ngati njira ina yolumikizirana.
OpenShift ngati malo achitukuko
Kupititsa patsogolo ntchito
Monga tanenera kale mu positi yoyamba, njira yachitukuko ya mapulogalamu amakono a intaneti ndi mtundu wina wa "ma seva a chitukuko" omwe amatsata kusintha kwa mafayilo am'deralo. Zikachitika, ntchito yomanga imayambika ndipo kenako imasinthidwa kukhala osatsegula.
M'zinthu zamakono zamakono, "seva yachitukuko" yotereyi imamangidwa muzitsulo zofananira za mzere wa malamulo.
Ndipo pulogalamu yathu idzatsegulidwa mu msakatuli wokhazikika:
Tsopano, ngati tisintha fayilo, pulogalamuyo iyenera kusinthidwa mu msakatuli.
Chabwino, zonse zimveka bwino ndi chitukuko mumachitidwe akomweko, koma momwe mungakwaniritsire zomwezo pa OpenShift?
Seva yachitukuko pa OpenShift
Ngati mukukumbukira, mu post yapitayi, tidayang'ana zomwe zimatchedwa gawo lothamanga la chithunzi cha S2I ndipo tidawona kuti mwachisawawa, gawo la seva lili ndi udindo wogwiritsa ntchito pulogalamu yathu yapaintaneti.
Komabe, ngati mutayang'anitsitsa yambitsani script kuchokera pachitsanzo chimenecho, ili ndi $ NPM_RUN zosintha zachilengedwe, zomwe zimakulolani kuti mupereke lamulo lanu.
Zindikirani: Chitsanzo chomwe chili pamwambachi chikufupikitsidwa kuti chiwonetsere lingaliro lonse.
Apa tawonjezera kusintha kwa chilengedwe cha NPM_RUN kuti titumize, zomwe zimatiuza nthawi yothamanga kuti tiyambe lamulo loyambira, lomwe limayambitsa seva yachitukuko cha React mkati mwa OpenShift pod.
Ngati muyang'ana chipika cha pod chothamanga, chidzawoneka motere:
Inde, zonsezi sizidzakhala kanthu mpaka titha kugwirizanitsa kachidindo kameneko ndi code, yomwe imayang'aniridwa kuti isinthe, koma imakhala pa seva yakutali.
Chifukwa chake titatha kulamula kuti titumize seva yachitukuko kuti tigwiritse ntchito, titha kugwiritsa ntchito lamulo ili motetezeka:
$ npx nodeshift watch
Chotsatira chake, kugwirizana kudzapangidwa ku pod yothamanga yomwe tidapanga kale pang'ono, kuyanjanitsa kwa mafayilo athu am'deralo ndi gulu lakutali lidzatsegulidwa, ndipo mafayilo pa dongosolo lathu lapafupi ayamba kuyang'aniridwa kuti asinthe.
Chifukwa chake, ngati tsopano tisintha fayilo ya src/App.js, dongosololi lichitapo kanthu pazosinthazi, kuzikopera kugulu lakutali ndikuyambitsa seva yachitukuko, yomwe idzasinthanso ntchito yathu mu msakatuli.
Lamulo la wotchi ndikukakamira pamwamba pa lamulo la oc rsync, mutha kuphunzira zambiri momwe limagwirira ntchito apa.
Ichi chinali chitsanzo cha React, koma njira yomweyo ingagwiritsidwe ntchito ndi zomangira zina, ingoyikani kusintha kwa chilengedwe cha NPM_RUN ngati kuli kofunikira.
β
Mapaipi a Openshift
Kenako tikambirana za chida ngati OpenShift Pipelines ndi momwe chingagwiritsire ntchito ngati njira ina yomanga unyolo.
Kodi OpenShift Pipelines ndi chiyani
OpenShift Pipelines ndi njira yophatikizira yosalekeza ya CI/CD yopangidwa kuti ikonzekere mapaipi pogwiritsa ntchito Tekton. Tekton ndi mawonekedwe otseguka a Kubernetes-native CI/CD omwe amakulolani kuti muzitha kutumizira pamapulatifomu osiyanasiyana (Kubernetes, makina opanda seva, makina enieni, ndi zina zambiri) pochotsa pansi.
Kumvetsetsa nkhaniyi kumafuna chidziwitso cha Pipelines, kotero tikukulimbikitsani kuti muwerenge kaye buku lovomerezeka.
Kukhazikitsa malo anu antchito
Kusewera ndi zitsanzo zomwe zili m'nkhaniyi, choyamba muyenera kukonzekera malo anu ogwirira ntchito:
Ikani ndi kukonza gulu la OpenShift 4. Zitsanzo zathu zimagwiritsa ntchito CodeReady Containers (CRD) pa izi, malangizo oyika omwe angapezeke. apa.
Malo ogwiritsira ntchito adzakhalanso ndi chikwatu cha k8s, chomwe chidzakhala ndi Kubernetes/OpenShift YAML zomwe zimagwiritsidwa ntchito kuyika pulogalamuyi. Padzakhala Ntchito, ClusterTasks, Resources ndi Mapaipi omwe tidzapanga mu izi nkhokwe.
Tiyeni tiyambe
Gawo loyamba la chitsanzo chathu ndikupanga pulojekiti yatsopano mugulu la OpenShift. Tiyeni tiyitane projekiti iyi webapp-pipeline ndikuipanga ndi lamulo ili:
$ oc new-project webapp-pipeline
Dzina la pulojekitiyi liziwoneka mu kachidindo mtsogolomo, kotero ngati mutasankha kutchula dzina lina, musaiwale kusintha kachidindo kameneka. Kuyambira pamenepa, sitidzapita pamwamba-pansi, koma pansi-mmwamba: ndiko kuti, tiyamba kupanga zigawo zonse za conveyor, ndiyeno pokhapokha woyendetsa yekha.
Kotero, choyamba ...
Ntchito
Tiyeni tipange ntchito zingapo, zomwe zitithandizira kuyika pulogalamuyo mkati mwa mapaipi athu. Ntchito yoyamba - apply_manifests_task - ili ndi udindo wogwiritsa ntchito YAML ya zinthu za Kubernetes (ntchito, kutumiza ndi njira) zomwe zili mufoda ya k8s ya pulogalamu yathu. Ntchito yachiwiri - update_deployment_task - ili ndi udindo wokonzanso chithunzi chomwe chatumizidwa kale ku chomwe chinapangidwa ndi payipi yathu.
$ tkn task ls
NAME AGE
apply-manifests 1 minute ago
update-deployment 1 minute ago
Zindikirani: Izi ndi ntchito zakomweko za polojekiti yanu yamakono.
Ntchito zamagulu
Ntchito zamagulu ndizofanana ndi ntchito zosavuta. Ndiko kuti, ndikusonkhanitsanso masitepe omwe amaphatikizidwa mwanjira imodzi kapena ina pogwira ntchito inayake. Kusiyanitsa ndikuti ntchito yamagulu imapezeka paliponse mkati mwa masango. Kuti muwone mndandanda wa ntchito zamagulu zomwe zimangopangidwa zokha powonjezera Pipeline Operator, tidzagwiritsanso ntchito lamulo la tkn CLI:
$ tkn clustertask ls
NAME AGE
buildah 1 day ago
buildah-v0-10-0 1 day ago
jib-maven 1 day ago
kn 1 day ago
maven 1 day ago
openshift-client 1 day ago
openshift-client-v0-10-0 1 day ago
s2i 1 day ago
s2i-go 1 day ago
s2i-go-v0-10-0 1 day ago
s2i-java-11 1 day ago
s2i-java-11-v0-10-0 1 day ago
s2i-java-8 1 day ago
s2i-java-8-v0-10-0 1 day ago
s2i-nodejs 1 day ago
s2i-nodejs-v0-10-0 1 day ago
s2i-perl 1 day ago
s2i-perl-v0-10-0 1 day ago
s2i-php 1 day ago
s2i-php-v0-10-0 1 day ago
s2i-python-3 1 day ago
s2i-python-3-v0-10-0 1 day ago
s2i-ruby 1 day ago
s2i-ruby-v0-10-0 1 day ago
s2i-v0-10-0 1 day ago
Tsopano tiyeni tipange ntchito zamagulu awiri. Yoyamba idzapanga chithunzi cha S2I ndikuchitumiza ku registry yamkati ya OpenShift; chachiwiri ndikumanga fano lathu lochokera ku NGINX, pogwiritsa ntchito pulogalamu yomwe tapanga kale monga zokhutira.
Pangani ndi kutumiza chithunzicho
Popanga ntchito yoyamba, tidzabwereza zomwe tachita kale m'nkhani yapitayi ponena za misonkhano yolumikizana. Kumbukirani kuti tidagwiritsa ntchito chithunzi cha S2I (ubi8-s2i-web-app) kuti "timange" pulogalamu yathu, ndikumaliza ndi chithunzi chosungidwa mu kaundula wamkati wa OpenShift. Tsopano tigwiritsa ntchito chithunzi cha pulogalamu ya S2I kuti tipange DockerFile ya pulogalamu yathu kenako kugwiritsa ntchito Buildah kuti mupange zomanga zenizeni ndikukankhira chithunzicho ku kaundula wamkati wa OpenShift, popeza ndizomwe OpenShift imachita mukayika mapulogalamu anu pogwiritsa ntchito NodeShift. .
Sitidzasanthula izi mwatsatanetsatane, koma tingoyang'ana pa OUTPUT_DIR parameter:
params:
- name: OUTPUT_DIR
description: The location of the build output directory
default: build
Mwachikhazikitso, parameter iyi ndi yofanana ndi kumanga, komwe React imayika zomwe zasonkhanitsidwa. Zomangamanga zina zimagwiritsa ntchito njira zosiyanasiyana, mwachitsanzo, ku Ember ndi dist. Kutulutsa kwa gulu lathu loyamba kudzakhala chithunzi chokhala ndi HTML, JavaScript, ndi CSS yomwe tasonkhanitsa.
Pangani chithunzi chotengera NGINX
Ponena za ntchito yathu yamagulu achiwiri, iyenera kutipangira chithunzi chozikidwa pa NGINX, pogwiritsa ntchito zomwe tapanga kale. Kwenikweni, ili ndi gawo la gawo lapitalo pomwe tidayang'ana zomanga zamaketani.
# This resource is the location of the git repo with the web application source
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
name: web-application-repo
spec:
type: git
params:
- name: url
value: https://github.com/nodeshift-starters/react-pipeline-example
- name: revision
value: master
Apa PipelineResource ndi yamtundu wa git. Kiyi ya url mu gawo la params imaloza kumalo enaake ndikutchula nthambi ya master (izi ndizosankha, koma timazilemba kuti zitheke).
Tsopano tiyenera kupanga chida cha chithunzi chomwe zotsatira za ntchito ya s2i-web-app zidzasungidwa, izi zimachitika motere:
# This resource is the result of running "npm run build", the resulting built files will be located in /opt/app-root/output
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
name: built-web-application-image
spec:
type: image
params:
- name: url
value: image-registry.openshift-image-registry.svc:5000/webapp-pipeline/built-web-application:latest
Apa PipelineResource ndi yamtundu wa chithunzi, ndipo mtengo wa url parameter umalozera ku OpenShift Image Registry, makamaka yomwe ili pa tsamba lapaipi lapaintaneti. Musaiwale kusintha izi ngati mukugwiritsa ntchito dzina lina.
# This resource is the image that will be just the static html, css, js files being run with nginx
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:
name: runtime-web-application-image
spec:
type: image
params:
- name: url
value: image-registry.openshift-image-registry.svc:5000/webapp-pipeline/runtime-web-application:latest
Apanso, zindikirani kuti chidachi chimasunga chithunzicho mu registry yamkati ya OpenShift mupaipi yapaintaneti ya webapp.
? Choose the git resource to use for web-application-repo: web-application-repo (https://github.com/nodeshift-starters/react-pipeline-example)
? Choose the image resource to use for built-web-application-image: built-web-application-image (image-registry.openshift-image-registry.svc:5000/webapp-pipeline/built-web-
application:latest)
? Choose the image resource to use for runtime-web-application-image: runtime-web-application-image (image-registry.openshift-image-registry.svc:5000/webapp-pipeline/runtim
e-web-application:latest)
Pipelinerun started: build-and-deploy-react-run-4xwsr