ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

ሰላም በዚህ ብሎግ ላይ ላሉ ሁሉ! ዘመናዊ የዌብ አፕሊኬሽኖችን በ Red Hat OpenShift ላይ እንዴት ማሰማራት እንደሚችሉ የምናሳይበት ተከታታይ ልጥፍ ይህ ሶስተኛው ነው።

ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

ባለፉት ሁለት ጽሁፎች፣ ዘመናዊ የድር አፕሊኬሽኖችን በጥቂት እርምጃዎች እንዴት ማሰማራት እንደሚቻል እና አዲስ የS2I ምስልን እንዴት መጠቀም እንደሚቻል ቀድሞ ከተሰራ የኤችቲቲፒ አገልጋይ ምስል ጋር ለምሳሌ NGINX የምርት ማሰማራትን ለማደራጀት በሰንሰለት የተሰሩ ግንባታዎችን በመጠቀም ሽፋን ሰጥተናል።

ዛሬ ለመተግበሪያዎ የገንቢ አገልጋይ በ OpenShift መድረክ ላይ እንዴት እንደምናስኬድ እና ከአካባቢው የፋይል ስርዓት ጋር ማመሳሰልን እናሳያለን እንዲሁም ስለ OpenShift Pipelines ምን እንደሆኑ እና ከተገናኙ ስብሰባዎች እንዴት እንደ አማራጭ እንደሚጠቀሙ እንነጋገራለን ።

OpenShift እንደ ልማት አካባቢ

የልማት የስራ ሂደት

ቀደም ሲል እንደተገለፀው የመጀመሪያ ልጥፍለዘመናዊ የድር መተግበሪያዎች የተለመደው የእድገት ሂደት በቀላሉ በአካባቢያዊ ፋይሎች ላይ ለውጦችን የሚከታተል "የልማት አገልጋይ" ነው። በሚከሰቱበት ጊዜ የመተግበሪያው ግንባታ ይነሳል እና ከዚያ ወደ አሳሹ ይዘምናል።

በአብዛኛዎቹ ዘመናዊ ማዕቀፎች ውስጥ እንደዚህ ያለ "የልማት አገልጋይ" በተገቢው የትእዛዝ መስመር መሳሪያዎች ውስጥ ተገንብቷል.

የአካባቢ ምሳሌ

በመጀመሪያ ፣ መተግበሪያዎችን በአገር ውስጥ በማሄድ ረገድ እንዴት እንደሚሰራ እንይ። አንድ መተግበሪያን እንደ ምሳሌ እንውሰድ። ምላሽ ከቀደምት መጣጥፎች ፣ ምንም እንኳን ተመሳሳይ የስራ ፍሰት ጽንሰ-ሀሳቦች በሁሉም ሌሎች ዘመናዊ ማዕቀፎች ላይ ቢተገበሩም።
ስለዚህ “የልማት አገልጋይ”ን በእኛ React ምሳሌ ውስጥ ለመጀመር የሚከተለውን ትዕዛዝ እንጽፋለን፡-

$ npm run start

ከዚያ በተርሚናል መስኮት ውስጥ እንደዚህ ያለ ነገር እናያለን-

ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

እና የእኛ መተግበሪያ በነባሪ አሳሽ ውስጥ ይከፈታል-

ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

አሁን, በፋይሉ ላይ ለውጦችን ካደረግን, አፕሊኬሽኑ በአሳሹ ውስጥ ማደስ አለበት.

እሺ፣ በአካባቢያዊ ሁነታ ከልማት ጋር ሁሉም ነገር ግልፅ ነው፣ ግን በ OpenShift ላይ ተመሳሳይ ነገር እንዴት ማግኘት እንደሚቻል?

በOpenShift ላይ የልማት አገልጋይ

ውስጥ ካስታወሱ ቀዳሚ ልጥፍየ S2I ምስልን የሩጫ ፋዝ (የሩጫ ደረጃ) የሚባለውን ተንትነን በነባሪነት የእኛ የድር መተግበሪያ በአገልጋይ ሞጁል እንደሚቀርብ አይተናል።

ሆኖም ግን, ጠለቅ ብለው ከተመለከቱ አሂድ ስክሪፕት ከዚያ ምሳሌ፣ የ$NPM_RUN አካባቢ ተለዋዋጭ አለው፣ ይህም የራስዎን ትዕዛዝ እንዲያሄዱ ያስችልዎታል።

ለምሳሌ፣ የእኛን መተግበሪያ ለማሰማራት የ nodeshift ሞጁሉን መጠቀም እንችላለን፡-

$ npx nodeshift --deploy.env NPM_RUN="yarn start" --dockerImage=nodeshift/ubi8-s2i-web-app

ማሳሰቢያ፡- ከላይ ያለው ምሳሌ አጠቃላዩን ሀሳቡን ለማሳየት በአህጽሮተ ቃል ነው።

እዚህ፣ የNPM_RUN አካባቢ ተለዋዋጭ ወደ ማሰማራታችን ጨምረነዋል፣ ይህም የሩጫ ጊዜውን የክር ማስጀመሪያ ትዕዛዙን እንዲያስኬድ ይነግረናል፣ ይህም በእኛ OpenShift ፖድ ውስጥ የReact ልማት አገልጋይ ይጀምራል።

የሩጫ ፖድ ምዝግብ ማስታወሻን ከተመለከቱ ፣ እንደዚህ ያለ ነገር ይኖራል ።

ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

በእርግጥ ይህ ሁሉ የአካባቢውን ኮድ ከኮዱ ጋር እስክንመሳሰል ድረስ ምንም አይሆንም, እሱም ለለውጦች ቁጥጥር የሚደረግበት, ግን በሩቅ አገልጋይ ላይ ይኖራል.

የርቀት እና የአካባቢ ኮድ ማመሳሰል

እንደ እድል ሆኖ፣ nodeshift በማመሳሰል ላይ በቀላሉ ሊረዳ ይችላል፣ እና ለውጦችን ለመከታተል የሰዓት ትዕዛዙን መጠቀም ይችላሉ።

ስለዚህ ለመተግበሪያችን የልማቱን አገልጋይ ለማሰማራት ትዕዛዙን ከጨረስን በኋላ ይህንን ትዕዛዝ በጥንቃቄ መጠቀም እንችላለን፡-

$ npx nodeshift watch

በዚህ ምክንያት ትንሽ ቀደም ብሎ ከፈጠርነው የሩጫ ፖድ ጋር ግንኙነት ይፈጠራል፣ የአካባቢያችን ፋይሎች ከርቀት ክላስተር ጋር መመሳሰል እንዲሰራ ይደረጋል፣ በአካባቢያችን ያሉ ፋይሎችም ለውጦችን መከታተል ይጀምራሉ።

ስለዚህ አሁን የsrc/App.js ፋይልን ካዘመንን ስርዓቱ ለእነዚህ ለውጦች ምላሽ ይሰጣል፣ ወደ የርቀት ክላስተር ይገለብጣል እና የልማቱን አገልጋይ ይጀምራል፣ ከዚያ በአሳሹ ውስጥ መተግበሪያችንን ያዘምናል።

ምስሉን ለማጠናቀቅ፣ እነዚህ ትዕዛዞች ሙሉ በሙሉ ምን እንደሚመስሉ እናሳይ፡-

$ npx nodeshift --strictSSL=false --dockerImage=nodeshift/ubi8-s2i-web-app --build.env YARN_ENABLED=true --expose --deploy.env NPM_RUN="yarn start" --deploy.port 3000

$ npx nodeshift watch --strictSSL=false

የሰዓት ትዕዛዙ በ oc rsync ትእዛዝ ላይ አጭር መግለጫ ነው፣ ይህ እንዴት እንደሚሰራ የበለጠ ማወቅ ይችላሉ። እዚህ.

ይህ ለReact ምሳሌ ነበር፣ ነገር ግን ተመሳሳይ ዘዴ ከሌሎች ማዕቀፎች ጋር መጠቀም ይቻላል፣ ልክ እንደ አስፈላጊነቱ የ NPM_RUN አካባቢን ተለዋዋጭ ያዘጋጁ።
 

ክፍት የቧንቧ መስመሮች

ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

በመቀጠል፣ እንደ OpenShift Pipelines ስላለው መሳሪያ እና በሰንሰለት ከተያዙ ግንባታዎች እንዴት እንደ አማራጭ መጠቀም እንደሚቻል እንነጋገራለን።

OpenShift Pipelines ምንድን ነው?

OpenShift Pipelines ቴክተንን በመጠቀም በዳመና ላይ የተመሰረተ የሲአይኤ/ሲዲ ቀጣይነት ያለው ውህደት እና አቅርቦት ስርዓት ነው። ተክተን ክፍት ምንጭ፣ ተለዋዋጭ የኩበርኔትስ ቤተኛ CI/ሲዲ ማዕቀፍ ከስር ያለውን ንብርብር በማራቅ በተለያዩ መድረኮች (Kubernetes፣ አገልጋይ አልባ፣ ቨርቹዋል ማሽኖች፣ወዘተ) ላይ በራስ ሰር የሚሰራ ነው።

ይህንን ጽሑፍ ለመረዳት የቧንቧ መስመሮች የተወሰነ እውቀትን ይጠይቃል, ስለዚህ በመጀመሪያ እንዲያነቡ አበክረን እንመክርዎታለን ኦፊሴላዊ የመማሪያ መጽሐፍ.

የሥራ አካባቢን ማዘጋጀት

በዚህ ጽሑፍ ውስጥ ካሉ ምሳሌዎች ጋር ለመጫወት በመጀመሪያ የሥራ አካባቢን ማዘጋጀት ያስፈልግዎታል-

  1. የOpenShift 4 ክላስተርን ጫን እና አዋቅር።የእኛ ምሳሌዎች CodeReady Containers (CRD)ን እንጠቀማለን፣የመጫኛ መመሪያዎች እዚህ.
  2. ክላስተር ከተዘጋጀ በኋላ የፔፕፐሊን ኦፕሬተርን በላዩ ላይ መጫን ያስፈልግዎታል. አትፍሩ, ቀላል ነው, የመጫኛ መመሪያዎች እዚህ.
  3. አውርድ Tekton CLI (tkn) እዚህ.
  4. ከዚያ የሚሰማራ መተግበሪያ ለመፍጠር የፍጠር-react-app ትዕዛዝ መስመር መሳሪያውን ያሂዱ (ይህ ቀላል መተግበሪያ ነው) ምላሽ).
  5. (አማራጭ) የናሙና መተግበሪያውን በ npm በመጫን እና ከዚያ npm ለመጀመር ማከማቻውን ይዝጉ።

የመተግበሪያው ማከማቻ የk8s ማህደር ይኖረዋል፣ እሱም መተግበሪያውን ለማሰማራት የሚያገለግሉትን Kubernetes/OpenShift YAMLs ይይዛል። በዚህ ውስጥ የምንፈጥራቸው ተግባራት፣ ክላስተር ተግባራት፣ ግብዓቶች እና የቧንቧ መስመሮች ይኖራሉ ማከማቻዎች.

እንደ መጀመር

የኛ ምሳሌ የመጀመሪያው እርምጃ በOpenShift ክላስተር ውስጥ አዲስ ፕሮጀክት መፍጠር ነው። ይህንን ፕሮጀክት webapp-pipeline እንሰይመው እና በሚከተለው ትዕዛዝ እንፈጥረው፡-

$ oc new-project webapp-pipeline

በኋላ, ይህ የፕሮጀክት ስም በኮዱ ውስጥ ይታያል, ስለዚህ ሌላ ነገር ለመሰየም ከወሰኑ, በዚህ መሰረት ኮዱን ከምሳሌዎች ማርትዕን አይርሱ. ከዚህ ነጥብ ጀምሮ, ከላይ ወደ ታች አንሄድም, ነገር ግን ከታች ወደ ላይ: ማለትም, በመጀመሪያ ሁሉንም የእቃ ማጓጓዣ ክፍሎችን እንፈጥራለን, እና ከዚያ በኋላ እራሱ ብቻ ነው.

ስለዚህ በመጀመሪያ…

ተግባራት

ሁለት ተግባራትን (ተግባራትን) እንፍጠር, ከዚያም ማመልከቻውን በእኛ የቧንቧ መስመር ውስጥ ለማሰማራት ይረዳል. የመጀመሪያው ተግባር apply_manifests_task በመተግበሪያችን k8s አቃፊ ውስጥ የሚገኙትን የ Kubernetes ሀብቶች (አገልግሎት፣ ማሰማራት እና መንገድ) YAML የመተግበር ሃላፊነት አለበት። ሁለተኛው ተግባር - update_deployment_task - ቀድሞውኑ የተዘረጋውን ምስል በእኛ ቧንቧ ወደተፈጠረው የማዘመን ሃላፊነት አለበት።

እስካሁን ግልጽ ካልሆነ አይጨነቁ። እንደ እውነቱ ከሆነ, እነዚህ ተግባራት እንደ መገልገያዎች ናቸው, እና ትንሽ ቆይተው በበለጠ ዝርዝር ውስጥ እንገባቸዋለን. ለአሁን፣ እስቲ እንፈጥራቸው፡-

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/tasks/update_deployment_task.yaml
$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/tasks/apply_manifests_task.yaml

ከዚያ የ tkn CLI ትዕዛዝን በመጠቀም ተግባሮቹ መፈጠሩን ያረጋግጡ፡-

$ tkn task ls

NAME                AGE
apply-manifests     1 minute ago
update-deployment   1 minute ago

ማሳሰቢያ፡- እነዚህ ለአሁኑ ፕሮጀክትዎ አካባቢያዊ ተግባራት ናቸው።

የክላስተር ተግባራት

የክላስተር ተግባራት በመሠረቱ ከተግባሮች ጋር ተመሳሳይ ናቸው። ያም ማለት አንድ የተለየ ተግባር ሲጀመር በአንድ ወይም በሌላ መንገድ የተጣመሩ እንደገና ጥቅም ላይ ሊውል የሚችል የእርምጃዎች ስብስብ ነው. ልዩነቱ የክላስተር ተግባር በክላስተር ውስጥ በሁሉም ቦታ የሚገኝ መሆኑ ነው። የቧንቧ መስመር ኦፕሬተር ሲጨመር በራስ ሰር የሚፈጠሩ የክላስተር ስራዎችን ዝርዝር ለማየት 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

አሁን ሁለት የክላስተር ስራዎችን እንፍጠር። የመጀመሪያው የ S2I ምስል ያመነጫል እና ወደ ውስጣዊ የ OpenShift መዝገብ ይልካል; ሁለተኛው በ NGINX ላይ የተመሰረተ ምስል መገንባት ነው, ቀደም ሲል የገነባነውን እንደ ይዘት በመጠቀም.

ምስል ይፍጠሩ እና ይላኩ።

የመጀመሪያውን ተግባር ስንፈጥር, ስለ ተያያዥ ስብሰባዎች ቀደም ሲል በነበረው ጽሑፍ ውስጥ ያደረግነውን እንደግመዋለን. የእኛን መተግበሪያ "ለመገንባት" የS2I ምስል (ubi8-s2i-web-app) የተጠቀምንበት እና መጨረሻ ላይ በOpenShift መዝገብ ውስጥ የተከማቸ ምስል እንዳለን አስታውስ። አሁን ይህን የ S2I ድረ-ገጽ አፕሊኬሽን ምስል ተጠቅመን ለመተግበሪያችን DockerFile ን እንጠቀማለን ከዚያም Buildah ን በመጠቀም የተገኘውን ምስል በትክክል ለመገንባት እና ወደ ውስጣዊ የOpenShift መዝገብ ለመግፋት እንጠቀማለን ምክንያቱም OpenShift ኖdeShiftን ተጠቅመው አፕሊኬሽኖችዎን ሲያሰማሩ የሚያደርገው ልክ ነው።

ይህን ሁሉ እንዴት እናውቃለን አንተ ትጠይቃለህ? ከ ኦፊሴላዊው Node.js ኦፊሴላዊ ስሪትበቃ ገልብጠን ለራሳችን ጨረስነው።

ስለዚህ፣ አሁን የs2i-web-app ክላስተር ተግባርን እንፈጥራለን፡-

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/clustertasks/s2i-web-app-task.yaml

ይህንን በዝርዝር አንተነተንም፣ ነገር ግን በOUTPUT_DIR መለኪያ ላይ ብቻ እንኑር፡-

params:
      - name: OUTPUT_DIR
        description: The location of the build output directory
        default: build

በነባሪ፣ ይህ ግቤት ግንባታ ነው፣ ​​እሱም React የተሰራውን ይዘት የሚያስቀምጥበት ነው። ሌሎች ማዕቀፎች የተለያዩ መንገዶችን ይጠቀማሉ፣ ለምሳሌ በEmber dist ነው። የመጀመሪያው የክላስተር ስራችን ውጤት የሰበሰብነውን HTML፣ JavaScript እና CSS የያዘ ምስል ይሆናል።

በ NGINX ላይ በመመስረት ምስል እንገነባለን

የሁለተኛ ክላስተር ተግባራችንን በተመለከተ፣ ቀደም ብለን የገነባነውን የመተግበሪያውን ይዘት በመጠቀም በNGINX ላይ የተመሰረተ ምስል ሊገነባልን ይገባል። በእርግጥ ይህ በሰንሰለት የታሰሩ ግንባታዎችን የተመለከትንበት የቀደመው ክፍል ክፍል ነው።

ይህንን ለማድረግ፣ እኛ - ልክ እንደ ትንሽ ከላይ - የድር መተግበሪያ-ግንባታ-አሂድ ጊዜ ክላስተር ተግባር እንፈጥራለን፡-

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/clustertasks/webapp-build-runtime-task.yaml

የእነዚህ የክላስተር ስራዎች ኮድ ከተመለከቱ፣ የምንሰራውን የ Git ማከማቻ ወይም የምንፈጥራቸውን ምስሎች ስም እንደማይገልጽ ማየት ይችላሉ። ወደ Git በትክክል የምናስተላልፈውን ወይም የመጨረሻውን ምስል ለማውጣት የምንፈልግበትን የተወሰነ ምስል ብቻ እንገልፃለን። ለዚያም ነው እነዚህ የተሰባሰቡ ስራዎች ከሌሎች መተግበሪያዎች ጋር ሲሰሩ እንደገና ጥቅም ላይ ሊውሉ የሚችሉት.

እና ከዚያ በጸጋ ወደሚቀጥለው ነጥብ እንሸጋገራለን ...

መርጃዎች

ስለዚህ፣ ልክ እንደተናገርነው፣ የክላስተር ተግባራት በተቻለ መጠን አጠቃላይ መሆን ስላለባቸው፣ በግብአት (ጂት ማከማቻ) እና በውጤት (የመጨረሻ ምስሎች) ውስጥ ጥቅም ላይ የሚውሉ ግብዓቶችን መፍጠር አለብን። የምንፈልገው የመጀመሪያው ግብዓት Git ነው፣ ማመልከቻችን የሚገኝበት፣ እንደዚህ ያለ ነገር

# 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

እዚህ PipelineResource git አይነት ነው። በፓራም ክፍል ውስጥ ያለው የዩ አር ኤል ቁልፍ ወደ አንድ የተወሰነ ማከማቻ ይጠቁማል እና ዋናውን ቅርንጫፍ ያዘጋጃል (ይህ እንደ አማራጭ ነው, ግን ሙሉ ለሙሉ እንጽፋለን).

አሁን የ s2i-web-app ተግባር ውጤቶች የሚቀመጡበት ለምስሉ ምንጭ መፍጠር አለብን፣ ይህ እንደሚከተለው ይከናወናል።

# 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

እዚህ፣ የፔፕላይን ሪሶርስ የምስል አይነት ነው፣ እና የዩአርኤል መለኪያው ዋጋ ወደ ውስጣዊ የOpenShift Image መዝገብ ቤት ይጠቁማል፣ በተለይም በዌብ አፕ-ቧንቧ መስመር ውስጥ ያለውን። የተለየ የስም ቦታ እየተጠቀሙ ከሆነ ይህን ቅንብር መቀየርዎን ያስታውሱ።

እና በመጨረሻም ፣ እኛ የምንፈልገው የመጨረሻው ምንጭ እንዲሁ የምስል አይነት ይሆናል ፣ እና ይህ የመጨረሻው የ NGINX ምስል ነው ፣ እሱም በሚሰማራበት ጊዜ ጥቅም ላይ ይውላል።

# 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

በድጋሚ፣ ይህ ሃብት ምስሉን በዌብአፕ-ቧንቧ መስመር የስም ቦታ ውስጥ በውስጥ የOpenShift መዝገብ ውስጥ እንደሚያከማች ልብ ይበሉ።

እነዚህን ሁሉ ሀብቶች በአንድ ጊዜ ለመፍጠር የፍጠር ትዕዛዙን እንጠቀማለን-

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/resources/resource.yaml

ሀብቶቹ መፈጠሩን ለማረጋገጥ ይህንን ማድረግ ይችላሉ፡-

$ tkn resource ls

የቧንቧ መስመር

አሁን ሁሉም አስፈላጊ አካላት ስላሉን በሚከተለው ትእዛዝ በመፍጠር ከእነሱ የቧንቧ መስመር እንሰበስባለን-

$ oc create -f https://raw.githubusercontent.com/nodeshift/webapp-pipeline-tutorial/master/pipelines/build-and-deploy-react.yaml

ግን ይህን ትዕዛዝ ከማስኬድዎ በፊት እነዚህን አካላት እንይ። የመጀመሪያው ስሙ ነው፡-

apiVersion: tekton.dev/v1alpha1
kind: Pipeline
metadata:
  name: build-and-deploy-react

ከዚያ ፣ በልዩ ክፍል ውስጥ ፣ ቀደም ብለን የፈጠርናቸውን ሀብቶች አመላካች እናያለን-

spec:
  resources:
    - name: web-application-repo
      type: git
    - name: built-web-application-image
      type: image
    - name: runtime-web-application-image
      type: image

ከዚያም የቧንቧ መስመሮቻችን እንዲሰሩ ስራዎችን እንፈጥራለን. በመጀመሪያ ደረጃ፣ አስቀድመን የፈጠርነውን s2i-web-app ተግባር መፈጸም አለበት፡-

tasks:
    - name: build-web-application
      taskRef:
        name: s2i-web-app
        kind: ClusterTask

ይህ ተግባር የግቤት (gir resource) እና ውፅዓት (የተሰራ የድር-መተግበሪያ-ምስል ምንጭ) መለኪያዎችን ይወስዳል። በራስ የተፈረሙ የምስክር ወረቀቶችን እየተጠቀምን ስለሆነ TLSን እንዳያረጋግጥ ልዩ መለኪያ እናስተላልፋለን።

resources:
        inputs:
          - name: source
            resource: web-application-repo
        outputs:
          - name: image
            resource: built-web-application-image
      params:
        - name: TLSVERIFY
          value: "false"

ቀጣዩ ተግባር ከሞላ ጎደል ተመሳሳይ ነው፣ እኛ አስቀድመን የፈጠርነው የዌብአፕ-ግንባታ-አሂድ ጊዜ ክላስተር ተግባር ብቻ እዚህ ይባላል።

name: build-runtime-image
    taskRef:
      name: webapp-build-runtime
      kind: ClusterTask

ልክ እንደ ቀድሞው ተግባር, በንብረት ውስጥ እናልፋለን, አሁን ግን አብሮ የተሰራ የድር-መተግበሪያ-ምስል (የቀደምት ተግባራችን ውጤት) ነው. እና እንደ ማጠቃለያ, ምስሉን እንደገና አዘጋጅተናል. ይህ ተግባር ከቀዳሚው በኋላ መከናወን ስላለበት የ runAfter መስክን እንጨምራለን-

resources:
        inputs:
          - name: image
            resource: built-web-application-image
        outputs:
          - name: image
            resource: runtime-web-application-image
        params:
        - name: TLSVERIFY
          value: "false"
      runAfter:
        - build-web-application

የሚቀጥሉት ሁለት ተግባራት በድር መተግበሪያችን k8s ማውጫ ውስጥ የሚኖሩትን አገልግሎት፣ መንገድ እና የማሰማራት የ YAML ፋይሎች እና አዲስ ምስሎች ሲፈጠሩ ይህን ማሰማራት የማዘመን ሃላፊነት አለባቸው። በአንቀጹ መጀመሪያ ላይ እነዚህን ሁለት የክላስተር ስራዎች አዘጋጅተናል.

የቧንቧ መስመርን ማካሄድ

ስለዚህ, ሁሉም የቧንቧ መስመሮቻችን ክፍሎች ተፈጥረዋል, እና በሚከተለው ትዕዛዝ እንጀምራለን.

$ tkn pipeline start build-and-deploy-react

በዚህ ጊዜ የትእዛዝ መስመሩ በይነተገናኝ ጥቅም ላይ ይውላል እና ለእያንዳንዳቸው ጥያቄው ምላሽ ለመስጠት ተገቢው ሀብቶች መመረጥ አለባቸው-ለጂት ሪሶርስ ዌብ-መተግበሪያ-ሪፖን ይምረጡ ፣ ከዚያ ለመጀመሪያው የምስል ምንጭ ፣ የተሰራ-ድር-መተግበሪያ- ምስል፣ እና በመጨረሻም ለሁለተኛ የምስል ግብአት -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

አሁን በሚከተለው ትዕዛዝ የቧንቧውን ሁኔታ ያረጋግጡ.

$ tkn pipeline logs -f

ቧንቧው ከጀመረ እና አፕሊኬሽኑ ከተሰማራ በኋላ የታተመውን መንገድ በሚከተለው ትእዛዝ ይጠይቁ፡

$ oc get route react-pipeline-example --template='http://{{.spec.host}}'

ለበለጠ ታይነት የኛን ቧንቧ በክፍል ውስጥ በድር ኮንሶል ገንቢ ሁነታ ማየት ትችላለህ ቧንቧዎችበስእል እንደሚታየው. 1.

ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

ምስል.1. የቧንቧ መስመሮች አጠቃላይ እይታ.

በስእል 2 እንደሚታየው የሚሮጥ ቧንቧ ላይ ጠቅ ማድረግ ተጨማሪ ዝርዝሮችን ያሳያል።

ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

ሩዝ. 2. ስለ ማጓጓዣው ተጨማሪ መረጃ.

ከተጨማሪ ዝርዝሮች በኋላ በእይታ ውስጥ ያሉትን አሂድ መተግበሪያዎች ማየት ይችላሉ። ቶፖሎጂ, በስእል 3 ላይ እንደሚታየው.

ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

ምስል 3. የሩጫ ፖድ.

በአዶው የላይኛው ቀኝ ጥግ ላይ ያለውን ክበብ ጠቅ ማድረግ በስእል 4 እንደሚታየው የእኛን መተግበሪያ ይከፍታል.

ዘመናዊ አፕሊኬሽኖች በOpenShift ክፍል 3፡OpenShift እንደ ልማት አካባቢ እና ክፍት Shift ቧንቧዎች

ሩዝ. 4. የሚሰራ React መተግበሪያ።

መደምደሚያ

ስለዚህ፣ ለመተግበሪያዎ እንዴት የገንቢ አገልጋይ በOpenShift ላይ ማስኬድ እና ከአካባቢው የፋይል ስርዓት ጋር እንደሚያመሳስለው አሳይተናል። እንዲሁም OpenShift Pipelinesን በመጠቀም በሰንሰለት የተሰራ አብነት እንዴት እንደሚመስል ተመልክተናል። ሁሉም የዚህ ጽሑፍ ምሳሌ ኮዶች ሊገኙ ይችላሉ። እዚህ.

ተጨማሪ መርጃዎች

ስለ መጪ ዌብናሮች ማስታወቂያዎች

የቀይ ኮፍያ ክፈትሺፍት ኮንቴይነር መድረክን እና ኩበርኔትስን ስለመጠቀም ስላጋጠመን ልምድ ተከታታይ አርብ ዌብናሮችን እንጀምራለን፡

ምንጭ: hab.com

አስተያየት ያክሉ