ProHoster > Blog > Rianachd > Tagraidhean ùr-nodha air OpenShift, pàirt 3: OpenShift mar àrainneachd leasachaidh agus OpenShift Pipelines
Tagraidhean ùr-nodha air OpenShift, pàirt 3: OpenShift mar àrainneachd leasachaidh agus OpenShift Pipelines
Halo a h-uile duine air a’ bhlog seo! Is e seo an treas post ann an sreath anns a bheil sinn a’ sealltainn mar a chleachdas tu tagraidhean lìn ùr-nodha air Red Hat OpenShift.
Anns an dà phost roimhe, sheall sinn mar a chleachdas sinn tagraidhean lìn ùr-nodha ann am beagan cheumannan agus mar a chleachdas tu ìomhaigh S2I ùr còmhla ri ìomhaigh frithealaiche HTTP far-na-sgeilp, leithid NGINX, a’ cleachdadh toglaichean slabhraidh gus cleachdadh cinneasachaidh a chuir air dòigh. .
An-diugh seallaidh sinn mar a ruitheas tu frithealaiche leasachaidh airson an tagradh agad air an àrd-ùrlar OpenShift agus sioncronaich e leis an t-siostam faidhle ionadail, agus bruidhnidh sinn cuideachd mu dè a th’ ann am Pìoban OpenShift agus mar as urrainnear an cleachdadh mar roghainn eile an àite co-chruinneachaidhean ceangailte.
OpenShift mar àrainneachd leasachaidh
Sruth-obrach leasachaidh
Mar a chaidh ainmeachadh cheana ann an chiad phost, tha am pròiseas leasachaidh àbhaisteach airson tagraidhean lìn an latha an-diugh dìreach mar sheòrsa de “fhrithealaiche leasachaidh” a bhios a’ cumail sùil air atharrachaidhean air faidhlichean ionadail. Nuair a thachras iad, thèid togail an tagraidh a phiobrachadh agus an uairsin thèid ùrachadh don bhrobhsair.
Anns a’ mhòr-chuid de fhrèamaichean an latha an-diugh, tha “frithealaiche leasachaidh” mar sin air a thogail a-steach do na h-innealan loidhne-àithne co-fhreagarrach.
Eisimpleir ionadail
An toiseach, chì sinn mar a bhios seo ag obair nuair a bhios tu a’ ruith thagraidhean gu h-ionadail. Gabhamaid an tagradh mar eisimpleir React bho artaigilean roimhe, ged a tha cha mhòr na h-aon bhun-bheachdan sruth-obrach a’ buntainn ris a h-uile frèam ùr-nodha eile.
Mar sin, gus an “dev server” a thòiseachadh san eisimpleir React againn, cuiridh sinn a-steach an àithne a leanas:
$ npm run start
An uairsin ann an uinneag a’ chrìoch chì sinn rudeigin mar seo:
Agus fosglaidh an tagradh againn sa bhrobhsair bunaiteach:
A-nis, ma nì sinn atharrachadh air an fhaidhle, bu chòir don aplacaid ùrachadh sa bhrobhsair.
Ceart gu leòr, tha a h-uile dad soilleir le leasachadh ann am modh ionadail, ach ciamar a choileanas tu an aon rud air OpenShift?
Frithealaiche leasachaidh air OpenShift
Ma tha cuimhne agad, a-steach post roimhe, thug sinn sùil air an ìre ruith ris an canar ìomhaigh S2I agus chunnaic sinn gu bheil am modal seirbheis an urra ri bhith a’ seirbheiseachadh ar tagradh lìn.
Ge-tà, ma bheir thu sùil nas mionaidiche ruith sgriobt bhon eisimpleir sin, tha an caochladair àrainneachd $NPM_RUN ann, a leigeas leat an àithne agad a chuir an gnìomh.
Mar eisimpleir, is urrainn dhuinn am modal nodeshift a chleachdadh gus an tagradh againn a chleachdadh:
Nota: Tha an eisimpleir gu h-àrd air a ghiorrachadh gus am beachd coitcheann a nochdadh.
An seo tha sinn air caochladair àrainneachd NPM_RUN a chuir ris a’ chleachdadh againn, a dh’ innseas don ùine ruith an àithne tòiseachaidh snàth a ruith, a thòisicheas am frithealaiche leasachaidh React taobh a-staigh ar pod OpenShift.
Ma choimheadas tu air log pod ruith, seallaidh e rudeigin mar seo:
Gu dearbh, bidh seo uile gun dad gus an urrainn dhuinn an còd ionadail a shioncronachadh leis a ’chòd, a tha cuideachd air a sgrùdadh airson atharrachaidhean, ach a’ fuireach air frithealaiche iomallach.
Sioncronaich còd iomallach is ionadail
Gu fortanach, faodaidh nodeshift cuideachadh gu furasta le sioncronadh, agus faodaidh tu an àithne faire a chleachdadh gus sùil a chumail air atharrachaidhean.
Mar sin às deidh dhuinn an àithne a ruith gus an frithealaiche leasachaidh a chuir a-steach airson ar tagradh, is urrainn dhuinn an àithne a leanas a chleachdadh gu sàbhailte:
$ npx nodeshift watch
Mar thoradh air an sin, thèid ceangal a dhèanamh ris a’ pod ruith a chruthaich sinn beagan na bu thràithe, thèid sioncronadh ar faidhlichean ionadail leis a’ bhuidheann iomallach a chuir an gnìomh, agus tòisichidh sùil air na faidhlichean air an t-siostam ionadail againn airson atharrachaidhean.
Mar sin, ma dh’ ùraicheas sinn am faidhle src/App.js a-nis, bheir an siostam freagairt air na h-atharrachaidhean sin, dèan lethbhreac dhiubh chun bhuidheann iomallach agus tòisichidh am frithealaiche leasachaidh, a bheir ùrachadh air an tagradh againn sa bhrobhsair.
Gus an dealbh a chrìochnachadh, seallaidh sinn cò ris a tha na h-òrdughan slàn seo coltach:
Tha an àithne faire na tharraing a bharrachd air an àithne oc rsync, faodaidh tu barrachd ionnsachadh mu mar a tha e ag obair an seo.
Bha seo na eisimpleir airson React, ach faodar an dearbh dhòigh a chleachdadh le frèaman eile, dìreach suidhich caochladair àrainneachd NPM_RUN mar a dh’ fheumar.
Pìoban Openshift
An ath rud bruidhnidh sinn mu inneal mar OpenShift Pipelines agus mar as urrainnear a chleachdadh mar dhòigh eile air togalaichean slabhraidh.
Dè a th’ ann am pìoban OpenShift
Tha OpenShift Pipelines na shiostam amalachaidh agus lìbhrigidh leantainneach CI/CD dùthchasach a chaidh a dhealbhadh airson pìoban a chuir air dòigh a’ cleachdadh Tekton. Tha Tekton na fhrèam sùbailte fosgailte CI / CD dùthchasach Kubernetes a leigeas leat cleachdadh gu fèin-ghluasadach air diofar àrd-ùrlaran (Kubernetes, gun fhrithealaiche, innealan brìgheil, msaa) le bhith a’ toirt a-mach às an t-sreath bhunasach.
Feumaidh tuigse air an artaigil seo beagan eòlais air Pìoban, agus mar sin tha sinn a’ moladh gu làidir gun leugh thu an toiseach leabhar-teacsa oifigeil.
Stèidhich an àrainneachd obrach agad
Gus cluich leis na h-eisimpleirean san artaigil seo, feumaidh tu an àrainneachd obrach agad ullachadh an-toiseach:
Stàlaich agus rèitich brabhsair OpenShift 4. Bidh na h-eisimpleirean againn a’ cleachdadh CodeReady Containers (CRD) airson seo, agus gheibhear stiùireadh stàlaidh airson seo an seo.
Às deidh don bhuidheann a bhith deiseil, feumaidh tu Gnìomhaiche Pìoba a chuir a-steach air. Na biodh eagal ort, tha e furasta, stiùireadh stàlaidh an seo.
Ruith an inneal loidhne-àithne create-react-app gus tagradh a chruthachadh a chleachdas tu an uairsin (is e tagradh sìmplidh a tha seo React).
(Roghainneil) Clone an stòr gus an tagradh eisimpleir a ruith gu h-ionadail le stàladh npm agus an uairsin tòisich npm.
Bidh pasgan k8s aig stòr an tagraidh cuideachd, anns am bi na Kubernetes / OpenShift YAMLs a chleachdar gus an tagradh a chleachdadh. Bidh Gnìomhan, Tasglannan Cluster, Goireasan agus Pìoban ann a chruthaicheas sinn ann an seo tasgaidh.
Feuch an tòisich sinn
Is e a’ chiad cheum airson an eisimpleir againn pròiseact ùr a chruthachadh anns a’ bhuidheann OpenShift. Canaidh sinn webapp-pipeline a’ phròiseict seo agus cruthaich e leis an àithne a leanas:
$ oc new-project webapp-pipeline
Nochdaidh an t-ainm pròiseict seo sa chòd nas fhaide air adhart, mar sin ma cho-dhùnas tu rudeigin eile ainmeachadh, na dìochuimhnich an còd eisimpleir a dheasachadh a rèir sin. A 'tòiseachadh bhon àm seo, cha tèid sinn bhon mhullach sìos, ach bhon bhonn gu h-àrd: is e sin, cruthaichidh sinn an toiseach a h-uile pàirt den ghiùladair, agus dìreach an uairsin an inneal-giùlain fhèin.
Mar sin, an toiseach ...
Gnìomhan
Cruthaichidh sinn gnìomh no dhà, a chuidicheas an uairsin le bhith a’ cleachdadh an tagraidh taobh a-staigh ar loidhne-phìoban. Tha a’ chiad obair - apply_manifests_task - an urra ri bhith a’ cur an sàs YAML de na goireasan Kubernetes sin (seirbheis, cleachdadh agus slighe) a tha suidhichte ann am pasgan k8s an tagraidh againn. Tha an dàrna gnìomh - update_deployment_task - an urra ri bhith ag ùrachadh ìomhaigh a chaidh a chleachdadh mar-thà chun fhear a chruthaich ar loidhne-phìoban.
Na gabh dragh mura h-eil e gu math soilleir fhathast. Gu dearbh, tha na gnìomhan sin rudeigin mar ghoireasan, agus bheir sinn sùil nas mionaidiche orra beagan nas fhaide air adhart. Airson a-nis, cruthaichidh sinn iad:
An uairsin, a’ cleachdadh an àithne tkn CLI, nì sinn cinnteach gun deach na gnìomhan a chruthachadh:
$ tkn task ls
NAME AGE
apply-manifests 1 minute ago
update-deployment 1 minute ago
Nota: Is e gnìomhan ionadail a tha seo airson do phròiseact gnàthach.
Gnìomhan buidheann
Tha gnìomhan cnuasachaidh gu bunaiteach an aon rud ri gnìomhan sìmplidh. Is e sin, is e cruinneachadh ath-chleachdadh de cheumannan a th’ ann a thèid a chur còmhla ann an dòigh air choreigin nuair a bhios tu a’ ruith gnìomh sònraichte. Is e an diofar gu bheil gnìomh brabhsair ri fhaighinn anns a h-uile àite taobh a-staigh a’ bhuidheann. Gus an liosta de ghnìomhan brabhsair fhaicinn a thèid a chruthachadh gu fèin-ghluasadach nuair a chuireas sinn Gnìomhaiche Pìoba ris, cleachdaidh sinn an àithne tkn CLI a-rithist:
$ 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
A-nis cruthaichidh sinn dà ghnìomh brabhsair. Ginidh a’ chiad fhear an ìomhaigh S2I agus cuiridh e chun chlàr OpenShift a-staigh e; is e an dàrna fear an ìomhaigh againn a thogail stèidhichte air NGINX, a’ cleachdadh an aplacaid a tha sinn air a thogail mar-thà mar shusbaint.
Cruthaich agus cuir an ìomhaigh
Nuair a chruthaicheas sinn a’ chiad obair, nì sinn a-rithist na rinn sinn mu thràth san artaigil roimhe mu cho-chruinneachaidhean ceangailte. Cuimhnich gun do chleachd sinn an ìomhaigh S2I (ubi8-s2i-web-app) gus an tagradh againn “a thogail”, agus mu dheireadh thàinig sinn gu bhith le ìomhaigh air a stòradh sa chlàr a-staigh OpenShift. A-nis cleachdaidh sinn an ìomhaigh app lìn S2I seo gus DockerFile a chruthachadh airson an aplacaid againn agus an uairsin cleachdaidh sinn Buildah gus an fhìor thogail a dhèanamh agus an ìomhaigh a thig às a phutadh gu clàr a-staigh OpenShift, oir is e sin dìreach a bhios OpenShift a ’dèanamh nuair a chleachdas tu na tagraidhean agad a’ cleachdadh NodeShift .
Ciamar a bha fios againn air seo uile, tha thu a’ faighneachd? Bho dreach oifigeil de Node.js, tha sinn dìreach air a chopaigeadh agus air atharrachadh dhuinn fhìn.
Mar sin, a-nis cruthaichidh sinn gnìomh brabhsair s2i-web-app:
Cha dèan sinn mion-sgrùdadh air seo, ach cha chuir sinn fòcas ach air paramadair OUTPUT_DIR:
params:
- name: OUTPUT_DIR
description: The location of the build output directory
default: build
Gu gnàthach, tha am paramadair seo co-ionann ri togail, agus sin far a bheil React a’ cur an t-susbaint cruinnichte. Bidh frèaman eile a’ cleachdadh diofar shlighean, mar eisimpleir, ann an Ember tha e dist. Is e toradh a’ chiad ghnìomh cnuasachaidh againn ìomhaigh anns a bheil an HTML, JavaScript, agus CSS a chruinnich sinn.
Tog ìomhaigh stèidhichte air NGINX
A thaobh an dàrna gnìomh brabhsair againn, bu chòir dha ìomhaigh stèidhichte air NGINX a thogail dhuinn, a’ cleachdadh susbaint an tagraidh a thog sinn mu thràth. Gu bunaiteach, is e seo am pàirt den roinn roimhe far an do choimhead sinn air togalaichean slabhraidh.
Gus seo a dhèanamh, cruthaichidh sinn - dìreach mar a tha dìreach gu h-àrd - gnìomh brabhsair webapp-build-runtime:
Ma choimheadas tu air còd nan gnìomhan cnuasachaidh sin, chì thu nach eil e a’ sònrachadh an stòr Git leis a bheil sinn ag obair no ainmean nan ìomhaighean a tha sinn a’ cruthachadh. Cha bhith sinn a’ sònrachadh ach dè dìreach a tha sinn a’ gluasad gu Git, no ìomhaigh sònraichte far am bu chòir an dealbh mu dheireadh a bhith air a thoirt a-mach. Sin as coireach gum faodar na gnìomhan cnuasachaidh seo ath-chleachdadh nuair a bhios iad ag obair le tagraidhean eile.
Agus an seo gluaisidh sinn air adhart gu gràsmhor chun ath phuing ...
Stòrasan
Mar sin, leis gum bu chòir, mar a thuirt sinn, gnìomhan cnuasachaidh a bhith cho coitcheann ‘s a ghabhas, feumaidh sinn goireasan a chruthachadh a thèid a chleachdadh mar chur-a-steach (stòr Git) agus mar thoradh (na h-ìomhaighean deireannach). Is e a’ chiad ghoireas a tha a dhìth oirnn Git, far a bheil an tagradh againn a’ fuireach, rudeigin 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
An seo tha PipelineResource de sheòrsa git. Tha an iuchair url anns an roinn params a’ comharrachadh stòr sònraichte agus a’ sònrachadh am prìomh mheur (tha seo roghainneil, ach bidh sinn ga sgrìobhadh airson iomlanachd).
A-nis feumaidh sinn goireas a chruthachadh airson an ìomhaigh far an tèid toraidhean gnìomh s2i-web-app a shàbhaladh, thèid seo a dhèanamh 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
An seo tha an Stòras Pìoba de sheòrsa de dh’ ìomhaigh, agus tha luach am paramadair url a’ comharrachadh gu Clàr Ìomhaigh OpenShift a-staigh, gu sònraichte am fear a tha suidhichte anns an raon-ainm webapp-pipeline. Na dìochuimhnich an suidheachadh seo atharrachadh ma tha thu a’ cleachdadh àite-ainm eile.
Agus mu dheireadh, bidh an goireas mu dheireadh a dh’ fheumas sinn cuideachd de sheòrsa ìomhaigh agus is e seo an ìomhaigh NGINX mu dheireadh a thèid a chleachdadh an uairsin aig àm cleachdadh:
# 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
A-rithist, thoir an aire gu bheil an goireas seo a’ stòradh na h-ìomhaigh anns a’ chlàr OpenShift a-staigh san raon-ainm webapp-pipeline.
Gus na goireasan sin uile a chruthachadh aig an aon àm, bidh sinn a’ cleachdadh an àithne cruthaich:
Bidh sinn an uairsin a’ cruthachadh nan gnìomhan a dh’ fheumas ar loidhne-phìoban a choileanadh. An toiseach, feumaidh e an gnìomh s2i-web-app a chruthaich sinn mu thràth a choileanadh:
Bidh an obair seo a’ gabhail a-steach crìochan cuir a-steach (gir) agus toradh (goireas lìn-iarrtas-ìomhaigh togte). Bidh sinn cuideachd a’ toirt seachad paramadair sònraichte dha gus nach dearbhaich e TLS leis gu bheil sinn a’ cleachdadh theisteanasan fèin-shoidhnichte:
Coltach ris a’ ghnìomh a bh’ ann roimhe, bidh sinn a’ toirt a-steach goireas, ach a-nis tha e air a thogail-lìn-aplacaid-ìomhaigh (toradh na h-obrach a rinn sinn roimhe). Agus mar thoradh tha sinn a-rithist a 'suidheachadh an ìomhaigh. Leis gu feum an obair seo a bhith air a choileanadh às deidh an fhear roimhe, cuiridh sinn an raon runAfter ris:
Tha e an urra ris an ath dhà ghnìomh a bhith a’ cleachdadh seirbheis, slighe agus cleachdadh fhaidhlichean YAML a tha a’ fuireach ann an eòlaire k8s den tagradh lìn againn, agus cuideachd airson an cleachdadh seo ùrachadh nuair a bhios sinn a’ cruthachadh ìomhaighean ùra. Mhìnich sinn an dà ghnìomh brabhsair seo aig toiseach an artaigil.
A 'tòiseachadh air a' ghiùlan
Mar sin, tha a h-uile pàirt den loidhne-phìoban againn air a chruthachadh, agus ruithidh sinn e leis an òrdugh a leanas:
$ tkn pipeline start build-and-deploy-react
Aig an ìre seo, tha an loidhne-àithne air a chleachdadh gu h-eadar-obrachail agus feumaidh tu na goireasan iomchaidh a thaghadh mar fhreagairt do gach iarrtas aige: airson an goireas git, tagh web-application-repo, an uairsin airson a’ chiad ghoireas ìomhaigh, togte-lìn-aplacaid -image, agus mu dheireadh, airson goireas dàrna ìomhaigh -runtime-web-application-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
A-nis leig dhuinn sùil a thoirt air inbhe na loidhne-phìoban leis an òrdugh a leanas:
$ tkn pipeline logs -f
Aon uair ‘s gu bheil an loidhne-phìoban air tòiseachadh agus an tagradh air a chuir a-steach, is urrainn dhuinn an t-slighe foillsichte iarraidh leis an òrdugh a leanas:
$ oc get route react-pipeline-example --template='http://{{.spec.host}}'
Airson barrachd fradharc, faodaidh tu an loidhne-phìoban againn fhaicinn ann am modh leasaiche a’ chonsail lìn san roinn Pìoban, mar a chithear ann am Fig. 1.
Fig.1. Lèirmheas air pìoban ruith.
Le bhith a’ cliogadh air loidhne-phìoban ruith tha fiosrachadh a bharrachd, mar a chithear ann am Figear 2.
Reis. 2. Fiosrachadh a bharrachd mun loidhne-phìoban.
Às deidh barrachd fiosrachaidh, chì thu tagraidhean ruith san t-sealladh Topology, mar a chithear ann am Fig.3.
Fig 3. Pod air bhog.
Ma bhriogas tu air a’ chearcall san oisean gu h-àrd air an làimh dheis den ìomhaigh, fosglaidh an tagradh againn, mar a chithear ann am Fig. 4.
Reis. 4. Running React iarrtas.
co-dhùnadh
Mar sin, sheall sinn mar a ruitheas tu frithealaiche leasachaidh airson an tagradh agad air OpenShift agus sioncronaich e leis an t-siostam faidhle ionadail. Choimhead sinn cuideachd air mar a nì thu atharrais air teamplaid togail slabhraidh a’ cleachdadh OpenShift Pipelines. Gheibhear a h-uile còd eisimpleir bhon artaigil seo an seo.
Tha sinn a’ tòiseachadh sreath de cho-labhairtean-lìn Dihaoine mu eòlas dùthchasach a’ cleachdadh Red Hat OpenShift Container Platform agus Kubernetes: