د Kustomize لنډه پیژندنه

نوټ. ژباړه: مقاله د سکاټ لو لخوا لیکل شوې، د IT په برخه کې پراخه تجربه لرونکی انجنیر، څوک چې د اوو چاپ شویو کتابونو لیکوال / شریک لیکوال دی (په عمده توګه په VMware vSphere کې). هغه اوس د دې د VMware فرعي شرکت هپټیو لپاره کار کوي (په 2016 کې ترلاسه شوی) ، په کلاوډ کمپیوټري او کوبرنیټس کې تخصص لري. متن پخپله د ټیکنالوژۍ په کارولو سره د Kubernetes لپاره د تنظیم کولو مدیریت لپاره د لنډ او اسانه پوهیدو پیژندنې په توګه کار کوي دودیز کړئ، کوم چې پدې وروستیو کې د K8s برخه شوه.

د Kustomize لنډه پیژندنه

Kustomize یوه وسیله ده چې کاروونکو ته اجازه ورکوي چې "د مختلفو موخو لپاره ساده، د ټیمپلیټ څخه پاک YAML فایلونه دودیز کړي، اصلي YAML پاتې او د کارونې وړ پریږدي" (تفصیل په مستقیم ډول له دې څخه اخیستل شوی. په GitHub کې د ذخیره کولو تخصیص کول). Kustomize مستقیم چلول کیدی شي یا د Kubernetes 1.14 په څیر کارول کیږي kubectl -k د دې فعالیت ته د لاسرسي لپاره (که څه هم د کوبرنیټس 1.15 په څیر ، جلا بائنری په کوبکټل کې رامینځته شوي ظرفیتونو څخه نوی دی). (نوټ. ژباړه: او د وروستي خوشې کیدو سره کوبرنیټ 1.16 دودیز کول لخوا ملاتړ شوی هم په kubeadm یوټیلیټ کې.) پدې پوسټ کې ، زه غواړم لوستونکي د kustomize اساساتو ته معرفي کړم.

په دې ساده بڼه / غوښتنلیک کې، 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 لنډه پیژندنه
نوټ. ژباړه: د پروژې د اسنادو څخه د کسټمائز د "ساده" کارونې په اړه بیلګه

محصول بیا لیږل کیدی شي که بدلونونو ته اړتیا وي:

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 په اړه ډیری ښه مقالې او خپرونې شتون لري. دلته یو څو دي چې ما په ځانګړي ډول ګټور وموندل:

نوټ. ژباړه: تاسو کولی شئ د لینکونو یو بلاک هم وړاندیز کړئ لکه څنګه چې خپور شوی منابع د افادیت په ویب پا onه کې ، وروسته د ویډیوګانو ټولګه د kustomize په اړه وروستي راپورونو سره.

که تاسو د دې موادو د ښه کولو لپاره پوښتنې یا وړاندیزونه لرئ، زه تل د فیډبیک لپاره خلاص یم. تاسو کولی شئ ما سره اړیکه ونیسئ ټویټر او یا د کوبرنیټس سلیک چینل. د کسټمائز سره د خپلو منشورونو بدلولو کې خوند واخلئ!

PS د ژباړونکي څخه

زموږ په بلاګ کې هم ولولئ:

سرچینه: www.habr.com

Add a comment