نوټ. ژباړه: مقاله د سکاټ لو لخوا لیکل شوې، د IT په برخه کې پراخه تجربه لرونکی انجنیر، څوک چې د اوو چاپ شویو کتابونو لیکوال / شریک لیکوال دی (په عمده توګه په VMware vSphere کې). هغه اوس د دې د VMware فرعي شرکت هپټیو لپاره کار کوي (په 2016 کې ترلاسه شوی) ، په کلاوډ کمپیوټري او کوبرنیټس کې تخصص لري. متن پخپله د ټیکنالوژۍ په کارولو سره د Kubernetes لپاره د تنظیم کولو مدیریت لپاره د لنډ او اسانه پوهیدو پیژندنې په توګه کار کوي
Kustomize یوه وسیله ده چې کاروونکو ته اجازه ورکوي چې "د مختلفو موخو لپاره ساده، د ټیمپلیټ څخه پاک YAML فایلونه دودیز کړي، اصلي YAML پاتې او د کارونې وړ پریږدي" (تفصیل په مستقیم ډول له دې څخه اخیستل شوی. kubectl -k
د دې فعالیت ته د لاسرسي لپاره (که څه هم د کوبرنیټس 1.15 په څیر ، جلا بائنری په کوبکټل کې رامینځته شوي ظرفیتونو څخه نوی دی). (نوټ. ژباړه: او د وروستي خوشې کیدو سره
په دې ساده بڼه / غوښتنلیک کې، kustomize په ساده ډول د سرچینو مجموعه ده (د YAML فایلونه چې د Kubernetes څیزونه تعریفوي: ځای پرځای کول، خدمتونه، او نور) او د هغو بدلونونو لپاره د لارښوونو لیست چې اړتیا ورته ورته سرچینې ته اړتیا لري. لکه څنګه چې جوړ شوی د لارښوونې سیټ کاروي چې پکې شامل دي Makefile
، او ډاکر د لارښوونو پراساس کانټینر جوړوي Dockerfile
، استعمالونه دودیز کړئ kustomization.yaml
د دې په اړه لارښوونې ذخیره کول چې کاروونکي غواړي د سرچینو سیټ کې څه بدلون راولي.
دلته یو مثال فایل دی kustomization.yaml
:
resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
environment: development
زه به هڅه ونه کړم چې په فایل کې د ټولو ممکنه ساحو په اړه خبرې وکړم. kustomization.yaml
(دا په اړه ښه لیکل شوی
- ډګر
resources
په ګوته کوي چې څه (کوم سرچینې) kustomize به بدلون ومومي. په دې حالت کې، دا به په فایلونو کې سرچینې وګوريdeployment.yaml
иservice.yaml
ستاسو په لارښود کې (تاسو کولی شئ بشپړ یا اړونده لارې مشخص کړئ که اړتیا وي). - ډګر
namePrefix
kustomize ته لارښوونه کوي چې یو ځانګړي مختګ اضافه کړي (په دې حالت کې -dev-
) منسوب کولname
ټولې سرچینې په ساحه کې تعریف شويresources
. په دې توګه، که چیرې ګمارل شوي ويname
د معنی سرهnginx-deployment
, customize به دا جوړ کړيdev-nginx-deployment
. - ډګر
namespace
kustomize ته لارښوونه کوي چې ورکړل شوي نوم ځای ټولو سرچینو ته اضافه کړي. په دې حالت کې، ځای پرځای کول او خدمت به د نوم ځای ته راشيdevelopment
. - په پای کې، میدان
commonLabels
د لیبلونو سیټ لري چې ټولو سرچینو ته به اضافه شي. زموږ په مثال کې، kustomize به د نوم سره سرچینو ته لیبل وټاکيenvironment
او معنیdevelopment
.
که کارن کوي kustomize build .
د فایل سره لارښود کې kustomization.yaml
او اړینې سرچینې (د بیلګې په توګه فایلونه deployment.yaml
и service.yaml
)، بیا به په محصول کې دا د مشخص شوي بدلونونو سره متن ترلاسه کړي kustomization.yaml
.
نوټ. ژباړه: د پروژې د اسنادو څخه د کسټمائز د "ساده" کارونې په اړه بیلګه
محصول بیا لیږل کیدی شي که بدلونونو ته اړتیا وي:
kustomize build . > custom-config.yaml
د محصول ډاټا ټاکونکې ده (د ورته ان پټ ډاټا به د ورته محصول پایلې تولید کړي)، نو تاسو اړتیا نلرئ پایلې په فایل کې خوندي کړئ. پرځای یې، دا مستقیم بل قوماندې ته لیږدول کیدی شي:
kustomize build . | kubectl apply -f -
د kustomize ځانګړتیاوې له لارې هم لاسرسی کیدی شي kubectl -k
(د کوبرنیټس نسخه 1.14 راهیسې). په هرصورت، په یاد ولرئ چې د سټنډلون kustomize بسته د مدغم کیوبیکل کڅوړې په پرتله ګړندی تازه کیږي (لږترلږه دا د Kubernetes 1.15 خوشې کولو سره قضیه ده).
لوستونکي ممکن پوښتنه وکړي: "ولې دا ټول پیچلتیا که تاسو فایلونه مستقیم ترمیم کولی شئ؟" عالي پوښتنه. زموږ په مثال کې، واقعا کولای شي فایلونه تعدیل کړئ deployment.yaml
и service.yaml
مستقیم، مګر څه که دوی د بل چا د پروژې فورک وي؟ د فایلونو بدلول په مستقیم ډول دا ستونزمن کوي (که ناممکن نه وي) د فورک بیا ځای پرځای کول کله چې اصلي / سرچینې ته بدلونونه رامینځته کیږي. د kustomize کارول تاسو ته اجازه درکوي چې دا بدلونونه په فایل کې مرکزي کړئ kustomization.yaml
, اصلي فایلونه پاتې دي او پدې توګه د اړتیا په صورت کې د اصلي فایلونو بیا ځای کول اسانه کوي.
د kustomize ګټې په ډیر پیچلي کارولو قضیو کې څرګندیږي. په پورته مثال کې kustomization.yaml
او سرچینې په ورته لارښود کې دي. په هرصورت، kustomize د کارولو قضیو ملاتړ کوي چیرې چې د اساس ترتیب شتون لري او د هغې ډیری ډولونه چې په نوم هم پیژندل کیږي پوړونه. د مثال په توګه، یو کاروونکي غوښتل چې د نګینکس لپاره ځای پرځای کول او خدمت واخلي، کوم چې ما د مثال په توګه کارولی، او د دې فایلونو پراختیا، سټینګ او تولید نسخه (یا ډولونه) رامینځته کول. د دې کولو لپاره، هغه به پورته ذکر شوي پوښښ ته اړتیا ولري او په حقیقت کې، پخپله اساسي سرچینې.
د زیرمو او زیرمو سرچینو مفکورې روښانه کول (بنسټیزې سرچینې)، راځئ چې فرض کړو چې لارښودونه لاندې جوړښت لري:
- base
- deployment.yaml
- service.yaml
- kustomization.yaml
- overlays
- dev
- kustomization.yaml
- staging
- kustomization.yaml
- prod
- kustomization.yaml
په دوتنه کې base/kustomization.yaml
کارونکي چې ساحه کاروي resources
په ساده ډول هغه سرچینې اعلان کړئ چې کوسټمیز باید پکې شامل وي.
په هر فایل کې overlays/{dev,staging,prod}/kustomization.yaml
کاروونکي په ساحه کې د اساس ترتیب ته مراجعه کوي resources
، او بیا د دې لپاره ځانګړي بدلونونه په ګوته کړئ ورکړل شوی چاپیریال. د مثال په توګه، فایل overlays/dev/kustomization.yaml
ښایي د مثال په څیر ښکاري چې مخکې ورکړل شوی:
resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
environment: development
په دې صورت کې دوتنې overlays/prod/kustomization.yaml
کیدای شي په بشپړه توګه توپیر ولري:
resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
environment: production
sre-team: blue
کله چې کارن چلوي kustomize build .
په کتالګو کې overlays/dev
، kustomize به د پراختیا اختیار رامینځته کړي. که تاسو منډې وهئ kustomize build .
په کتالګو کې overlays/prod
- تاسو د تولید اختیار ترلاسه کوئ. او دا ټول - پرته له دې چې اصلي ته کوم بدلون راوړي (بنسټ) فایلونه، ټول په اعالناتي او ټاکونکي ډول. تاسو کولی شئ د اساس ترتیب او پوښښ لارښودونه مستقیم د نسخې کنټرول ته واستوئ ، پدې پوهیدل چې د دې فایلونو پراساس تاسو کولی شئ په هر وخت کې مطلوب ترتیب بیا تولید کړئ.
نوټ. ژباړه: په kustomize کې د پوښونو کارولو په اړه د پروژې اسنادو څخه بیلګه
تخصیص کولی شي ډیر د هغه څه څخه ډیر چې پدې مقاله کې پوښل شوي. په هرصورت، زه امید لرم چې دا د ښه پیژندنې په توګه کار کوي.
اضافي سرچینې
د kustomize په اړه ډیری ښه مقالې او خپرونې شتون لري. دلته یو څو دي چې ما په ځانګړي ډول ګټور وموندل:
-
د Kustomize په کارولو سره د مختلف چاپیریال تولید / ازموینې لپاره بیس YAML تشکیل بدل کړئ ; -
Kustomize - په Kubernetes کې د ټیمپلیټ کولو سمه لاره ; -
د Customize په کارولو سره د Kubernetes څیزونو اعلاناتي مدیریت ; -
د Customize سره د Upstream Helm چارټونو تنظیم کول .
نوټ. ژباړه: تاسو کولی شئ د لینکونو یو بلاک هم وړاندیز کړئ لکه څنګه چې خپور شوی
که تاسو د دې موادو د ښه کولو لپاره پوښتنې یا وړاندیزونه لرئ، زه تل د فیډبیک لپاره خلاص یم. تاسو کولی شئ ما سره اړیکه ونیسئ
PS د ژباړونکي څخه
زموږ په بلاګ کې هم ولولئ:
- «
په Kubernetes کې د غوښتنلیکونو پراختیا کونکو لپاره وسیلې » - «
Kubernetes 1.14: د اصلي نوښتونو عمومي کتنه » - «
په امستردام کې د هیلم غونډې 2019 پنځه اصلي پایلې » - «
د کبرنیټس - هیلم لپاره د بسته بندۍ مدیر ته عملي پیژندنه ".
سرچینه: www.habr.com