OpenShift හි නවීන යෙදුම්, 3 කොටස: සංවර්ධන පරිසරයක් ලෙස OpenShift සහ OpenShift නල මාර්ග

මෙම බ්ලොග් අඩවියේ සිටින සැමට ආයුබෝවන්! Red Hat OpenShift මත නවීන වෙබ් යෙදුම් යෙදවිය යුතු ආකාරය අපි ඔබට පෙන්වන ලිපි මාලාවක තුන්වන පළ කිරීම මෙයයි.

OpenShift හි නවීන යෙදුම්, 3 කොටස: සංවර්ධන පරිසරයක් ලෙස OpenShift සහ OpenShift නල මාර්ග

පෙර පළ කිරීම් දෙකේදී, අපි පියවර කිහිපයකින් නවීන වෙබ් යෙදුම් යෙදවිය යුතු ආකාරය සහ නිෂ්පාදන යෙදවීම සඳහා දම්වැල් සහිත ගොඩනැගීම් භාවිතයෙන් NGINX වැනි පෙර-සාදන ලද HTTP සේවාදායක රූපයක් සමඟ නව S2I රූපයක් භාවිතා කරන්නේ කෙසේද යන්න ආවරණය කර ඇත.

අද අපි OpenShift වේදිකාවේ ඔබගේ යෙදුම සඳහා සංවර්ධන සේවාදායකයක් ධාවනය කරන්නේ කෙසේද සහ එය දේශීය ගොනු පද්ධතිය සමඟ සමමුහුර්ත කරන්නේ කෙසේද යන්න මෙන්ම OpenShift නල මාර්ග යනු කුමක්ද සහ ඒවා සම්බන්ධිත එකලස් කිරීම් සඳහා විකල්පයක් ලෙස භාවිතා කළ හැකි ආකාරය ගැන කතා කරන්නෙමු.

සංවර්ධන පරිසරයක් ලෙස OpenShift

සංවර්ධන කාර්ය ප්රවාහය

දැනටමත් සඳහන් කර ඇති පරිදි පළමු පෝස්ට්, නවීන වෙබ් යෙදුම් සඳහා වන සාමාන්‍ය සංවර්ධන ක්‍රියාවලිය දේශීය ගොනු වලට සිදුවන වෙනස්කම් නිරීක්ෂණය කරන "සංවර්ධන සේවාදායකයක්" වේ. ඒවා සිදු වූ විට, යෙදුම ගොඩනැගීම ක්‍රියාත්මක වන අතර පසුව එය බ්‍රවුසරයට යාවත්කාලීන වේ.

බොහෝ නවීන රාමු තුළ, එවැනි "සංවර්ධන සේවාදායකයක්" සුදුසු විධාන රේඛා මෙවලම් තුළ ගොඩනගා ඇත.

දේශීය උදාහරණය

පළමුව, දේශීයව යෙදුම් ධාවනය කිරීමේදී එය ක්‍රියා කරන්නේ කෙසේදැයි බලමු. අපි උදාහරණයක් ලෙස යෙදුමක් ගනිමු. React පෙර ලිපි වලින්, අනෙක් සියලුම නවීන රාමු සඳහා එකම කාර්ය ප්‍රවාහ සංකල්ප අදාළ වුවද.
එබැවින්, අපගේ ප්‍රතික්‍රියා උදාහරණයේ "සංවර්ධන සේවාදායකය" ආරම්භ කිරීමට, අපි පහත විධානය ටයිප් කරන්නෙමු:

$ npm run start

එවිට ටර්මිනල් කවුළුව තුළ අපට මෙවැනි දෙයක් පෙනෙනු ඇත:

OpenShift හි නවීන යෙදුම්, 3 කොටස: සංවර්ධන පරිසරයක් ලෙස OpenShift සහ OpenShift නල මාර්ග

අපගේ යෙදුම පෙරනිමි බ්‍රව්සරයේ විවෘත වනු ඇත:

OpenShift හි නවීන යෙදුම්, 3 කොටස: සංවර්ධන පරිසරයක් ලෙස OpenShift සහ OpenShift නල මාර්ග

දැන්, අපි ගොනුවේ වෙනස්කම් සිදු කරන්නේ නම්, යෙදුම බ්‍රවුසරයේ නැවුම් කළ යුතුය.

හරි, දේශීය මාදිලියේ සංවර්ධනය සමඟ, සියල්ල පැහැදිලිය, නමුත් OpenShift මත එය සාක්ෂාත් කර ගන්නේ කෙසේද?

OpenShift හි සංවර්ධන සේවාදායකය

ඔබ තුළ මතක නම් පෙර පෝස්ට්, අපි S2I රූපයේ ඊනියා ධාවන අදියර (ධාවන අදියර) විශ්ලේෂණය කළ අතර, පෙරනිමියෙන්, අපගේ වෙබ් යෙදුම සේවා මොඩියුලය මඟින් සපයනු ලබන බව දුටුවෙමු.

කෙසේ වෙතත්, ඔබ සමීපව බැලුවහොත් ස්ක්‍රිප්ට් ධාවනය කරන්න එම උදාහරණයෙන්, එය $NPM_RUN පරිසර විචල්‍යය ඇත, එය ඔබට ඔබේම විධානය ක්‍රියාත්මක කිරීමට ඉඩ සලසයි.

උදාහරණයක් ලෙස, අපගේ යෙදුම යෙදවීමට nodeshift මොඩියුලය භාවිතා කළ හැක:

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

සටහන: ඉහත උදාහරණය කෙටි කර ඇත්තේ පොදු අදහස නිදර්ශනය කිරීමට ය.

මෙන්න, අපි අපගේ යෙදවීමට NPM_RUN පරිසර විචල්‍යය එක් කර ඇත, එය නූල් ආරම්භක විධානය ක්‍රියාත්මක කිරීමට ධාවන කාලය කියයි, එය අපගේ OpenShift පොඩ් එක තුළ ප්‍රතික්‍රියා සංවර්ධන සේවාදායකය ආරම්භ කරයි.

ඔබ ධාවනය වන පොඩ් එකක ලොගය දෙස බැලුවහොත්, මේ වගේ දෙයක් වනු ඇත:

OpenShift හි නවීන යෙදුම්, 3 කොටස: සංවර්ධන පරිසරයක් ලෙස OpenShift සහ OpenShift නල මාර්ග

ඇත්ත වශයෙන්ම, අපට දේශීය කේතය කේතය සමඟ සමමුහුර්ත කළ හැකි වන තෙක් මේ සියල්ල කිසිවක් නොවනු ඇත, එය වෙනස්කම් සඳහා ද පාලනය වන නමුත් දුරස්ථ සේවාදායකයක ජීවත් වේ.

දුරස්ථ සහ දේශීය කේතය සමමුහුර්ත කිරීම

වාසනාවකට මෙන්, 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 විධානයට ඉහළින් ඇති වියුක්තයකි, ඔබට මෙය ක්‍රියා කරන ආකාරය ගැන වැඩිදුර ඉගෙන ගත හැකිය. මෙහි.

මෙය ප්‍රතික්‍රියා සඳහා උදාහරණයක් විය, නමුත් එම ක්‍රමයම වෙනත් රාමු සමඟ භාවිතා කළ හැක, අවශ්‍ය පරිදි NPM_RUN පරිසර විචල්‍යය සකසන්න.

Openshift නල මාර්ග

OpenShift හි නවීන යෙදුම්, 3 කොටස: සංවර්ධන පරිසරයක් ලෙස OpenShift සහ OpenShift නල මාර්ග

මීළඟට, අපි OpenShift Pipelines වැනි මෙවලමක් ගැන සහ එය දම්වැල් සහිත ගොඩනැගීමට විකල්පයක් ලෙස භාවිතා කළ හැකි ආකාරය ගැන කතා කරමු.

OpenShift Pipelines යනු කුමක්ද?

OpenShift Pipelines යනු Tekton භාවිතා කරන නල මාර්ග සඳහා වලාකුළු මත පදනම් වූ CI/CD අඛණ්ඩ ඒකාබද්ධ කිරීමේ සහ බෙදා හැරීමේ පද්ධතියකි. Tekton යනු විවෘත මූලාශ්‍ර, නම්‍යශීලී Kubernetes ස්වදේශීය CI/CD රාමුවක් වන අතර එය යටින් පවතින ස්ථරයෙන් වියුක්ත කිරීමෙන් බහු වේදිකා (Kubernetes, serverless, virtual machines, etc.) හරහා ස්වයංක්‍රීයව යෙදවීම සිදු කරයි.

මෙම ලිපිය අවබෝධ කර ගැනීම සඳහා නල මාර්ග පිළිබඳ යම් දැනුමක් අවශ්‍ය වේ, එබැවින් පළමුව කියවීමට අපි ඔබට තරයේ අවවාද කරමු නිල පෙළ පොත.

වැඩ කරන පරිසරය සැකසීම

මෙම ලිපියේ ඇති උදාහරණ සමඟ සෙල්ලම් කිරීමට, ඔබ මුලින්ම වැඩ කරන පරිසරයක් සකස් කළ යුතුය:

  1. OpenShift 4 පොකුරක් ස්ථාපනය කර වින්‍යාස කරන්න. අපගේ උදාහරණ මේ සඳහා CodeReady Containers (CRD) භාවිතා කරයි, ස්ථාපන උපදෙස් සොයා ගත හැක. මෙහි.
  2. පොකුර සූදානම් වූ පසු, ඔබ එය මත නල මාර්ග ක්රියාකරු ස්ථාපනය කළ යුතුය. බිය නොවන්න, එය පහසු, ස්ථාපන උපදෙස් මෙහි.
  3. බාගත ටෙක්ටන් CLI (tkn) මෙහි.
  4. පසුව යොදවනු ලබන යෙදුමක් සෑදීමට create-react-app විධාන රේඛා මෙවලම ධාවනය කරන්න (මෙය සරල යෙදුමකි React).
  5. (විකල්ප) npm ස්ථාපනය සහ පසුව npm ආරම්භය සමඟ නියැදි යෙදුම දේශීයව ධාවනය කිරීමට ගබඩාව ක්ලෝන කරන්න.

යෙදුම් ගබඩාවේ k8s ෆෝල්ඩරයක් ද ඇත, එහි යෙදුම යෙදවීමට භාවිතා කරන Kubernetes/OpenShift YAML අඩංගු වේ. මෙහි අපි නිර්මාණය කරන Tasks, ClusterTasks, Resources සහ Pipelines ඇත. ගබඩා.

අපි පටන් ගනිමු

අපගේ උදාහරණයේ පළමු පියවර වන්නේ 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

දැන් අපි cluster tasks දෙකක් හදමු. පළමුවැන්න S2I රූපයක් ජනනය කර එය අභ්‍යන්තර OpenShift රෙජිස්ට්‍රිය වෙත යවනු ඇත; දෙවැන්න නම්, අප දැනටමත් අන්තර්ගතය ලෙස ගොඩනගා ඇති යෙදුම භාවිතයෙන් අපගේ NGINX-පාදක රූපය ගොඩනැගීමයි.

රූපයක් සාදා එවන්න

පළමු කාර්යය නිර්මාණය කරන විට, සම්බන්ධිත එකලස්කිරීම් පිළිබඳව පෙර ලිපියේ අප දැනටමත් කළ දේ නැවත නැවතත් කරන්නෙමු. අපගේ යෙදුම "ගොඩනැගීමට" අපි S2I රූපය (ubi8-s2i-web-app) භාවිතා කළ බව මතක තබා ගන්න, සහ අභ්‍යන්තර OpenShift රෙජිස්ට්‍රියේ ගබඩා කර ඇති රූපයක් සමඟ අවසන් විය. අපි දැන් අපගේ යෙදුම සඳහා DockerFile නිර්මාණය කිරීමට මෙම S2I වෙබ් යෙදුම් රූපය භාවිතා කරන්නෙමු, ඉන්පසු ඔබ NodeShift භාවිතයෙන් ඔබේ යෙදුම් යෙදවීමේදී OpenShift කරන්නේ මෙය හරියටම වන බැවින්, ප්‍රතිඵලයක් ලෙස ලැබෙන රූපය OpenShift අභ්‍යන්තර රෙජිස්ට්‍රිය වෙත ගොඩනඟා තල්ලු කිරීමට Buildah භාවිතා කරන්නෙමු.

අපි මේ සියල්ල දන්නේ කෙසේද, ඔබ අසයි? සිට නිල 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

පෙරනිමියෙන්, මෙම පරාමිතිය බිල්ඩ් වේ, එහිදී ප්‍රතික්‍රියා ගොඩනඟන ලද අන්තර්ගතය තබයි. වෙනත් රාමු විවිධ මාර්ග භාවිතා කරයි, උදාහරණයක් ලෙස Ember එය dist වේ. අපගේ පළමු පොකුරු කාර්යයේ ප්‍රතිදානය වනුයේ අප විසින් එකතු කර ඇති HTML, JavaScript සහ CSS අඩංගු රූපයකි.

අපි NGINX මත පදනම්ව රූපයක් ගොඩනඟමු

අපගේ දෙවන පොකුරු කාර්යය සඳහා, එය අප විසින් දැනටමත් ගොඩනගා ඇති යෙදුමේ අන්තර්ගතය භාවිතා කරමින් NGINX මත පදනම් වූ රූපයක් ගොඩනගා ගත යුතුය. ඇත්ත වශයෙන්ම, මෙය අපි දම්වැල් සහිත ගොඩනැඟිලි දෙස බැලූ පෙර කොටසේ කොටසයි.

මෙය සිදු කිරීම සඳහා, අපි - ටිකක් ඉහත ආකාරයටම - webapp-build-runtime cluster task එකක් සාදනු ඇත:

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

ඔබ මෙම පොකුරු කාර්යයන් සඳහා කේතය දෙස බැලුවහොත්, එය අප වැඩ කරන Git ගබඩාව හෝ අප නිර්මාණය කරන පින්තූරවල නම් සඳහන් නොකරන බව ඔබට පෙනෙනු ඇත. අපි 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 වර්ගයකි. params කොටසේ url යතුර නිශ්චිත ගබඩාවක් වෙත යොමු කර ප්රධාන ශාඛාව සකසයි (මෙය විකල්ප වේ, නමුත් අපි එය සම්පූර්ණත්වය සඳහා ලියන්නෙමු).

දැන් අපට රූපය සඳහා සම්පතක් සෑදිය යුතුය, එහිදී 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

මෙහිදී, PipelineResource රූපයේ වර්ගය වන අතර, url පරාමිතියේ අගය අභ්‍යන්තර OpenShift Image Registry වෙත යොමු කරයි, විශේෂයෙන්ම webapp-pipeline namespace හි ඇති එක. ඔබ වෙනත් නාම අවකාශයක් භාවිතා කරන්නේ නම් මෙම සැකසුම වෙනස් කිරීමට මතක තබා ගන්න.

අවසාන වශයෙන්, අපට අවශ්‍ය අවසාන සම්පත ද ආකාරයේ රූපයක් වනු ඇති අතර, මෙය අවසාන 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

නැවතත්, මෙම සම්පත webapp-pipeline namespace හි අභ්‍යන්තර OpenShift රෙජිස්ට්‍රිය තුළ රූපය ගබඩා කරන බව සලකන්න.

මෙම සියලු සම්පත් එකවර නිර්මාණය කිරීම සඳහා, අපි create විධානය භාවිතා කරමු:

$ 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 සම්පත්) සහ ප්‍රතිදානය (බිල්ට්-වෙබ්-යෙදුම්-රූප සම්පත්) පරාමිතීන් ගනී. අපි ස්වයං අත්සන් කළ සහතික භාවිතා කරන බැවින් එය TLS සත්‍යාපනය නොකරන ලෙස අපි එයට විශේෂ පරාමිතියක් ද ලබා දෙන්නෙමු:

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

මීළඟ කාර්යය බොහෝ දුරට සමාන වේ, අපි දැනටමත් නිර්මාණය කර ඇති webapp-build-runtime cluster කාර්යය පමණක් මෙහි කැඳවනු ලැබේ:

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

මෙම අවස්ථාවෙහිදී, විධාන රේඛාව අන්තර්ක්‍රියාකාරීව භාවිතා කරන අතර එහි එක් එක් ඉල්ලීම්වලට ප්‍රතිචාර වශයෙන් සුදුසු සම්පත් තෝරාගත යුතුය: git සම්පත් සඳහා, web-application-repo තෝරන්න, ඉන්පසු පළමු රූප සම්පත් සඳහා, build-web-application- රූපය, සහ අවසාන වශයෙන් දෙවන රූප සම්පත් සඳහා - ධාවන කාලය-වෙබ්-යෙදුම-රූපය:

? 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 සහ OpenShift නල මාර්ග

Fig.1. ධාවන නල මාර්ග පිළිබඳ දළ විශ්ලේෂණය.

ධාවන නල මාර්ගයක් මත ක්ලික් කිරීමෙන් රූප සටහන 2 හි පෙන්වා ඇති පරිදි අමතර විස්තර පෙන්වයි.

OpenShift හි නවීන යෙදුම්, 3 කොටස: සංවර්ධන පරිසරයක් ලෙස OpenShift සහ OpenShift නල මාර්ග

සහල්. 2. වාහකය පිළිබඳ අමතර තොරතුරු.

වැඩි විස්තර වලින් පසුව, ඔබට දර්ශනයේ ධාවනය වන යෙදුම් දැකිය හැකිය විෂ විද්යාව, Fig.3 හි පෙන්වා ඇති පරිදි.

OpenShift හි නවීන යෙදුම්, 3 කොටස: සංවර්ධන පරිසරයක් ලෙස OpenShift සහ OpenShift නල මාර්ග

රූපය 3. ධාවන පොඩ්.

රූපය 4 හි පෙන්වා ඇති පරිදි අයිකනයේ ඉහළ දකුණු කෙළවරේ ඇති රවුම මත ක්ලික් කිරීමෙන් අපගේ යෙදුම විවෘත වේ.

OpenShift හි නවීන යෙදුම්, 3 කොටස: සංවර්ධන පරිසරයක් ලෙස OpenShift සහ OpenShift නල මාර්ග

සහල්. 4. ධාවනය වන ප්‍රතික්‍රියා යෙදුමක්.

නිගමනය

එබැවින්, OpenShift හි ඔබගේ යෙදුම සඳහා සංවර්ධන සේවාදායකයක් ධාවනය කර එය දේශීය ගොනු පද්ධතිය සමඟ සමමුහුර්ත කරන්නේ කෙසේදැයි අපි පෙන්වා දී ඇත. අපි OpenShift Pipelines භාවිතයෙන් දම්වැලකින් සාදන ලද අච්චුවක් අනුකරණය කරන්නේ කෙසේදැයි සොයා බැලුවෙමු. මෙම ලිපියෙන් සියලුම උදාහරණ කේත සොයා ගත හැක මෙහි.

අතිරේක සම්පත්

ඉදිරියට එන webinars පිළිබඳ නිවේදන

අපි Red Hat OpenShift බහාලුම් වේදිකාව සහ Kubernetes භාවිතා කිරීමේ දේශීය අත්දැකීම ගැන සිකුරාදා webinars මාලාවක් ආරම්භ කරමු:

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න