ማስታወሻ. ትርጉምጽሑፉ የተጻፈው በሰባት የታተሙ መጽሐፍት (በተለይ በVMware vSphere) ደራሲ/ ተባባሪ ደራሲ በሆነው በአይቲ ውስጥ ብዙ ልምድ ያለው መሐንዲስ ስኮት ሎው ነው። አሁን ለ VMware ንዑስ Heptio (በ 2016 የተገኘ) በCloud ኮምፒውቲንግ እና በኩበርኔትስ ላይ ልዩ ሙያን ይሰራል። ጽሑፉ ራሱ ቴክኖሎጂን በመጠቀም ለኩበርኔትስ የውቅረት አስተዳደር እንደ አጭር እና ለመረዳት ቀላል መግቢያ ሆኖ ያገለግላል።
Kustomize ተጠቃሚዎች “ቀላል እና ከአብነት ነፃ የሆኑ YAML ፋይሎችን ለተለያዩ ዓላማዎች እንዲያበጁ፣ ዋናውን YAML ሳይበላሽ እና ጥቅም ላይ እንዲውል ለማድረግ የሚያስችል መሣሪያ ነው” (መግለጫ በቀጥታ የተበደረው ከ kubectl -k
ተግባራቱን ለመድረስ (ምንም እንኳን ከ Kubernetes 1.15 ጀምሮ, የተለየው ሁለትዮሽ በ kubectl ውስጥ ከተገነቡት ችሎታዎች የበለጠ አዲስ ነው). (ማስታወሻ. ትርጉምእና በቅርቡ ከተለቀቀው ጋር
በቀላል ቅጹ/አፕሊኬሽኑ፣ kustomize በቀላሉ የሀብቶች ስብስብ ነው (የKubernetes ነገሮችን የሚገልጹ የYAML ፋይሎች፡ ማሰማራቶች፣ አገልግሎቶች፣ ወዘተ.) እና በእነዚያ ሀብቶች ላይ መደረግ ያለባቸው ለውጦች መመሪያዎች ዝርዝር። ልክ በ ውስጥ ያለውን መመሪያ ስብስብ እንደሚጠቀም ሁሉ Makefile
, እና ዶከር በተሰጠው መመሪያ መሰረት መያዣውን ይገነባል Dockerfile
፣ አጠቃቀሞችን ያብጁ kustomization.yaml
ተጠቃሚው በንብረቶች ስብስብ ላይ ምን ለውጦች ማድረግ እንደሚፈልግ መመሪያዎችን ለማከማቸት.
አንድ ምሳሌ ፋይል ይኸውና kustomization.yaml
:
resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
environment: development
በፋይሉ ውስጥ ሊኖሩ ስለሚችሉት መስኮች ሁሉ ለመናገር አልሞክርም። kustomization.yaml
(ይህ በደንብ ተጽፏል
- መስክ
resources
ምን (የትኞቹን ሀብቶች) kustomiize እንደሚለውጥ ያሳያል። በዚህ አጋጣሚ በፋይሎች ውስጥ ሀብቶችን ይፈልጋልdeployment.yaml
иservice.yaml
በማውጫዎ ውስጥ (አስፈላጊ ከሆነ ሙሉ ወይም አንጻራዊ መንገዶችን መግለጽ ይችላሉ). - መስክ
namePrefix
የተወሰነ ቅድመ ቅጥያ እንዲጨምር kustomize ያስተምራል (በዚህ ሁኔታ -dev-
) ለመሰየምname
በመስክ ውስጥ የተገለጹ ሁሉም ሀብቶችresources
. ስለዚህ, ማሰማራት ካለname
ትርጉም ያለውnginx-deployment
፣ ማበጀት ያደርገዋልdev-nginx-deployment
. - መስክ
namespace
የተሰጠውን የስም ቦታ ወደ ሁሉም ሀብቶች ለመጨመር kustomize ያስተምራል። በዚህ አጋጣሚ ማሰማራት እና አገልግሎት በስም ቦታ ውስጥ ይወድቃሉdevelopment
. - በመጨረሻም ሜዳው
commonLabels
ወደ ሁሉም ሀብቶች የሚጨመሩ የመለያዎች ስብስብ ይዟል። በእኛ ምሳሌ ኩስቶሚዝ ከስሙ ጋር ለሀብቶቹ መለያ ይመድባል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 ጥቅል ከተቀናጀው የ kubectl ጥቅል በበለጠ ፍጥነት እንደሚዘመን አስታውስ (ቢያንስ ይህ በ Kubernetes 1.15 መለቀቅ ላይ ነው።)
አንባቢዎች “ፋይሎችን በቀጥታ ማርትዕ ከቻሉ ይህ ሁሉ ውስብስብ የሆነው ለምንድነው?” ብለው ይጠይቁ ይሆናል። ታላቅ ጥያቄ። በእኛ ምሳሌ ውስጥ, በእርግጥ ይችላል ፋይሎችን ቀይር deployment.yaml
и service.yaml
በቀጥታ፣ ግን የሌላ ሰው ፕሮጀክት ሹካ ከሆኑስ? ፋይሎችን መቀየር በመነሻው/ምንጭ ላይ ለውጦች ሲደረጉ ሹካውን እንደገና ለመመስረት (ከማይቻል) ከባድ ያደርገዋል። kustomize ን በመጠቀም እነዚህን ለውጦች በፋይል ውስጥ ማእከላዊ ለማድረግ ያስችልዎታል kustomization.yaml
ኦሪጅናል ፋይሎችን ሳይበላሹ በመተው አስፈላጊ ከሆነ ዋናውን ፋይሎች እንደገና መሠረት ማድረግ ቀላል ያደርገዋል።
የ kustomize ጥቅሞች ይበልጥ ውስብስብ በሆኑ የአጠቃቀም ጉዳዮች ላይ ግልጽ ይሆናሉ። ከላይ ባለው ምሳሌ kustomization.yaml
እና ሀብቶቹ በተመሳሳይ ማውጫ ውስጥ ናቸው. ሆኖም kustomize ድጋፎች የመሠረት ውቅር ባለበት እና ብዙ ተለዋጮች ያሉባቸውን ጉዳዮች ይጠቀማሉ፣ እንዲሁም በመባል ይታወቃሉ ተደራቢዎች።. ለምሳሌ፣ ተጠቃሚው እንደ ምሳሌ የተጠቀምኩትን ለ nginx Deployment and Service መውሰድ ፈልጎ ነበር፣ እና የእነዚያን ፋይሎች ልማት፣ ዝግጅት እና የምርት ስሪቶች (ወይም ተለዋጮች) መፍጠር። ይህንን ለማድረግ, ከላይ የተጠቀሱትን ተደራቢዎች እና, በመሠረቱ, መሰረታዊ መርጃዎችን እራሱ ያስፈልገዋል.
ተደራቢዎችን እና መሰረታዊ ሀብቶችን ሀሳብ ለማሳየት (መሰረታዊ ሀብቶች), ማውጫዎቹ የሚከተለው መዋቅር አላቸው ብለን እናስብ።
- 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 ውስጥ ተደራቢዎችን ስለመጠቀም ከፕሮጀክቱ ሰነድ የተገኘ ምሳሌ
ማበጀት ይችላል። ብዙ በዚህ ጽሑፍ ውስጥ ከተካተቱት በላይ. ይሁን እንጂ እንደ ጥሩ መግቢያ እንደሚያገለግል ተስፋ አደርጋለሁ.
ተጨማሪ መርጃዎች
ስለ kustomise ብዙ ጥሩ ጽሑፎች እና ህትመቶች አሉ። በተለይ ጠቃሚ ሆኖ ያገኘኋቸው ጥቂቶቹ እነሆ፡-
-
Kustomizeን በመጠቀም ለተለያዩ አካባቢዎች የ YAML ውቅር ለውጥ/ሙከራ ; -
Kustomize - ኩበርኔትስ ውስጥ ቴምፕሊንግ ለማድረግ ትክክለኛው መንገድ ; -
ማበጀትን በመጠቀም የኩበርኔትስ ዕቃዎች ገላጭ አስተዳደር ; -
Upstream Helm ገበታዎችን በብጁ ማድረግ .
ማስታወሻ. ትርጉም: እንዲሁም የታተመ አገናኞች ብሎክ እንመክራለን ይችላሉ
ይህን ጽሑፍ ለማሻሻል ጥያቄዎች ወይም ጥቆማዎች ካሉዎት፣ ሁልጊዜም ለግምገማ ክፍት ነኝ። በዚህ ሊያገኙኝ ይችላሉ።
PS ከተርጓሚ
በብሎጋችን ላይ ያንብቡ፡-
- «
በ Kubernetes ላይ ለሚሰሩ መተግበሪያዎች ገንቢዎች መሣሪያዎች "; - «
ኩበርኔትስ 1.14፡ የአዲሱ ነገር ዋና ዋና ዜናዎች "; - «
አምስተርዳም ውስጥ የሄልም ሰሚት 2019 አምስት ዋና ውጤቶች "; - «
ከ Kubernetes ጥቅል አስተዳዳሪ ጋር - ሄልም ».
ምንጭ: hab.com