ProHoster > Blag > Riarachán > Feidhmchláir nua-aimseartha ar OpenShift, cuid 2: tógálacha slabhraithe
Feidhmchláir nua-aimseartha ar OpenShift, cuid 2: tógálacha slabhraithe
Dia duit gach duine! Is é seo an dara post inár sraith ina léirímid conas feidhmchláir ghréasáin nua-aimseartha a imscaradh ar Red Hat OpenShift.
Sa phost roimhe seo, rinneamar teagmháil beagán le cumas íomhá tógálaí nua S2I (foinse go híomhá), atá deartha chun feidhmchláir ghréasáin nua-aimseartha a thógáil agus a imscaradh ar an ardán OpenShift. Ansin bhí suim againn san ábhar feidhmchlár a imscaradh go tapa, agus inniu beimid ag féachaint ar conas íomhá S2I a úsáid mar íomhá tógálaí “íon” agus é a chomhcheangal le tionóil OpenShift gaolmhara.
Íomhá tógálaí glan
Mar a luadh againn i gCuid XNUMX, tá céim tógála mar a thugtar air ag an gcuid is mó d'fheidhmchláir ghréasáin nua-aimseartha, a dhéanann oibríochtaí de ghnáth mar thras-sreabhadh cód, comh- chomhghathaithe iolrach, agus mionú. Stóráiltear na comhaid a fhaightear mar thoradh ar na hoibríochtaí seo - agus is HTML statach, JavaScript agus CSS é seo san fhillteán aschuir. Braitheann suíomh an fhillteáin seo de ghnáth ar na huirlisí tógála atá á n-úsáid, agus le haghaidh React is é seo an fillteán ./build (beidh muid ag teacht ar ais chuige seo níos mine thíos).
Foinse go hÍomhá (S2I)
Sa phost seo ní dhéanaimid teagmháil leis an ábhar “cad é S2I agus conas é a úsáid” (is féidir leat tuilleadh a léamh faoi seo anseo), ach tá sé tábhachtach a bheith soiléir faoin dá chéim sa phróiseas seo chun tuiscint a fháil ar cad a dhéanann íomhá Tógálaí App Gréasáin.
Céim an Tionóil
Tá an chéim tionóil an-chosúil i nádúr leis an méid a tharlaíonn nuair a ritheann tú tógáil docker agus deireadh suas le íomhá Docker nua. Dá réir sin, tarlaíonn an chéim seo nuair a chuirtear tús le tógáil ar an ardán OpenShift.
I gcás íomhá Web App Builder, tá sé freagrach as spleáchais d'fheidhmchláir a shuiteáil agus an tógáil a reáchtáil. script a bhailiú. De réir réamhshocraithe, úsáideann an íomhá tógálaí an tógáil npm run build, ach is féidir é seo a shárú tríd an athróg timpeallachta NPM_BUILD.
Mar a dúirt muid níos luaithe, braitheann suíomh an fheidhmchláir chríochnaithe atá tógtha cheana féin ar na huirlisí a úsáideann tú. Mar shampla, i gcás React is é seo an fillteán ./build, agus i gcás feidhmchláir Uillinneacha is é an fillteán project_name/dist a bheidh ann. Agus, mar a léiríodh cheana sa phost roimhe seo, is féidir suíomh an eolaire aschuir, atá socraithe le tógáil de réir réamhshocraithe, a shárú tríd an athróg timpeallachta OUTPUT_DIR. Bhuel, ós rud é go bhfuil suíomh an fhillteáin aschuir difriúil ó chreat go creat, ní dhéanann tú ach an t-aschur ginte a chóipeáil chuig an bhfillteán caighdeánach san íomhá, eadhon /opt/apt-root/output. Tá sé seo tábhachtach chun an chuid eile den alt seo a thuiscint, ach faoi láthair déanaimis breathnú go tapa ar an gcéad chéim eile - an chéim reatha.
rith chéim
Tarlaíonn an chéim seo nuair a dhéantar glao go rith duga ar an íomhá nua a cruthaíodh le linn na céime tionóil. Tarlaíonn an rud céanna nuair a imscartar ar an ardán OpenShift. Réamhshocrú rith script úsáidí freastal modúl chun freastal ar ábhar statach atá suite san eolaire aschuir chaighdeánach thuas.
Tá an modh seo go maith chun feidhmchláir a imscaradh go tapa, ach go ginearálta ní mholtar ábhar statach a sheirbheáil ar an mbealach seo. Bhuel, ós rud é i ndáiríre ní dhéanaimid freastal ach ar ábhar statach, ní gá Node.js a shuiteáil taobh istigh dár n-íomhá - is leor freastalaí gréasáin.
I bhfocail eile, agus muid ag cur le chéile teastaíonn rud amháin uainn, agus muid ag déanamh forghníomhaithe teastaíonn rud eile uainn. Sa chás seo, tá tógáil slabhraithe áisiúil.
Tógann slabhraithe
Is é seo a scríobhann siad faoi tógálacha chained i gcáipéisíocht OpenShift:
“Is féidir dhá chomhthionól a nascadh le chéile, ceann amháin ag giniúint aonán tiomsaithe agus an ceann eile ag óstáil an t-aonán sin in íomhá ar leith a úsáidtear chun an t-aonán sin a rith.”
I bhfocail eile, is féidir linn íomhá Web App Builder a úsáid chun ár dtógáil a reáchtáil, agus ansin an íomhá freastalaí gréasáin, an NGINX céanna, a úsáid chun ár n-ábhar a sheirbheáil.
Mar sin, is féidir linn íomhá Web App Builder a úsáid mar thógálaí “íon” agus ag an am céanna íomhá bheag ama rite a bheith againn.
Anois, déanaimis breathnú ar seo le sampla ar leith.
Le haghaidh oiliúna úsáidfimid feidhmchlár React simplí, cruthaithe ag baint úsáide as an uirlis líne ordaithe create-react-app.
Breathnaímid ar an gcomhad seo níos mine, agus cuirimis tús leis an gcuid paraiméadair.
parameters:
- name: SOURCE_REPOSITORY_URL
description: The source URL for the application
displayName: Source URL
required: true
- name: SOURCE_REPOSITORY_REF
description: The branch name for the application
displayName: Source Branch
value: master
required: true
- name: SOURCE_REPOSITORY_DIR
description: The location within the source repo of the application
displayName: Source Directory
value: .
required: true
- name: OUTPUT_DIR
description: The location of the compiled static files from your web apps builder
displayName: Output Directory
value: build
required: false
Tá gach rud anseo soiléir go leor, ach is fiú aird a thabhairt ar an bparaiméadar OUTPUT_DIR. Maidir leis an iarratas React inár sampla, níl aon rud imní ort, ós rud é go n-úsáideann React an luach réamhshocraithe mar an fillteán aschuir, ach i gcás uilleach nó rud éigin eile, beidh gá an paraiméadar seo a athrú de réir mar is gá.
Anois, déanaimis féachaint ar an rannóg ImageStreams.
Féach ar an tríú agus an ceathrú híomhá. Sainmhínítear iad araon mar íomhánna Docker, agus is féidir leat a fheiceáil go soiléir cén áit a dtagann siad.
Is é an tríú híomhá ná web-app-tógálaí agus tagann sé ó nodeshift/ubi8-s2i-web-app clibáilte 10.x ar Mol docker.
Is é an ceathrú íomhá NGINX (leagan 1.12) leis an gclib is déanaí ar Mol docker.
Anois féachaimis ar an gcéad dá íomhá. Tá siad araon folamh ó thús agus ní chruthaítear iad ach le linn na céime tógála. Beidh an chéad íomhá, react-web-app-builder, mar thoradh ar chéim tionóil a chomhcheangail íomhá gréasáin-app-tógálaí-runtime agus ár gcód foinse. Sin é an fáth gur chuireamar “-builder” le hainm na híomhá seo.
Beidh an dara íomhá - react-web-app-runtime - mar thoradh ar nginx-image-runtime agus roinnt comhaid ón íomhá react-web-app-builder a chomhcheangal. Bainfear úsáid as an íomhá seo freisin le linn imlonnaithe agus ní bheidh inti ach an freastalaí gréasáin agus HTML statach, JavaScript, CSS ár bhfeidhmchlár.
Mearbhall? Anois, déanaimis féachaint ar na cumraíochtaí tógála agus beidh sé beagán níos soiléire.
Tá dhá chumraíocht tógála ag ár dteimpléad. Seo an chéad cheann, agus tá sé caighdeánach go leor:
Mar a fheiceann tú, deir an líne le lipéad 1 go gcuirfear toradh an tógáil seo san íomhá tógálaí react-web-app-app céanna a chonaic muid beagán níos luaithe sa chuid ImageStreams.
Insíonn an líne lipéadaithe 2 duit cá háit ar féidir leat an cód a fháil. Is é ár gcás, is stór git é seo, agus déantar an suíomh, an tagairt agus an fillteán comhthéacs a chinneadh ag na paraiméadair a chonaic muid thuas cheana féin.
Is é an líne lipéadaithe 3 an méid a chonaic muid cheana féin sa chuid paraiméadair. Cuireann sé leis an athróg timpeallachta OUTPUT_DIR, atá inár shampla a thógáil.
Deir an líne lipéadaithe 4 úsáid a bhaint as an íomhá gréasáin-app-builder-runtime, a chonaic muid cheana féin sa rannóg ImageStream.
Deir Líne lipéadaithe 5 gur mhaith linn tógáil incriminteach a úsáid má thacaíonn íomhá S2I leis, agus má dhéanann an íomhá Web App Builder. Ag an gcéad seoladh, tar éis an chéim tionóil a chríochnú, sábhálfaidh an íomhá an fillteán node_modules isteach i gcomhad cartlainne. Ansin, nuair a ritheann sé ina dhiaidh sin, ní dhéanfaidh an íomhá ach an fillteán seo a dhízipeáil chun am tógála a laghdú.
Agus ar deireadh, níl sa líne lipéadaithe 6 ach cúpla truicear chun an tógáil a dhéanamh go huathoibríoch, gan idirghabháil láimhe, nuair a athraíonn rud éigin.
Tríd is tríd is cumraíocht tógála caighdeánach go leor é seo.
Anois, déanaimis féachaint ar chumraíocht an dara tógáil. Tá sé an-chosúil leis an gcéad cheann, ach tá difríocht thábhachtach amháin ann.
Mar sin is é an dara cumraíocht tógáil ná react-web-app-runtime, agus tosaíonn sé go leor caighdeánach.
Níl aon rud nua ag baint leis an líne lipéadaithe 1 - deir sé go simplí go gcuirtear an toradh tógála isteach san íomhá react-web-app-runtime.
Léiríonn an líne lipéadaithe 2, mar a bhí sa chumraíocht roimhe seo, cá háit ar féidir an cód foinse a fháil. Ach faoi deara go bhfuil anseo táimid ag rá go bhfuil sé tógtha as an íomhá. Thairis sin, ón íomhá a chruthaigh muid díreach - ó react-web-app-builder (léirithe i líne lipéadaithe 3). Tá na comhaid ba mhaith linn a úsáid taobh istigh den íomhá agus tá a suíomh ansin socraithe i líne lipéadaithe 4, inár gcás is é /opt/app-root/output/ é. Más cuimhin leat, is é seo an áit a stóráiltear na comhaid a ghintear bunaithe ar thorthaí ár n-iarratas a thógáil.
Níl sa fhillteán ceann scríbe atá sonraithe sa téarma le lipéad 5 ach an t-eolaire reatha (is é seo go léir, cuimhnigh, ag rith taobh istigh de rud draíochta éigin ar a dtugtar OpenShift, agus ní ar do ríomhaire áitiúil).
Tá cuid na straitéise – líne lipéadaithe 6 – cosúil leis an gcumraíocht chéad thógáil freisin. Is é an uair seo amháin atáimid chun nginx-image-runtime a úsáid, rud a chonaic muid cheana féin sa rannóg ImageStream.
Ar deireadh, tá an líne lipéadaithe 7 ina chuid de thriogairí a ghníomhóidh an tógáil seo gach uair a athraíonn an íomhá tógálaí react-web-app-.
Seachas sin, tá cumraíocht imlonnaithe chaighdeánach go leor sa teimpléad seo, chomh maith le rudaí a bhaineann le seirbhísí agus bealaí, ach ní thabharfaimid an iomarca sonraí sin. Tabhair faoi deara le do thoil gurb é an íomhá react-web-app-runtime an íomhá a imlonnófar.
Imscaradh Feidhmchláir
Mar sin anois agus muid tar éis féachaint ar an teimpléad, féachaimis conas é a úsáid chun feidhmchlár a imscaradh.
Is féidir linn an uirlis cliant OpenShift ar a dtugtar oc a úsáid chun ár teimpléad a úsáid:
Is mar a chéile an patrún anseo, seachas an athróg OUTPUT_DIR.
Forlíonadh 2
San Airteagal seo d'úsáideamar NGINX mar fhreastalaí gréasáin, ach tá sé éasca go leor é a chur ina ionad le Apache, níl le déanamh ach an teimpléad sa chomhad a athrú Íomhá NGINX ar Grianghraf Apache.
Conclúid
Sa chéad chuid den tsraith seo, léirigh muid conas feidhmchláir ghréasáin nua-aimseartha a imscaradh go tapa ar an ardán OpenShift. Sa lá atá inniu d'fhéachamar ar cad a dhéanann íomhá App Gréasáin agus conas is féidir é a chomhcheangal le freastalaí gréasáin íon mar NGINX ag baint úsáide as tógálacha slabhraithe chun tógáil feidhmchláir níos réidh le táirgeadh a chruthú. Sa chéad alt eile agus an t-alt deiridh sa tsraith seo, taispeánfaimid conas freastalaí forbartha a reáchtáil d'iarratas ar OpenShift agus sioncrónú comhaid áitiúla agus iargúlta a chinntiú.
Cuid 2: Conas íomhá S2I nua a úsáid le híomhá freastalaí HTTP atá ann cheana féin, mar shampla NGINX, ag baint úsáide as tionóil OpenShift gaolmhara le haghaidh imscaradh táirgeachta;
Cuid 3: conas freastalaí forbartha a reáchtáil d’iarratas ar an ardán OpenShift agus é a shioncrónú leis an gcóras comhad áitiúil.