ProHoster > Blag > Riarachán > Feidhmchláir nua-aimseartha ar OpenShift, cuid 3: OpenShift mar thimpeallacht forbartha agus Píblínte OpenShift
Feidhmchláir nua-aimseartha ar OpenShift, cuid 3: OpenShift mar thimpeallacht forbartha agus Píblínte OpenShift
Dia duit gach duine ar an mblag seo! Is é seo an tríú post i sraith ina léirímid conas feidhmchláir ghréasáin nua-aimseartha a imscaradh ar Red Hat OpenShift.
Sa dá phost roimhe seo, thaispeáin muid conas feidhmchláir ghréasáin nua-aimseartha a imscaradh i roinnt céimeanna agus conas íomhá nua S2I a úsáid in éineacht le híomhá freastalaí HTTP as an tseilf, mar NGINX, ag baint úsáide as tógálacha slabhraithe chun imscaradh táirgeachta a stiúradh. .
Sa lá atá inniu taispeánfaimid conas freastalaí forbartha d'iarratas a reáchtáil ar an ardán OpenShift agus é a shioncrónú leis an gcóras comhad áitiúil, agus labhair freisin faoi cad iad Píblínte OpenShift agus conas is féidir iad a úsáid mar mhalairt ar thionóil nasctha.
OpenShift mar thimpeallacht forbartha
Sreabhadh oibre forbartha
Mar a dúradh cheana i chéad phost, níl sa ghnáthphróiseas forbartha d'fheidhmchláir ghréasáin nua-aimseartha ach "freastalaí forbartha" de chineál éigin a rianaíonn athruithe ar chomhaid áitiúla. Nuair a tharlaíonn siad, spreagtar tógáil an fheidhmchláir agus ansin déantar é a nuashonrú don bhrabhsálaí.
I bhformhór na gcreataí nua-aimseartha, tá “freastalaí forbartha” den sórt sin ionsuite sna huirlisí ordaithe comhfhreagracha.
Sampla áitiúil
Ar dtús, féachaimis conas a oibríonn sé seo agus feidhmchláir á rith go háitiúil. Glacaimis an t-iarratas mar shampla Freagairt ó ailt roimhe seo, cé go bhfuil beagnach na coincheapa sreabhadh oibre céanna i bhfeidhm i ngach creat nua-aimseartha eile.
Mar sin, chun an "freastalaí dev" a thosú inár sampla React, cuirfimid an t-ordú seo a leanas isteach:
$ npm run start
Ansin i bhfuinneog an teirminéil feicfimid rud éigin mar seo:
Agus osclóidh ár n-iarratas sa bhrabhsálaí réamhshocraithe:
Anois, má dhéanaimid athruithe ar an gcomhad, ba cheart an t-iarratas a nuashonrú sa bhrabhsálaí.
Ceart go leor, tá gach rud soiléir le forbairt i mód áitiúil, ach conas an rud céanna a bhaint amach ar OpenShift?
Freastalaí forbartha ar OpenShift
Más cuimhin leat, isteach post roimhe seo, d'fhéachamar ar an gcéim reáchtála mar a thugtar air den íomhá S2I agus chonaic muid go bhfuil an modúl freastal de réir réamhshocraithe freagrach as seirbhísiú ár n-iarratas gréasáin.
Mar sin féin, má ghlacann tú le breathnú níos dlúithe rith script ón sampla sin, tá an t-athróg timpeallachta $NPM_RUN ann, a ligeann duit d'ordú a fhorghníomhú.
Mar shampla, is féidir linn an modúl nódshift a úsáid chun ár n-iarratas a imscaradh:
Nóta: Tá an sampla thuas giorraithe chun an smaoineamh ginearálta a léiriú.
Anseo tá an t-athróg timpeallachta NPM_RUN curtha againn lenár n-imscaradh, a insíonn an t-am rite chun an t-ordú tosaithe snáth a rith, a thosaíonn an freastalaí forbartha React taobh istigh dár pod OpenShift.
Má fhéachann tú ar loga pod reatha, breathnóidh sé ar rud éigin mar seo:
Ar ndóigh, beidh sé seo go léir a bheith rud ar bith go dtí gur féidir linn a shioncrónú an cód áitiúil leis an gcód, a bhfuil monatóireacht freisin le haghaidh athruithe, ach ina chónaí ar fhreastalaí iargúlta.
Sioncrónú cód iargúlta agus áitiúil
Go fortunately, is féidir le nódshift cabhrú go héasca le sioncrónú, agus is féidir leat an t-ordú faire a úsáid chun athruithe a rianú.
Mar sin tar éis dúinn an t-ordú a rith chun an freastalaí forbartha dár n-iarratas a imscaradh, is féidir linn an t-ordú seo a leanas a úsáid go sábháilte:
$ npx nodeshift watch
Mar thoradh air sin, déanfar nasc leis an pod reatha a chruthaigh muid beagán níos luaithe, cuirfear sioncrónú ár gcomhaid áitiúla leis an gcnuasach iargúlta i ngníomh, agus cuirfear tús le monatóireacht a dhéanamh ar na comhaid ar ár gcóras áitiúil le haghaidh athruithe.
Mar sin, má nuashonraímid an comhad src/App.js anois, freagróidh an córas do na hathruithe seo, cóipeáil iad chuig an gcianbhraisle agus cuirfidh sé tús leis an bhfreastalaí forbartha, a nuashonróidh ár bhfeidhmchlár sa bhrabhsálaí ansin.
Chun an pictiúr a chríochnú, taispeánaimis an chuma atá ar na horduithe iomlána seo:
Is astarraingt é an t-ordú faire ar bharr an ordaithe oc rsync, is féidir leat níos mó a fhoghlaim faoi conas a oibríonn sé anseo.
Ba shampla é seo do React, ach is féidir an modh céanna a úsáid le creataí eile, níl le déanamh ach an t-athróg timpeallachta NPM_RUN a shocrú de réir mar is gá.
Píblínte Openshift
Ansin labhróimid faoi uirlis cosúil le Píblínte OpenShift agus conas is féidir é a úsáid mar mhalairt ar thógálacha slabhraithe.
Cad é Píblínte OpenShift
Is córas comhtháthaithe agus seachadta leanúnach CI/CD dúchais scamall é OpenShift Pipelines atá deartha chun píblínte a eagrú le Tekton. Is creat CI/CD foinse oscailte solúbtha Kubernetes ó dhúchas Kubernetes é Tekton a ligeann duit imscaradh a uathoibriú ar ardáin éagsúla (Kubernetes, gan fhreastalaí, meaisíní fíorúla, etc.) trí astarraingt ón mbunchiseal.
Teastaíonn roinnt eolais ar Phíblínte chun an t-alt seo a thuiscint, mar sin molaimid go láidir duit léamh ar dtús téacsleabhar oifigiúil.
Do thimpeallacht oibre a shocrú
Chun imirt leis na samplaí san Airteagal seo, ní mór duit do thimpeallacht oibre a ullmhú ar dtús:
Suiteáil agus cumraigh braisle OpenShift 4. Úsáideann ár samplaí CodeReady Containers (CRD) chuige seo, agus is féidir treoracha suiteála a fháil dó anseo.
Tar éis don bhraisle a bheith réidh, ní mór duit Oibreoir Píblíne a shuiteáil air. Ná bíodh eagla ort, tá sé éasca, treoracha suiteála anseo.
Rith an uirlis líne ordaithe create-react-app chun feidhmchlár a chruthú a úsáidfidh tú ansin (feidhmchlár simplí é seo Freagairt).
(Roghnach) Clón an stór chun an t-iarratas samplach a reáchtáil go háitiúil le npm install agus ansin tosú npm.
Beidh fillteán k8s sa stór feidhmchlár freisin, ina mbeidh na Kubernetes/OpenShift YAMLs a úsáidtear chun an feidhmchlár a imscaradh. Beidh Tascanna, Tascanna Cnuasaithe, Acmhainní agus Píblínte a chruthóimid chuige seo stórtha.
Ar aghaidh linn
Is é an chéad chéim dár sampla ná tionscadal nua a chruthú sa bhraisle OpenShift. Glaoimis ar webapp-píblíne an tionscadail seo agus cruthóimid é leis an ordú seo a leanas:
$ oc new-project webapp-pipeline
Beidh ainm an tionscadail seo le feiceáil sa chód níos déanaí, mar sin má shocraíonn tú rud éigin eile a ainmniú, ná déan dearmad an cód samplach a chur in eagar dá réir. Ag tosú ón bpointe seo, ní bheidh muid ag dul ón mbarr anuas, ach ón mbun aníos: is é sin, cruthóimid comhpháirteanna uile an iompair ar dtús, agus gan ach ansin an conveyor féin.
Mar sin, ar an gcéad dul síos ...
Tascanna
Déanaimis cúpla tasc a chruthú, a chabhróidh ansin an t-iarratas a imscaradh laistigh dár bpíblíne. Is é an chéad tasc - apply_manifests_task - atá freagrach as YAML na n-acmhainní Kubernetes sin (seirbhís, imscaradh agus bealach) atá suite i bhfillteán k8s ár n-iarratas a chur i bhfeidhm. Tá an dara tasc - update_deployment_task - freagrach as íomhá atá imlonnaithe cheana féin a nuashonrú chuig an gceann a chruthaigh ár bpíblíne.
Ná bíodh imní ort mura bhfuil sé an-soiléir fós. Go deimhin, tá na tascanna seo cosúil le fóntais, agus déanfaimid breathnú orthu go mion beagán níos déanaí. Faoi láthair, déanaimis iad a chruthú:
Ansin, ag baint úsáide as an ordú tkn CLI, seiceálfaimid gur cruthaíodh na tascanna:
$ tkn task ls
NAME AGE
apply-manifests 1 minute ago
update-deployment 1 minute ago
Nóta: Is tascanna áitiúla iad seo do do thionscadal reatha.
Tascanna braisle
Go bunúsach is ionann tascanna braisle agus tascanna simplí. Is é sin, is bailiúchán ath-inúsáidte céimeanna é a chuirtear le chéile ar bhealach amháin nó ar bhealach eile agus tasc ar leith á rith. Is é an difríocht ná go bhfuil tasc braisle ar fáil i ngach áit laistigh den bhraisle. Chun liosta na dtascanna braisle a chruthaítear go huathoibríoch a fheiceáil nuair a chuirtear Oibreoir Píblíne leis, úsáidfimid an t-ordú tkn CLI arís:
$ 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
Anois déanaimis dhá thasc braisle a chruthú. Ginfidh an chéad cheann íomhá S2I agus seolfaidh sé chuig an gclárlann inmheánach OpenShift í; is é an dara ceann ná ár n-íomhá a thógáil bunaithe ar NGINX, ag baint úsáide as an iarratas atá tógtha againn cheana féin mar ábhar.
Cruthaigh agus seol an íomhá
Agus an chéad tasc á chruthú, déanfaimid an méid a rinneamar cheana féin san alt roimhe seo faoi chomhthionóil nasctha arís. Thabhairt chun cuimhne gur úsáideamar an íomhá S2I (ubi8-s2i-web-app) chun ár bhfeidhmchlár a “thógáil”, agus ar deireadh bhí íomhá a bhí stóráilte sa chlár inmheánach OpenShift. Anois úsáidfimid an íomhá app gréasáin S2I seo chun DockerFile a chruthú dár n-aip agus ansin úsáidfimid Buildah chun an tógáil iarbhír a dhéanamh agus an íomhá mar thoradh air a bhrú chuig clárlann inmheánach OpenShift, mar sin é go díreach a dhéanann OpenShift nuair a imlonnaíonn tú d'fheidhmchláir ag baint úsáide as NodeShift .
Cén chaoi a raibh a fhios againn seo go léir, a fhiafraíonn tú? Ó leagan oifigiúil node.js, rinneamar é a chóipeáil agus a mhodhnú dúinn féin.
Mar sin, cruthaimis anois an tasc braisle s2i-web-app:
Ní dhéanfaimid anailís mhionsonraithe air seo, ach díreoimid ar an bparaiméadar OUTPUT_DIR amháin:
params:
- name: OUTPUT_DIR
description: The location of the build output directory
default: build
De réir réamhshocraithe, tá an paraiméadar seo comhionann le tógáil, agus is é sin an áit a gcuireann React an t-ábhar le chéile. Úsáideann creataí eile cosáin éagsúla, mar shampla, in Ember tá sé dist. Beidh aschur ár gcéad tasc braisle ina íomhá ina mbeidh an HTML, JavaScript, agus CSS a bhailigh muid.
Tóg íomhá bunaithe ar NGINX
Maidir lenár dara tasc braisle, ba cheart go dtógfadh sé íomhá NGINX-bhunaithe dúinn, ag baint úsáide as ábhar an fheidhmchláir atá tógtha againn cheana féin. Go bunúsach, is é seo an chuid den alt roimhe seo inar bhreathnaigh muid ar thógálacha slabhraithe.
Chun seo a dhéanamh, cruthóimid - díreach mar an gcéanna leis díreach thuas - tasc braisle webapp-build-runtime:
Má fhéachann tú ar chód na gcnuasach tascanna seo, is féidir leat a fheiceáil nach sonraíonn sé an stór Git a bhfuil muid ag obair leis nó ainmneacha na n-íomhánna atá á gcruthú againn. Ní shonraímid ach cad go díreach atá á aistriú againn chuig Git, nó íomhá áirithe inar cheart an íomhá deiridh a aschur. Sin é an fáth gur féidir na tascanna braisle seo a athúsáid agus tú ag obair le feidhmchláir eile.
Agus seo muid go galánta ar aghaidh go dtí an chéad phointe eile ...
Acmhainní
Mar sin, ós rud é, mar a dúirt muid díreach, gur cheart go mbeadh tascanna braisle chomh ginearálta agus is féidir, ní mór dúinn acmhainní a chruthú a úsáidfear mar ionchur (stór Git) agus mar aschur (na híomhánna deiridh). Is é an chéad acmhainn a theastaíonn uainn ná Git, áit a bhfuil cónaí ar ár bhfeidhmchlár, rud mar seo:
# 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
Anseo tá PipelineResource den chineál git. Díríonn an eochair url sa chuid params ar stór ar leith agus sonraítear an máistirbhrainse (tá sé seo roghnach, ach scríobhaimid é le haghaidh iomláine).
Anois caithfimid acmhainn a chruthú don íomhá ina sábhálfar torthaí an taisc s2i-web-app, déantar é seo mar seo:
# 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
Anseo tá an PipelineResource de chineál íomhá, agus díríonn luach an pharaiméadar url chuig an gClárlann Íomhá OpenShift inmheánach, go sonrach an ceann atá suite san ainmspás píblíne webapp. Ná déan dearmad an socrú seo a athrú má tá ainmspás eile in úsáid agat.
Agus ar deireadh, beidh an acmhainn dheireanach a bheidh ag teastáil uainn freisin den chineál íomhá agus is é seo an íomhá NGINX deiridh a úsáidfear ansin le linn imscaradh:
# 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
Arís, tabhair faoi deara go stórálann an acmhainn seo an íomhá sa chlár inmheánach OpenShift san ainmspás píblíne webapp.
Chun na hacmhainní seo go léir a chruthú ag an am céanna, bainimid úsáid as an ordú cruthaigh:
Cruthaímid ansin na tascanna a chaithfidh ár bpíblíne a chur i gcrích. Ar an gcéad dul síos, caithfidh sé an tasc s2i-web-app atá cruthaithe againn cheana féin a fheidhmiú:
Glacann an tasc seo paraiméadair ionchuir (gir acmhainn) agus aschuir (acmhainn tógtha-gréasáin-iarratas-íomhá). Tugaimid paraiméadar speisialta dó freisin ionas nach bhfíoraíonn sé TLS ós rud é go bhfuilimid ag baint úsáide as deimhnithe féin-shínithe:
Mar a tharla leis an tasc roimhe seo, a chuirimid ar acmhainn, ach anois tá sé tógtha-gréasáin-iarratas-íomhá (aschur ár tasc roimhe seo). Agus mar aschur leagaimid an íomhá arís. Ós rud é go gcaithfear an tasc seo a dhéanamh tar éis an ceann roimhe seo, cuirimid an réimse runAfter leis:
Tá an chéad dá thasc eile freagrach as úsáid a bhaint as seirbhís, bealach agus imscaradh comhaid YAML a chónaíonn in eolaire k8s ár bhfeidhmchlár gréasáin, agus freisin as an imscaradh seo a nuashonrú agus íomhánna nua á gcruthú. Rinneamar sainmhíniú ar an dá thasc bhraisle seo ag tús an ailt.
Ag tosú an iompair
Mar sin, cruthaítear gach cuid dár bpíblíne, agus reáchtálfaimid é leis an ordú seo a leanas:
$ tkn pipeline start build-and-deploy-react
Ag an gcéim seo, úsáidtear an líne ordaithe go hidirghníomhach agus ní mór duit na hacmhainní cuí a roghnú mar fhreagra ar gach ceann dá iarratais: don acmhainn git, roghnaigh web-application-repo, ansin don chéad acmhainn íomhá, feidhmchlár tógtha-gréasáin -image, agus ar deireadh, le haghaidh acmhainn an dara híomhá -runtime-web-appplication-image:
? 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
Anois, déanaimis stádas na píblíne a sheiceáil ag baint úsáide as an ordú seo a leanas:
$ tkn pipeline logs -f
Nuair a bheidh an píblíne tosaithe agus an t-iarratas imscaradh, is féidir linn an bealach foilsithe a iarraidh leis an ordú seo a leanas:
$ oc get route react-pipeline-example --template='http://{{.spec.host}}'
Le haghaidh léirshamhlú níos fearr, is féidir leat féachaint ar ár bpíblíne sa mhodh Forbróra den chonsól gréasáin sa rannán Píblínte, mar a thaispeántar i bhFíor. 1.
Fíor.1. Athbhreithniú ar phíblínte reatha.
Má chliceálann tú ar phíblíne reatha, léirítear sonraí breise, mar a thaispeántar i bhFíor 2.
Rís. 2. Eolas breise faoin bpíblíne.
Tar éis tuilleadh eolais a fháil, is féidir leat feidhmchláir reatha a fheiceáil san amharc topology, mar a thaispeántar i bhFíor.3.
Fig 3. Pod seolta.
Má chliceálann tú ar an gciorcal sa chúinne uachtarach ar dheis den íocón osclaíonn sé ár bhfeidhmchlár, mar a thaispeántar i bhFíor 4.
Rís. 4. Feidhmchlár Running React.
Conclúid
Mar sin, thaispeáin muid conas freastalaí forbartha a reáchtáil do d’iarratas ar OpenShift agus é a shioncronú leis an gcóras comhad áitiúil. D’fhéachamar freisin ar conas teimpléad slabhraithe a insamhladh ag baint úsáide as Píblínte OpenShift. Is féidir gach cód samplach ón alt seo a fháil anseo.
Táimid ag cur tús le sraith de sheimineáir ghréasáin Dé hAoine faoi thaithí dúchais ag baint úsáide as Red Hat OpenShift Container Platform agus Kubernetes: