GitOps፡ የመጎተት እና የግፋ ዘዴዎችን ማወዳደር

ማስታወሻ. ትርጉም: በኩበርኔትስ ማህበረሰብ ውስጥ, በግላችን እንዳየነው, GitOps የሚባል አዝማሚያ ግልጽ ተወዳጅነት እያገኘ ነው. መጎብኘት KubeCon Europe 2019. ይህ ቃል በአንጻራዊነት በቅርብ ጊዜ ነበር። ፈለሰፈ በ Weaveworks ኃላፊ - አሌክሲስ ሪቻርድሰን - እና ማለት የአሠራር ችግሮችን ለመፍታት ለገንቢዎች የተለመዱ መሳሪያዎችን (በዋነኝነት Git, ስለዚህም ስሙ) መጠቀም ማለት ነው. በተለይም ስለ ኩበርኔትስ አሠራር እየተነጋገርን ያለነው አወቃቀሮቹን በጊት ውስጥ በማከማቸት እና በክላስተር ላይ ለውጦችን በራስ-ሰር በማሰራጨት ነው። ማቲያስ ጄግ በዚህ ጽሑፍ ውስጥ ስለ ሁለት አቀራረቦች ይናገራል።

GitOps፡ የመጎተት እና የግፋ ዘዴዎችን ማወዳደር

ባለፈው አመት (በእርግጥ ይህ በኦገስት 2017 ተከሰተ - በግምት። መተርጎም።) በ Kubernetes ውስጥ መተግበሪያዎችን ለማሰማራት አዲስ አቀራረብ አለ። እሱ GitOps ይባላል፣ እና በመሠረታዊ ሀሳብ ላይ የተመሰረተ ነው የማሰማራት ስሪቶች በ Git ማከማቻ ደህንነቱ የተጠበቀ አካባቢ ክትትል የሚደረግባቸው።

የዚህ ዘዴ ዋና ጥቅሞች የሚከተሉት ናቸው.:

  1. የስምሪት ሥሪት እና ለውጥ ታሪክ. የጠቅላላው ስብስብ ሁኔታ በጂት ማከማቻ ውስጥ ተከማችቷል፣ እና ማሰማራቶች የሚዘመኑት በቃል ኪዳን ብቻ ነው። በተጨማሪም ፣ ሁሉም ለውጦች የቁርጥ ታሪክን በመጠቀም መከታተል ይችላሉ።
  2. የታወቁ የ Git ትዕዛዞችን በመጠቀም ተመላሾች. ቀላል git reset በማሰማራት ላይ ለውጦችን እንደገና እንዲያስጀምሩ ይፈቅድልዎታል; ያለፉ ግዛቶች ሁል ጊዜ ይገኛሉ።
  3. ዝግጁ የመዳረሻ መቆጣጠሪያ. በተለምዶ የጂት ሲስተም ብዙ ሚስጥራዊ መረጃዎችን ይዟል፣ስለዚህ አብዛኛዎቹ ኩባንያዎች እሱን ለመጠበቅ ልዩ ትኩረት ይሰጣሉ። በዚህ መሠረት ይህ ጥበቃ ከተሰማሩ ጋር ለሚደረጉ ሥራዎችም ይሠራል።
  4. የማሰማራት ፖሊሲዎች. አብዛኛው የጂት ሲስተሞች የቅርንጫፍ በቅርንጫፍ ፖሊሲዎችን ይደግፋሉ—ለምሳሌ፣ የመሳብ ጥያቄዎች ማስተርን ማዘመን የሚችሉት፣ እና ለውጦች በሌላ የቡድን አባል መገምገም እና መቀበል አለባቸው። ልክ እንደ የመዳረሻ ቁጥጥር፣ ዝማኔዎችን ለማሰማራት ተመሳሳይ መመሪያዎች ተፈጻሚ ይሆናሉ።

እንደሚመለከቱት ፣ ለ GitOps ዘዴ ብዙ ጥቅሞች አሉት። ባለፈው ዓመት ሁለት አቀራረቦች ልዩ ተወዳጅነት አግኝተዋል. አንደኛው በመገፋፋት ላይ የተመሰረተ ነው, ሌላኛው ደግሞ በመጎተት ላይ የተመሰረተ ነው. እነሱን ከማየታችን በፊት በመጀመሪያ የኩበርኔትስ ማሰማራቶች ምን እንደሚመስሉ እንይ።

የማሰማራት ዘዴዎች

በቅርብ ዓመታት በኩበርኔትስ ውስጥ የተለያዩ የማሰማራት ዘዴዎች እና መሳሪያዎች ተመስርተዋል-

  1. ቤተኛ Kubernetes/አብነቶችን ብጁ አድርግ. መተግበሪያዎችን በ Kubernetes ላይ ለማሰማራት ቀላሉ መንገድ ይህ ነው። ገንቢው መሰረታዊ የ YAML ፋይሎችን ይፈጥራል እና ይተገበራል። ተመሳሳዩን አብነቶች ያለማቋረጥ መፃፍን ለማስወገድ Kustomize ተፈጠረ (የ Kubernetes አብነቶችን ወደ ሞጁሎች ይለውጣል)። ማስታወሻ. ትርጉም: Kustomize በ kubectl ውስጥ ተዋህዷል የኩበርኔትስ 1.14 መልቀቅ.
  2. Helm ገበታዎች. የ Helm ቻርቶች በአብነት ላይ ከተመሠረተ አቀራረብ ይልቅ የበለጠ ተለዋዋጭ የማበጀት አማራጮች ያላቸውን መተግበሪያዎች ለማሰማራት የሚያገለግሉ የአብነት ስብስቦችን ፣ የኢንቴል ኮንቴይነሮችን ፣ የጎን መኪናዎችን ፣ ወዘተ ለመፍጠር ያስችሉዎታል። ይህ ዘዴ በአብነት በተዘጋጁ YAML ፋይሎች ላይ የተመሰረተ ነው። ሄልም በተለያዩ መመዘኛዎች ይሞላቸዋል ከዚያም ወደ ክላስተር የሚያሰማራቸው እና ዝማኔዎችን እና መልሶ መመለስን ወደ ሚፈቅደው ወደ Tiller ይልካቸዋል። ዋናው ነገር ሄልም የሚፈለጉትን እሴቶች ወደ አብነቶች ውስጥ ያስገባል እና በባህላዊው መንገድ እንደሚደረገው በተመሳሳይ መንገድ መተግበሩ ነው። (ሁሉም እንዴት እንደሚሰራ እና በእኛ ውስጥ እንዴት እንደሚጠቀሙበት የበለጠ ያንብቡ ጽሑፍ በ Helm - በግምት. መተርጎም). ሰፋ ያሉ ተግባራትን የሚሸፍኑ የተለያዩ ዝግጁ የሆኑ የ Helm ገበታዎች አሉ።
  3. አማራጭ መሳሪያዎች. ብዙ አማራጭ መሳሪያዎች አሉ. ሁሉም የሚያመሳስላቸው ነገር አንዳንድ የአብነት ፋይሎችን ወደ Kubernetes-ሊነበብ የሚችል YAML ፋይሎች ቀይረው ከዚያ መጠቀማቸው ነው።

በስራችን ውስጥ, የ Helm ቻርቶችን ለአስፈላጊ መሳሪያዎች (ብዙ ነገር ዝግጁ ስለሆኑ, ህይወትን በጣም ቀላል ያደርገዋል) እና የራሳችንን አፕሊኬሽኖች ለማሰማራት "ንጹህ" Kubernetes YAML ፋይሎችን በቋሚነት እንጠቀማለን.

ጎትት እና ግፋ

በአንድ የቅርብ ጊዜ የብሎግ ጽሑፎቼ ውስጥ መሣሪያውን አስተዋውቄያለሁ Weave Flux, ይህም አብነቶችን ወደ Git ማከማቻ እንዲሰጡ እና ከእያንዳንዱ ቁርጠኝነት ወይም ግፊት በኋላ ስምምነቱን እንዲያዘምኑ ያስችልዎታል። የእኔ ተሞክሮ እንደሚያሳየው ይህ መሳሪያ የመሳብ አቀራረብን ከማስተዋወቅ ውስጥ አንዱ ነው, ስለዚህ እኔ ብዙ ጊዜ እጠቅሳለሁ. እንዴት እንደሚጠቀሙበት የበለጠ ማወቅ ከፈለጉ፣ እዚህ ወደ መጣጥፍ አገናኝ.

ኤን.ቢ. የጂትኦፕስ አጠቃቀም ሁሉም ጥቅሞች ለሁለቱም አቀራረቦች ተመሳሳይ እንደሆኑ ይቆያሉ።

በመጎተት ላይ የተመሰረተ አቀራረብ

GitOps፡ የመጎተት እና የግፋ ዘዴዎችን ማወዳደር

የመጎተት አቀራረብ ሁሉም ለውጦች ከጥቅል ውስጥ በመተግበሩ ላይ የተመሰረተ ነው. በክላስተር ውስጥ የተቆራኙትን Git እና Docker Registry ማከማቻዎችን በየጊዜው የሚፈትሽ ኦፕሬተር አለ። በእነሱ ላይ ማናቸውም ለውጦች ከተከሰቱ የክላስተር ሁኔታ በውስጥ ተዘምኗል። ማንኛውም የውጭ ደንበኛ የክላስተር አስተዳዳሪ መብቶችን ስለሌለው ይህ ሂደት በአጠቃላይ በጣም ደህንነቱ የተጠበቀ ነው ተብሎ ይታሰባል።

ምርቶች

  1. ማንም የውጭ ደንበኛ በክላስተር ላይ ለውጦችን የማድረግ መብት የለውም፤ ሁሉም ዝማኔዎች ከውስጥ ነው የሚለቀቁት።
  2. አንዳንድ መሳሪያዎች የ Helm ገበታ ዝመናዎችን እንዲያመሳስሉ እና ከጥቅሉ ጋር እንዲያገናኙ ያስችሉዎታል።
  3. Docker Registry ለአዲስ ስሪቶች ሊቃኘ ይችላል። አዲስ ምስል ካለ የጂት ማከማቻ እና ማሰማራቱ ወደ አዲሱ ስሪት ዘምኗል።
  4. የመጎተት መሳሪያዎች በተለያዩ የጂት ማከማቻዎች እና ፈቃዶች በተለያዩ የስም ቦታዎች ሊሰራጩ ይችላሉ። ለዚህም ምስጋና ይግባውና ባለብዙ-ተከራይ ሞዴል መጠቀም ይቻላል. ለምሳሌ፣ ቡድን A የስም ቦታን A፣ ቡድን B የስም ቦታን ሊጠቀም ይችላል፣ እና የመሠረተ ልማት ቡድኑ ዓለም አቀፍ ቦታን ሊጠቀም ይችላል።
  5. እንደ አንድ ደንብ መሳሪያዎቹ በጣም ቀላል ናቸው.
  6. እንደ ኦፕሬተር ካሉ መሳሪያዎች ጋር ተጣምሯል Bitnami የታሸጉ ሚስጥሮችሚስጥሮች በጂት ማከማቻ ውስጥ ተመስጥረው ሊቀመጡ እና በክላስተር ውስጥ ተሰርስረው ማግኘት ይችላሉ።
  7. በክላስተር ውስጥ መዘርጋት ስለሚከሰት ከሲዲ ቧንቧዎች ጋር ምንም ግንኙነት የለም.

Минусы:

  1. ከ Helm ቻርቶች የማሰማራት ሚስጥሮችን ማስተዳደር ከመደበኛዎቹ የበለጠ ከባድ ነው ፣ ምክንያቱም በመጀመሪያ ፣ የታሸጉ ምስጢሮች ፣ ከዚያ በውስጣዊ ኦፕሬተር ዲክሪፕት የተደረገ ፣ እና ከዚያ በኋላ ብቻ ለመጎተቻ መሣሪያው ይገኛሉ። ከዚያ ልቀቱን በ Helm ውስጥ አስቀድመው በተዘረጉ ምስጢሮች ውስጥ ካሉት እሴቶች ጋር ማሄድ ይችላሉ። በጣም ቀላሉ መንገድ ለማሰማራት ጥቅም ላይ በሚውሉት ሁሉም የሄልም እሴቶች ምስጢር መፍጠር ፣ ዲክሪፕት ማድረግ እና ለጊት መስጠት ነው።
  2. የመጎተት አቀራረብን ስትወስዱ, ለመጎተት መሳሪያዎች ታስረዋል. ይህ በክላስተር ውስጥ የማሰማራት ሂደቱን የማበጀት ችሎታን ይገድባል። ለምሳሌ፣ Kustomize የመጨረሻዎቹ አብነቶች ለጂት ከመሰጠታቸው በፊት መሮጥ ስላለበት ውስብስብ ነው። ገለልተኛ መሳሪያዎችን መጠቀም አይችሉም እያልኩ አይደለም፣ ነገር ግን ወደ እርስዎ የማሰማራት ሂደት ውስጥ ለመዋሃድ በጣም ከባድ ናቸው።

በግፊት ላይ የተመሠረተ አቀራረብ

GitOps፡ የመጎተት እና የግፋ ዘዴዎችን ማወዳደር

በግፊት አቀራረብ፣ ውጫዊ ስርዓት (በተለይ የሲዲ ቧንቧዎች) የጂት ማከማቻ ቦታ ላይ ቃል ከገቡ በኋላ ወይም ያለፈው CI ቧንቧ ስኬታማ ከሆነ ወደ ክላስተር ማሰማራት ይጀምራል። በዚህ አቀራረብ, ስርዓቱ ወደ ክላስተር መድረስ ይችላል.

ደማቅ:

  1. ደህንነት የሚወሰነው በጂት ማከማቻ እና የቧንቧ መስመር ግንባታ ነው።
  2. የ Helm ገበታዎችን መዘርጋት ቀላል እና የ Helm ተሰኪዎችን ይደግፋል።
  3. ሚስጥሮችን ለማስተዳደር ቀላል ናቸው ምክንያቱም ሚስጥሮች በቧንቧዎች ውስጥ ጥቅም ላይ ሊውሉ ስለሚችሉ እና በጂት ውስጥ ኢንክሪፕት ተደርጎ ሊቀመጡ ይችላሉ (በተጠቃሚው ምርጫ ላይ በመመስረት)።
  4. ማንኛውንም ዓይነት መጠቀም ስለሚቻል ከአንድ የተወሰነ መሣሪያ ጋር ምንም ግንኙነት የለም.
  5. የኮንቴይነር ሥሪት ማሻሻያ ግንባታው በቧንቧ መስመር ሊጀመር ይችላል።

Минусы:

  1. የክላስተር መዳረሻ ውሂቡ በግንባታ ስርዓቱ ውስጥ ነው።
  2. የማሰማራት ኮንቴይነሮችን ማዘመን አሁንም በመጎተት ሂደት ቀላል ነው።
  3. በሲዲ ስርዓት ላይ ከባድ ጥገኝነት፣ የምንፈልጋቸው የቧንቧ መስመሮች መጀመሪያ ላይ ለጂትላብ ሯጮች የተፃፉ ሊሆኑ ይችላሉ፣ እና ቡድኑ ወደ Azure DevOps ወይም Jenkins ለመዛወር ወሰነ ... እና ብዙ ቁጥር ያላቸው የግንባታ ቧንቧዎችን ማዛወር ይኖርበታል።

ውጤቶች፡ መግፋት ወይስ መጎተት?

እንደተለመደው እያንዳንዱ አቀራረብ ጥቅምና ጉዳት አለው. አንዳንድ ስራዎችን በአንዱ ለማከናወን ቀላል እና በሌላ ደግሞ የበለጠ ከባድ ናቸው. መጀመሪያ ላይ ማሰማራትን በእጅ እየሰራሁ ነበር፣ ነገር ግን ስለ Weave Flux ጥቂት መጣጥፎችን ካገኘሁ በኋላ፣ ለሁሉም ፕሮጀክቶች የጂትኦፕስ ሂደቶችን ተግባራዊ ለማድረግ ወሰንኩ። ለመሠረታዊ አብነቶች ይህ ቀላል ነበር፣ ግን ከዚያ በ Helm ገበታዎች ላይ ችግሮች ውስጥ መሮጥ ጀመርኩ። በዚያን ጊዜ Weave Flux የ Helm Chart ኦፕሬተርን የመጀመሪያ ስሪት ብቻ አቅርቧል ፣ ግን አሁን እንኳን አንዳንድ ስራዎች ምስጢሮችን በእጅ መፍጠር እና እነሱን መተግበር በጣም ከባድ ናቸው ። የክላስተር ምስክርነቶች ከጥቅሉ ውጭ ተደራሽ ስላልሆኑ የመጎተቱ አካሄድ የበለጠ ደህንነቱ የተጠበቀ ነው ብለው መከራከር ይችላሉ፣ ይህም የበለጠ ደህንነቱ የተጠበቀ በመሆኑ ተጨማሪ ጥረት የሚያስቆጭ ነው።

ትንሽ ካሰብኩ በኋላ ይህ አይደለም ወደሚል ያልተጠበቀ መደምደሚያ ደረስኩ። ከፍተኛ ጥበቃ ስለሚያስፈልጋቸው አካላት ከተነጋገርን ይህ ዝርዝር ሚስጥራዊ ማከማቻ፣ CI/CD ሲስተሞች እና የጂት ማከማቻዎችን ያካትታል። በውስጣቸው ያለው መረጃ በጣም የተጋለጠ እና ከፍተኛ ጥበቃ ያስፈልገዋል. በተጨማሪም፣ አንድ ሰው ወደ የእርስዎ Git ማከማቻ ውስጥ ከገባ እና እዚያ ኮድ መግፋት ከቻለ፣ የፈለገውን ማሰማራት (መጎተትም ሆነ መግፋት) እና የክላስተር ስርአቶችን ሰርጎ መግባት ይችላል። ስለዚህም ጥበቃ ሊደረግላቸው የሚገቡ በጣም አስፈላጊ አካላት የጊት ማከማቻ እና የሲአይ/ሲዲ ሲስተሞች እንጂ የክላስተር ምስክርነቶች አይደሉም። ለነዚህ አይነት ስርዓቶች በደንብ የተዋቀሩ ፖሊሲዎች እና የደህንነት ቁጥጥሮች ካሉዎት እና የክላስተር ምስክርነቶች ወደ ቧንቧ መስመሮች እንደ ሚስጥራዊነት ብቻ ከተወሰዱ፣ ተጨማሪ የመጎተት አቀራረብ ደህንነት መጀመሪያ እንደታሰበው ላይሆን ይችላል።

ስለዚህ የመጎተት አካሄድ የበለጠ ጉልበት የሚጠይቅ ከሆነ እና የደህንነት ጥቅም የማያስገኝ ከሆነ የግፊት አካሄድን ብቻ ​​መጠቀም ምክንያታዊ አይደለምን? ነገር ግን አንድ ሰው በግፊት አቀራረብ ውስጥ ከሲዲ ስርዓቱ ጋር በጣም የተሳሰሩ እንደሆኑ እና ምናልባትም ለወደፊቱ ስደትን ቀላል ለማድረግ ይህንን ባታደርጉ ይሻላል ብሎ ይከራከር ይሆናል።

በእኔ አስተያየት (እንደ ሁልጊዜም) ለአንድ የተወሰነ ጉዳይ በጣም ተስማሚ የሆነውን መጠቀም ወይም ማዋሃድ አለብዎት. በግሌ፣ ሁለቱንም አቀራረቦች እጠቀማለሁ፡ Weave Flux በአብዛኛው የራሳችንን አገልግሎቶች ለሚያካትቱ ፑል-ተኮር ማሰማራቶች፣ እና ከ Helm እና plugins ጋር የግፋ አቀራረብ፣ ይህም የ Helm ቻርቶችን በክላስተር ላይ መተግበርን ቀላል ያደርገዋል እና ሚስጥሮችን ያለችግር እንዲፈጥሩ ያስችልዎታል። እኔ እንደማስበው ለሁሉም ጉዳዮች ተስማሚ የሆነ አንድ ነጠላ መፍትሄ መቼም አይኖርም, ምክንያቱም ሁልጊዜ ብዙ ጥቃቅን ነገሮች አሉ እና እነሱ በልዩ መተግበሪያ ላይ የተመሰረቱ ናቸው. ይህ በተባለው ጊዜ፣ GitOpsን በጣም እመክራለሁ - ህይወትን በጣም ቀላል ያደርገዋል እና ደህንነትን ያሻሽላል።

በዚህ ርዕስ ላይ ያለኝ ልምድ የትኛው ዘዴ ለእርስዎ ማሰማራት ተስማሚ እንደሆነ ለመወሰን እንደሚረዳዎት ተስፋ አደርጋለሁ, እና አስተያየትዎን በመስማቴ ደስ ይለኛል.

PS ማስታወሻ ከተርጓሚው

የመጎተት ሞዴል ጉዳቱ የተቀረጹ ማኒፌክቶችን ወደ ጂት ማስገባት ከባድ ነው፣ ነገር ግን በፑል ሞዴል ውስጥ ያለው የሲዲ ቧንቧ መስመር ከታቀፉ ተነጥሎ የሚኖር እና በመሰረቱ የምድቡ የቧንቧ መስመር የሚሆንበት ጉዳቱ የለም። ቀጣይነት ያለው ማመልከቻ. ስለዚህ፣ ደረጃቸውን ከሁሉም ማሰማራቶች ለመሰብሰብ እና እንደምንም የምዝግብ ማስታወሻዎችን/ሁኔታን ለማግኘት በተለይም የሲዲውን ስርዓት በማጣቀስ የበለጠ ጥረት ማድረግ ያስፈልጋል።

ከዚህ አንፃር ፣ የግፋ ሞዴሉ ቢያንስ የተወሰኑ የመልቀቂያ ዋስትናዎችን እንድንሰጥ ያስችለናል ፣ ምክንያቱም የቧንቧው የህይወት ዘመን ከታቀፉ የህይወት ጊዜ ጋር እኩል ሊሆን ይችላል።

ሁለቱንም ሞዴሎች ሞክረን እንደ መጣጥፉ ደራሲ ተመሳሳይ መደምደሚያ ላይ ደርሰናል-

  1. በጣም ብዙ ዘለላዎች ላይ የስርዓት ክፍሎችን ዝማኔዎችን ለማደራጀት የመሳብ ሞዴሉ ተስማሚ ነው (ተመልከት. ስለ addon-operator ጽሑፍ).
  2. በ GitLab CI ላይ የተመሰረተው የግፋ ሞዴል የ Helm ቻርቶችን በመጠቀም አፕሊኬሽኖችን ለመልቀቅ ተስማሚ ነው። በተመሳሳይ ጊዜ በቧንቧዎች ውስጥ የተዘረጋው ዝርጋታ መሳሪያውን በመጠቀም ቁጥጥር ይደረግበታል werf. በነገራችን ላይ፣ በዚህ ፕሮጄክታችን አውድ ውስጥ፣ የዴቭኦፕስ መሐንዲሶችን አንገብጋቢ ችግሮች በ KubeCon Europe'19 ቆመን ስንወያይ “GitOps” ሰማን።

PPS ከተርጓሚ

በብሎጋችን ላይ ያንብቡ፡-

በዳሰሳ ጥናቱ ውስጥ የተመዘገቡ ተጠቃሚዎች ብቻ መሳተፍ ይችላሉ። ስግን እንእባክህን።

GitOps እየተጠቀሙ ነው?

  • አዎ አቀራረብን ይጎትቱ

  • አዎ ግፋ

  • አዎ ጎትት + ግፋ

  • አዎ, ሌላ ነገር

  • የለም

30 ተጠቃሚዎች ድምጽ ሰጥተዋል። 10 ተጠቃሚዎች ድምፀ ተአቅቦ አድርገዋል።

ምንጭ: hab.com

አስተያየት ያክሉ