GitOps ምንድን ነው?

ማስታወሻ. ትርጉም: ከቅርብ ጊዜ ህትመት በኋላ ቁሳቁስ በ GitOps ውስጥ ስለ መጎተት እና መግፋት ዘዴዎች ፣ በአጠቃላይ በዚህ ሞዴል ላይ ፍላጎት አይተናል ፣ ግን በዚህ ርዕስ ላይ በጣም ጥቂት የሩሲያ ቋንቋ ህትመቶች ነበሩ (በቀላሉ በ Habré ላይ ምንም የሉም)። ስለዚህ፣ የሌላውን ጽሑፍ ትርጉም ለእርስዎ በማቅረብ ደስተኞች ነን - ምንም እንኳን ከአንድ ዓመት በፊት! - ከ Weaveworks፣ የዚ ጭንቅላት “ጂትኦፕስ” የሚለውን ቃል ፈጠረ። ጽሑፉ የአቀራረቡን ይዘት እና ከነባሮቹ ዋና ልዩነቶች ያብራራል.

ከአመት በፊት አሳትመናል። የ GitOps መግቢያ. ያኔ፣ የWeaveworks ቡድን በ Kubernetes ላይ የተመሰረተ SaaSን እንዴት እንዳስጀመረ እና በደመና ቤተኛ አካባቢ ውስጥ ለማሰማራት፣ ለማስተዳደር እና ለመከታተል የታቀዱ ምርጥ ተሞክሮዎችን አዘጋጅተናል።

ጽሑፉ ተወዳጅ ሆነ። ሌሎች ሰዎች ስለ GitOps ማውራት ጀመሩ እና አዳዲስ መሳሪያዎችን ማተም ጀመሩ git push, ልማት, ሚስጥሮች, ተግባሮች, ቀጣይነት ያለው ውህደት እናም ይቀጥላል. በእኛ ድር ጣቢያ ላይ ታየ ትልቅ ቁጥር ህትመቶች እና የ GitOps አጠቃቀም ጉዳዮች። ግን አንዳንድ ሰዎች አሁንም ጥያቄዎች አሏቸው። ሞዴሉ ከባህላዊው እንዴት ይለያል? መሠረተ ልማት እንደ ኮድ እና ቀጣይነት ያለው ማድረስ (ቀጣይነት ያለው አቅርቦት)? Kubernetes መጠቀም አስፈላጊ ነው?

ብዙም ሳይቆይ አዲስ መግለጫ እንደሚያስፈልግ ተገነዘብን ፣

  1. ብዙ ቁጥር ያላቸው ምሳሌዎች እና ታሪኮች;
  2. የ GitOps የተወሰነ ትርጉም;
  3. ከተለምዷዊ ተከታታይ አቅርቦት ጋር ማወዳደር.

በዚህ ጽሑፍ ውስጥ እነዚህን ሁሉ ርዕሶች ለመሸፈን ሞክረናል. ለ GitOps እና ለገንቢ እና ለሲአይ/ሲዲ እይታ የዘመነ መግቢያ ያቀርባል። ሞዴሉ በአጠቃላይ ሊጠቃለል ቢችልም በዋናነት በኩበርኔትስ ላይ እናተኩራለን.

GitOpsን ያግኙ

አሊስ በዓይነ ሕሊናህ ይታይህ። የቤተሰብ መድንን ትሰራለች፣ ይህም የጤና፣ የመኪና፣ የቤት እና የጉዞ ኢንሹራንስን ራሳቸው የውል ውሎቹን እና ውጣዎችን ለማወቅ በጣም ስራ ላይ ላሉ ሰዎች ነው። አሊስ በባንክ እንደ ዳታ ሳይንቲስት ስትሰራ ንግዷ እንደ ጎን ፕሮጀክት ጀመረ። አንድ ቀን የላቁ የኮምፒውተር ስልተ ቀመሮችን በመጠቀም መረጃን በብቃት ለመተንተን እና የኢንሹራንስ ፓኬጆችን ለመቅረጽ እንደምትችል ተገነዘበች። ባለሀብቶች ፕሮጀክቱን ፋይናንስ አድርገዋል፣ እና አሁን ኩባንያዋ በአመት ከ20 ሚሊዮን ዶላር በላይ ገቢ እያስገኘች እና በፍጥነት እያደገ ነው። በአሁኑ ወቅት 180 ሰዎችን በተለያዩ የስራ መደቦች ላይ ቀጥሯል። ይህ የቴክኖሎጂ ቡድን የሚያዳብር፣ ድህረ ገጹን የሚጠብቅ፣ የውሂብ ጎታውን እና የደንበኞችን መሰረት የሚተነትን ያካትታል። 60 ሰዎች ያሉት ቡድን የሚመራው የኩባንያው ቴክኒካል ዳይሬክተር በሆኑት ቦብ ነው።

የቦብ ቡድን የምርት ስርዓቶችን በደመና ውስጥ ያሰማራል። የእነርሱ ዋና መተግበሪያ በGoogle ክላውድ ላይ Kubernetes በመጠቀም በGKE ላይ ይሰራሉ። በተጨማሪም, በስራቸው ውስጥ የተለያዩ የመረጃ እና የትንታኔ መሳሪያዎችን ይጠቀማሉ.

የቤተሰብ ኢንሹራንስ ኮንቴይነሮችን ለመጠቀም አላሰበም፣ ነገር ግን በዶከር ግለት ውስጥ ገባ። ኩባንያው ብዙም ሳይቆይ GKE አዳዲስ ባህሪያትን ለመፈተሽ ስብስቦችን ለማሰማራት ቀላል እና ምንም ጥረት እንዳደረገ አወቀ። የመያዣውን መዝገብ ለማደራጀት ጄንኪንስ ለ CI እና Quay ተጨምረዋል ፣ ስክሪፕቶች ለጄንኪንስ ተፃፉ አዲስ ኮንቴይነሮችን እና ውቅሮችን ወደ GKE ገፋ።

የተወሰነ ጊዜ አልፏል. አሊስ እና ቦብ በመረጡት አቀራረብ አፈጻጸም እና በንግዱ ላይ ባለው ተጽእኖ ቅር ተሰኝተው ነበር። የኮንቴይነሮች መግቢያ ቡድኑ ያሰበውን ያህል ምርታማነትን አላሻሻለም። አንዳንድ ጊዜ ማሰማራቶች ይሰበራሉ፣ እና የኮድ ለውጦች ተጠያቂ መሆን አለመሆኑ ግልጽ አልነበረም። እንዲሁም የውቅር ለውጦችን መከታተል አስቸጋሪ ሆኖ ተገኝቷል። ብዙውን ጊዜ አዲስ ክላስተር መፍጠር እና አፕሊኬሽኖችን ወደ እሱ ማዛወር አስፈላጊ ነበር ፣ ምክንያቱም ስርዓቱ የተፈጠረውን ውዥንብር ለማስወገድ ቀላሉ መንገድ ይህ ነው። አሊስ አፕሊኬሽኑ እያደገ ሲሄድ ሁኔታው ​​እየባሰበት እንደሚሄድ ፈርታ ነበር (በተጨማሪም በማሽን መማር ላይ የተመሰረተ አዲስ ፕሮጀክት እየፈለቀ ነበር)። ቦብ አብዛኛውን ስራውን በራስ ሰር ሰርቶ ነበር እና ለምን የቧንቧ መስመር አሁንም ያልተረጋጋ፣ ያልተመጣጠነ እና በየጊዜው የእጅ ጣልቃ ገብነት ለምን እንደሚያስፈልገው አልገባውም?

ከዚያ ስለ GitOps ተማሩ። ይህ ውሳኔ በልበ ሙሉነት ወደፊት ለመራመድ የሚያስፈልጋቸውን በትክክል ሆነ።

አሊስ እና ቦብ ስለ Git፣ DevOps እና መሠረተ ልማት እንደ ኮድ የስራ ፍሰቶች ለዓመታት ሲሰሙ ቆይተዋል። ስለ GitOps ልዩ የሆነው እነዚህን ሃሳቦች በኩበርኔትስ አውድ ውስጥ ተግባራዊ ለማድረግ የምርጥ ልምዶችን ስብስብ - ወሳኝ እና መደበኛ - ያመጣል። ይህ ጭብጥ በተደጋጋሚ ተነሳውስጥ ጨምሮ፣ Weaveworks ብሎግ.

የቤተሰብ መድን GitOpsን ተግባራዊ ለማድረግ ይወስናል። ኩባንያው አሁን ከኩበርኔትስ ጋር ተኳሃኝ የሆነ አውቶሜትድ ኦፕሬሽን ሞዴል አለው። ፍጥነት ከ ጋር መረጋጋትምክንያቱም እነሱ፡-

  • ማንም ሳያብድ የቡድኑ ምርታማነት በእጥፍ ጨምሯል;
  • ስክሪፕቶችን ማገልገል አቁሟል። ይልቁንም አሁን በአዳዲስ ባህሪያት ላይ ማተኮር እና የምህንድስና ዘዴዎችን ማሻሻል ይችላሉ - ለምሳሌ የካናሪ ልቀቶችን ማስተዋወቅ እና ሙከራን ማሻሻል;
  • የማሰማራት ሂደቱን አሻሽለነዋል ስለዚህም እምብዛም አይሰበርም;
  • ያለ በእጅ ጣልቃ ገብነት ከፊል ውድቀቶች በኋላ ስምምነቶችን ወደነበረበት ለመመለሾ እድሉን አገኘ ፣
  • ጥቅም ላይ የዋለ የተገዛоበአቅርቦት ስርዓቶች ላይ የበለጠ በራስ መተማመን. አሊስ እና ቦብ ቡድኑን በትይዩ የሚሰሩ ማይክሮ ሰርቪስ ቡድኖች ሊከፋፈሉ እንደሚችሉ አወቁ።
  • በእያንዳንዱ ቡድን ጥረቶች በየቀኑ በፕሮጀክቱ ላይ 30-50 ለውጦችን ማድረግ እና አዳዲስ ቴክኒኮችን መሞከር ይችላል;
  • አዳዲስ ገንቢዎችን ወደ ፕሮጀክቱ ለመሳብ ቀላል ነው ፣ በጥቂት ሰዓታት ውስጥ የመሳብ ጥያቄዎችን በመጠቀም ወደ ምርት ዝመናዎችን ለመልቀቅ እድሉ ያላቸው ፣
  • በቀላሉ በ SOC2 ማዕቀፍ ውስጥ ኦዲት ማለፍ (አገልግሎት አቅራቢዎችን ደህንነቱ የተጠበቀ የውሂብ አስተዳደር መስፈርቶችን ለማክበር ፣ የበለጠ ያንብቡ ፣ ለምሳሌ ፣ እዚህ - በግምት. መተርጎም).

ምንድን ነው የሆነው?

GitOps ሁለት ነገሮች ናቸው፡-

  1. የክወና ሞዴል ለ Kubernetes እና የደመና ተወላጅ። በኮንቴይነር የተያዙ ስብስቦችን እና አፕሊኬሽኖችን ለማሰማራት፣ ለማስተዳደር እና ለመቆጣጠር ምርጥ ተሞክሮዎችን ያቀርባል። በቅጹ ውስጥ የሚያምር ፍቺ አንድ ስላይድ от ሉዊስ Faceira:
  2. ገንቢን ያማከለ የመተግበሪያ አስተዳደር አካባቢን የመፍጠር መንገድ። የጊት የስራ ፍሰትን ለሁለቱም ኦፕሬሽኖች እና ልማት እንተገብራለን። እባክዎን ይህ ስለ Git push ብቻ ሳይሆን አጠቃላይ የCI/CD እና UI/UX መሳሪያዎችን ማደራጀት ላይ መሆኑን ልብ ይበሉ።

ስለ Git ጥቂት ቃላት

የስሪት ቁጥጥር ስርዓቶችን እና በጂት ላይ የተመሰረተ የስራ ፍሰትን ካላወቁ ስለእነሱ እንዲማሩ አበክረን እንመክራለን። ከቅርንጫፎች ጋር መሥራት እና ጥያቄዎችን መሳብ መጀመሪያ ላይ እንደ ጥቁር አስማት ሊመስል ይችላል, ነገር ግን ጥቅሞቹ ጥረታቸው የሚገባቸው ናቸው. እዚህ ጥሩ ጽሑፍ መጀመር.

Kubernetes እንዴት እንደሚሰራ

በታሪካችን፣ አሊስ እና ቦብ ከኩበርኔትስ ጋር ለተወሰነ ጊዜ ከሰሩ በኋላ ወደ GitOps ዞረዋል። በእርግጥ GitOps ከ Kubernetes ጋር በቅርበት የተዛመደ ነው - እሱ በ Kubernetes ላይ የተመሠረተ የመሠረተ ልማት እና የመተግበሪያዎች ሞዴል ነው።

Kubernetes ለተጠቃሚዎች ምን ይሰጣል?

አንዳንድ ዋና ዋና ባህሪያት እነኚሁና:

  1. በ Kubernetes ሞዴል ውስጥ, ሁሉም ነገር ገላጭ በሆነ መልኩ ሊገለጽ ይችላል.
  2. የኩበርኔትስ ኤፒአይ አገልጋይ ይህንን መግለጫ እንደ ግብአት ይወስደዋል እና በመቀጠል ዘለላውን በማወጃው ውስጥ ወደተገለጸው ግዛት ለማምጣት ይሞክራል።
  3. መግለጫዎች የተለያዩ የሥራ ጫናዎችን ለመግለፅ እና ለማስተዳደር በቂ ናቸው—“መተግበሪያዎች”።
  4. በውጤቱም፣ በመተግበሪያው እና በክላስተር ላይ የተደረጉ ለውጦች በሚከተሉት ምክንያት ይከሰታሉ፡-
    • የመያዣ ምስሎች ለውጦች;
    • በመግለጫው ዝርዝር ላይ ለውጦች;
    • በአከባቢው ውስጥ ያሉ ስህተቶች - ለምሳሌ የመያዣ ብልሽቶች.

የኩበርኔትስ ታላቅ የመገጣጠም ችሎታዎች

አንድ አስተዳዳሪ የውቅረት ለውጦችን ሲያደርግ የኩበርኔትስ ኦርኬስትራ ግዛቱ እስካለ ድረስ በክላስተር ላይ ይተገብራቸዋል። ወደ አዲሱ ውቅር አይቀርብም።. ይህ ሞዴል ለማንኛውም የኩበርኔትስ ግብአት የሚሰራ እና በብጁ የመረጃ ፍቺዎች (ሲአርዲዎች) ሊሰፋ የሚችል ነው። ስለዚህ የኩበርኔትስ ማሰማራቶች የሚከተሉት አስደናቂ ባህሪያት አሏቸው።

  • አውቶማቲክየኩበርኔትስ ዝመናዎች ለውጦችን በጸጋ እና በጊዜ የመተግበር ሂደትን በራስ-ሰር ለማድረግ የሚያስችል ዘዴ ይሰጣሉ።
  • መገጣጠም።ኩበርኔትስ ስኬታማ እስኪሆን ድረስ ዝመናዎችን መሞከሩን ይቀጥላል።
  • አለመቻል: ተደጋጋሚ የመገናኘት ማመልከቻዎች ወደ ተመሳሳይ ውጤት ያመራሉ.
  • ቆራጥነት: ሀብቶች በቂ ሲሆኑ፣ የዘመነው የክላስተር ሁኔታ በተፈለገው ሁኔታ ላይ ብቻ የተመካ ነው።

GitOps እንዴት እንደሚሰራ

GitOps እንዴት እንደሚሰራ ለማብራራት ስለ Kubernetes በበቂ ሁኔታ ተምረናል።

ወደ ቤተሰብ መድን የማይክሮ አገልግሎት ቡድኖች እንመለስ። ብዙውን ጊዜ ምን ማድረግ አለባቸው? ከዚህ በታች ያለውን ዝርዝር ይመልከቱ (በእሱ ውስጥ ያሉ ማናቸውም ዕቃዎች እንግዳ ወይም ያልተለመዱ የሚመስሉ ከሆኑ እባክዎን ከመተቸት ይቆጠቡ እና ከእኛ ጋር ይቆዩ)። እነዚህ በጄንኪንስ ላይ የተመሰረቱ የስራ ፍሰቶች ምሳሌዎች ናቸው። ከሌሎች መሳሪያዎች ጋር ሲሰሩ ሌሎች ብዙ ሂደቶች አሉ.

ዋናው ነገር እያንዳንዱ ማሻሻያ በማዋቀሪያ ፋይሎች እና በ Git ማከማቻዎች ላይ በሚደረጉ ለውጦች ሲያልቅ እናያለን። እነዚህ በ Git ላይ የተደረጉ ለውጦች የ "GitOps ኦፕሬተር" ክላስተርን እንዲያዘምኑ ያደርጉታል፡

1. የሥራ ሂደት: "Jenkins ግንባታ - ዋና ቅርንጫፍ».
የተግባር ዝርዝር፡-

  • ጄንኪንስ መለያ የተሰጡ ምስሎችን ወደ Quay ይገፋፋቸዋል;
  • ጄንኪንስ ውቅረትን እና የ Helm ቻርቶችን ወደ ዋናው ማከማቻ ባልዲ ይገፋፋል;
  • የደመና ተግባር አወቃቀሩን እና ቻርቶችን ከዋናው ማከማቻ ባልዲ ወደ ጌታው Git ማከማቻ ይገለበጣል;
  • የ GitOps ኦፕሬተር ክላስተርን ያዘምናል።

2. የጄንኪንስ ግንባታ - የመልቀቂያ ወይም ትኩስ ቅርንጫፍ:

  • ጄንኪንስ መለያ ያልተሰጣቸው ምስሎችን ወደ Quay ይገፋፋቸዋል;
  • ጄንኪንስ ውቅረትን እና የ Helm ቻርቶችን ወደ ማቆያ ማከማቻ ባልዲ ይገፋፋል;
  • የደመና ተግባር አወቃቀሩን እና ቻርቶቹን ከመድረክ ማከማቻ ባልዲ ወደ ስቴጂንግ ጂት ማከማቻ ይገለበጣል፤
  • የ GitOps ኦፕሬተር ክላስተርን ያዘምናል።

3. ጄንኪንስ መገንባት - ቅርንጫፍ ማዳበር ወይም ባህሪይ:

  • ጄንኪንስ መለያ ያልተሰጣቸው ምስሎችን ወደ Quay ይገፋፋቸዋል;
  • ጄንኪንስ ውቅረትን እና የ Helm ቻርቶችን ወደ ማዳበር ማከማቻ ባልዲ ውስጥ ይገፋፋል።
  • የደመና ተግባር አወቃቀሩን እና ቻርቶቹን ከገንቢ ማከማቻ ባልዲ ወደ Git ማከማቻ ይገለበጣል፤
  • የ GitOps ኦፕሬተር ክላስተርን ያዘምናል።

4. አዲስ ደንበኛ በማከል ላይ:

  • ሼል አስኪያጁ ወይም አስተዳዳሪው (ኤልሲኤም/ኦፕስ) የኔትወርክ ሎድ ሚዛኖችን (NLBs) ለማሰማራት እና ለማዋቀር ወደ ግራድል ይደውላል።
  • LCM/ops ለዝማኔዎች ማሰማራትን ለማዘጋጀት አዲስ ውቅረት ፈፅሟል።
  • የ GitOps ኦፕሬተር ክላስተርን ያዘምናል።

የ GitOps አጭር መግለጫ

  1. ለእያንዳንዱ አካባቢ ገላጭ ዝርዝሮችን በመጠቀም የአጠቃላይ ስርዓቱን የሚፈለገውን ሁኔታ ይግለጹ (በእኛ ታሪካችን የቦብ ቡድን በጂት ውስጥ ያለውን አጠቃላይ የስርዓት ውቅር ይገልጻል)።
    • የጂት ማከማቻው የሚፈለገውን የስርዓቱን ሁኔታ በተመለከተ ብቸኛው የእውነት ምንጭ ነው።
    • በተፈለገው ሁኔታ ላይ ያሉ ሁሉም ለውጦች በ Git ውስጥ በተደረጉ ቁርጠኝነት ነው የሚደረጉት።
    • ሁሉም የሚፈለጉ የክላስተር መለኪያዎች እንዲሁ በክላስተር ውስጥ ይስተዋላሉ። በዚህ መንገድ እነሱ ይገጣጠማሉ (መገጣጠም ፣ ይጎርፋሉ) ወይም ይለያዩ (የተለያዩ፣ ልዩነት) ተፈላጊ እና የተስተዋሉ ግዛቶች.
  2. የሚፈለጉት እና የሚስተዋሉ ግዛቶች የሚለያዩ ከሆነ፡-
    • ፈጥኖም ይሁን ዘግይቶ ዒላማውን እና የተስተዋሉ ግዛቶችን በራስ-ሰር የሚያመሳስል የመሰብሰቢያ ዘዴ አለ። በክላስተር ውስጥ ኩበርኔትስ ይህን ያደርጋል።
    • ሂደቱ ወዲያውኑ "ለውጥ የተደረገ" ማንቂያ ይጀምራል.
    • ከተወሰነ ጊዜ በኋላ ግዛቶቹ የተለያዩ ከሆኑ "ልዩ" ማንቂያ መላክ ይቻላል.
  3. በዚህ መንገድ፣ ሁሉም በጂት ውስጥ የሚፈጸሙት ተግባራት ለክላስተር ሊረጋገጡ የሚችሉ እና ጠንካራ ዝማኔዎችን ያስከትላሉ።
    • Rollback ቀድሞ ወደሚፈለገው ሁኔታ መገጣጠም ነው።
  4. ውህደቱ የመጨረሻ ነው። መከሰቱ የሚገለጠው በ፡-
    • ለተወሰነ ጊዜ ምንም ልዩ ማንቂያዎች የሉም።
    • "የተሰበሰበ" ማንቂያ (ለምሳሌ webhook፣ Git መጻፊያ ክስተት)።

ልዩነት ምንድን ነው?

እንደገና እንድገመው፡- ሁሉም የሚፈለጉ የክላስተር ንብረቶች በክላስተር ውስጥ መታየት አለባቸው.

አንዳንድ የመለያየት ምሳሌዎች፡-

  • በ Git ውስጥ ቅርንጫፎችን በማዋሃድ ምክንያት የውቅረት ፋይል ለውጥ።
  • በ GUI ደንበኛ በ Git ቁርጠኝነት ምክንያት በማዋቀር ፋይል ላይ ለውጥ።
  • በጂት ውስጥ በ PR ምክንያት ወደ ተፈለገው ሁኔታ ብዙ ለውጦች ከዚያም የመያዣውን ምስል በመገንባት እና የማዋቀር ለውጦች።
  • በስህተት ምክንያት የክላስተር ሁኔታ ለውጥ፣ የሀብት ግጭት "መጥፎ ባህሪ" ያስከተለ ወይም በቀላሉ ከዋናው ሁኔታ በዘፈቀደ የሚደረግ ልዩነት።

የመገጣጠም ዘዴው ምንድን ነው?

ጥቂት ምሳሌዎች

  • ለመያዣዎች እና ክላስተር, የመሰብሰቢያ ዘዴው በኩበርኔትስ ይቀርባል.
  • በኩበርኔትስ ላይ የተመሰረቱ አፕሊኬሽኖችን እና ዲዛይኖችን (እንደ ኢስቲዮ እና ኩቤፍስት ያሉ) ለማስተዳደር ተመሳሳይ ዘዴ መጠቀም ይቻላል።
  • በኩበርኔትስ፣ በምስል ማከማቻዎች እና በጂት መካከል ያለውን የአሠራር መስተጋብር የሚቆጣጠርበት ዘዴ ያቀርባል GitOps ከዋኝ Weave Flux, የትኛው አካል ነው ክላውድ ሽመና.
  • ለመሠረት ማሽኖች፣ የመሰብሰቢያ ዘዴው ገላጭ እና ራሱን የቻለ መሆን አለበት። ከራሳችን ልምድ እንደዛ ማለት እንችላለን Terraform ለዚህ ፍቺ በጣም ቅርብ, ግን አሁንም የሰው ቁጥጥር ያስፈልገዋል. ከዚህ አንፃር፣ GitOps የመሠረተ ልማትን ወግ እንደ ኮድ ያሰፋዋል።

GitOps ለብዝበዛ ሞዴል ለማቅረብ Gitን ከኩበርኔትስ ምርጥ የመሰብሰቢያ ሞተር ጋር ያጣምራል።

GitOps እንድንል ያስችለናል፡- ሊገለጹ እና ሊታዩ የሚችሉ ስርዓቶች ብቻ አውቶማቲክ እና ቁጥጥር ሊደረጉ ይችላሉ.

GitOps ለመላው የደመና ቤተኛ ቁልል (ለምሳሌ ቴራፎርም ወዘተ) የታሰበ ነው።

GitOps ኩበርኔትስ ብቻ አይደለም። አጠቃላይ ስርዓቱ በአዋጅ እንዲመራ እና ውህደትን እንዲጠቀም እንፈልጋለን። በጠቅላላው ስርዓት ከኩበርኔትስ ጋር የሚሰሩ የአካባቢዎች ስብስብ ማለታችን ነው - ለምሳሌ ፣ “dev ክላስተር 1” ፣ “ምርት” ፣ ወዘተ እያንዳንዱ አካባቢ ማሽኖችን ፣ ስብስቦችን ፣ አፕሊኬሽኖችን እንዲሁም መረጃን የሚያቀርቡ የውጭ አገልግሎቶችን መገናኛዎችን ያጠቃልላል ፣ ክትትል እና ወዘተ.

በዚህ ጉዳይ ላይ ቴራፎርም ለቡት ማስነሻ ችግር ምን ያህል አስፈላጊ እንደሆነ ልብ ይበሉ። ኩበርኔትስ የሆነ ቦታ መሰማራት አለበት፣ እና Terraformን መጠቀም ማለት Kubernetes እና አፕሊኬሽኖችን የሚደግፍ የቁጥጥር ንብርብር ለመፍጠር ተመሳሳይ የ GitOps የስራ ፍሰቶችን መተግበር እንችላለን ማለት ነው። ይህ ጠቃሚ ምርጥ ልምምድ ነው.

የ GitOps ፅንሰ-ሀሳቦችን በ Kubernetes ላይ ባሉ ንብርብሮች ላይ በመተግበር ላይ ከፍተኛ ትኩረት አለ. በአሁኑ ጊዜ ለ Istio ፣ Helm ፣ Ksonnet ፣ OpenFaaS እና Kubeflow ፣ እንዲሁም ለምሳሌ ፣ ለ Pulumi ፣ የ GitOps ዓይነት መፍትሄዎች አሉ ፣ ይህም ለCloud ቤተኛ መተግበሪያዎችን ለማዘጋጀት ንብርብር ይፈጥራል።

Kubernetes CI/CD፡ GitOpsን ከሌሎች አቀራረቦች ጋር ማወዳደር

እንደተገለጸው፣ GitOps ሁለት ነገሮች ናቸው፡-

  1. ከላይ የተገለጸው የኩበርኔትስ እና የደመና ተወላጅ የክወና ሞዴል።
  2. ወደ ገንቢ-ተኮር የመተግበሪያ አስተዳደር አካባቢ የሚወስደው መንገድ።

ለብዙዎች GitOps በዋነኛነት በጂት ግፊቶች ላይ የተመሰረተ የስራ ሂደት ነው። እሱንም እንወደዋለን። ግን ያ ብቻ አይደለም፡ አሁን CI/CD ቧንቧዎችን እንይ።

GitOps ለኩበርኔትስ ተከታታይ ማሰማራትን (ሲዲ)ን ያስችላል

GitOps የተለየ “የማሰማራት አስተዳደር ስርዓቶችን” አስፈላጊነት የሚያስቀር ቀጣይ የማሰማራት ዘዴን ይሰጣል። ኩበርኔትስ ሁሉንም ስራ ለእርስዎ ይሰራል።

  • አፕሊኬሽኑን ማዘመን በ Git ውስጥ ማዘመንን ይጠይቃል። ይህ ወደሚፈለገው ግዛት የግብይት ማሻሻያ ነው። "ማሰማራት" በተሻሻለው መግለጫ ላይ በመመስረት በራሱ በኩበርኔትስ በክላስተር ውስጥ ይከናወናል።
  • Kubernetes እንዴት እንደሚሰራ ባህሪ ምክንያት እነዚህ ዝማኔዎች እርስ በርስ የሚጣመሩ ናቸው። ይህ ሁሉም ዝመናዎች አቶሚክ የሆኑበት ቀጣይነት ያለው የመሰማራት ዘዴን ያቀርባል።
  • ማስታወሻ: ክላውድ ሽመና Git እና Kubernetes የሚያዋህድ የ GitOps ኦፕሬተር ያቀርባል እና ሲዲ የሚፈለገውን እና የአሁኑን የክላስተር ሁኔታ በማስታረቅ እንዲሰራ ያስችለዋል።

ያለ kubectl እና ስክሪፕቶች

ክላስተርዎን ለማዘመን Kubectlን ከመጠቀም መቆጠብ አለብዎት እና በተለይም የ kubectl ትዕዛዞችን ለመቧደን ስክሪፕቶችን ከመጠቀም ይቆጠቡ። በምትኩ፣ በ GitOps ቧንቧ፣ አንድ ተጠቃሚ የኩበርኔትስ ክላስተር በጊት በኩል ማዘመን ይችላል።

ጥቅሞቹ የሚከተሉትን ያካትታሉ:

  1. ቀኝ. የዝማኔዎች ቡድን ሊተገበር፣ ሊጣመር እና በመጨረሻ ሊረጋገጥ ይችላል፣ ይህም ወደ አቶሚክ ማሰማራት ግብ ያቀርበናል። በአንጻሩ፣ ስክሪፕቶችን መጠቀም ምንም አይነት የመሰብሰብ ዋስትና አይሰጥም (ከዚህ በታች በዚህ ላይ ተጨማሪ)።
  2. ደህንነት. በመጥቀስ Kelsey Hightower፡ "የእርስዎን የኩበርኔትስ ክላስተር ወደ አውቶሜትሪ መሳሪያዎች እና አስተዳዳሪዎች ለማረም ወይም ለመጠገን ኃላፊነት ያለባቸው አስተዳዳሪዎች መዳረሻን ይገድቡ።" ተመልከት የእኔ እትም ስለ ደህንነት እና ቴክኒካዊ ዝርዝሮች ማክበር, እንዲሁም ስለ Homebrew ጠለፋ መጣጥፍ በግዴለሽነት ከተጻፈ የጄንኪንስ ስክሪፕት ምስክርነቶችን በመስረቅ።
  3. የተጠቃሚ ተሞክሮ. Kubectl በጣም ውስብስብ የሆኑትን የኩበርኔትስ ነገር ሞዴል መካኒኮችን ያጋልጣል። በሐሳብ ደረጃ፣ ተጠቃሚዎች ከስርዓቱ ጋር በከፍተኛ የአብስትራክሽን ደረጃ መስተጋብር መፍጠር አለባቸው። እዚህ እንደገና ወደ ኬልሲ እጠቅሳለሁ እና እንዲመለከቱ እመክራለሁ። እንደዚህ ያለ ከቆመበት ቀጥል.

በሲዲ እና በሲዲ መካከል ያለው ልዩነት

GitOps ያሉትን የሲአይ/ሲዲ ሞዴሎችን ያሻሽላል።

ዘመናዊ ሲአይ አገልጋይ ኦርኬስትራ መሳሪያ ነው። በተለይም የ CI ቧንቧዎችን ለማቀናጀት መሳሪያ ነው. እነዚህም መገንባት፣ መፈተሽ፣ ከግንድ ጋር መቀላቀል፣ ወዘተ የመሳሰሉትን ያካትታሉ። CI አገልጋዮች ውስብስብ ባለብዙ ደረጃ የቧንቧ መስመሮችን በራስ ሰር ያዘጋጃሉ። የተለመደው ፈተና የኩበርኔትስ ዝመናዎችን ስክሪፕት ማድረግ እና ለውጦችን ወደ ክላስተር ለመግፋት እንደ የቧንቧ መስመር አካል አድርጎ ማስኬድ ነው። በእርግጥ, ብዙ ባለሙያዎች የሚያደርጉት ይህ ነው. ሆኖም ፣ ይህ በጣም ጥሩ አይደለም ፣ እና ለምን እንደሆነ እነሆ።

CI ዝማኔዎችን ወደ ግንዱ ለመግፋት ስራ ላይ መዋል አለበት፣ እና የኩበርኔትስ ክላስተር ሲዲውን በውስጥ ለማስተዳደር በእነዚያ ማሻሻያዎች ላይ በመመስረት እራሱን መለወጥ አለበት። ብለን እንጠራዋለን ሞዴል ለሲዲ ይጎትቱከ CI ፑሽ ሞዴል በተለየ መልኩ. ሲዲ አካል ነው። Runtime ኦርኬስትራ.

ለምን CI አገልጋዮች Kubernetes ውስጥ በቀጥታ ማሻሻያ በኩል ሲዲ ማድረግ የለበትም

ለ Kubernetes የቀጥታ ዝመናዎችን እንደ የCI ስራዎች ስብስብ ለማቀናጀት የCI አገልጋይ አይጠቀሙ። ይህ እየተነጋገርን ያለነው ፀረ-ጥለት ነው። አስቀድሞ ተናግሯል በብሎግዎ ላይ.

ወደ አሊስ እና ቦብ እንመለስ።

ምን ችግሮች አጋጠሟቸው? የቦብ ሲአይ አገልጋይ ለውጦቹን በክላስተር ላይ ይተገብራል፣ ነገር ግን በሂደቱ ውስጥ ቢበላሽ፣ ቦብ ክላስተር በምን አይነት ሁኔታ ውስጥ እንዳለ (ወይም መሆን እንዳለበት) ወይም እንዴት ማስተካከል እንዳለበት አያውቅም። በስኬት ጊዜም ተመሳሳይ ነው.

የቦብ ቡድን አዲስ ምስል እንደገነባ እና ከዚያም ምስሉን ለማሰማራት ስራቸውን እንደለጠፈ እናስብ (ሁሉም ከ CI ቧንቧ መስመር)።

ምስሉ በመደበኛነት ከተገነባ ፣ ግን የቧንቧ መስመር ካልተሳካ ፣ ቡድኑ የሚከተሉትን ማወቅ አለበት-

  • ዝማኔው ተለቅቋል?
  • አዲስ ግንባታ እየጀመርን ነው? ይህ ወደ አላስፈላጊ የጎንዮሽ ጉዳቶች ይመራል - ተመሳሳይ የማይለዋወጥ ምስል ሁለት ግንባታዎች ሊኖሩት ይችላል?
  • ግንባታውን ከማስኬድዎ በፊት ለሚቀጥለው ዝመና መጠበቅ አለብን?
  • በትክክል ምን ችግር ተፈጠረ? የትኞቹ እርምጃዎች መደገም አለባቸው (እና የትኞቹ ለመድገም ደህና ናቸው)?

Git ላይ የተመሰረተ የስራ ፍሰት ማቋቋም የቦብ ቡድን እነዚህን ችግሮች እንዳያጋጥመው ዋስትና አይሰጥም። አሁንም በመገፋፋት፣ በመለያ ወይም በሌላ መለኪያ ስህተት ሊሠሩ ይችላሉ። ሆኖም፣ ይህ አካሄድ አሁንም ወደ ግልጽ ሁሉም-ወይም-ምንም አካሄድ በጣም የቀረበ ነው።

ለማጠቃለል፣ CI አገልጋዮች ከሲዲ ጋር የማይገናኙበት ምክንያት እዚህ አለ።

  • የዝማኔ ስክሪፕቶች ሁልጊዜ የሚወስኑ አይደሉም; በእነሱ ውስጥ ስህተቶችን ማድረግ ቀላል ነው.
  • የCI አገልጋዮች ወደ ገላጭ ክላስተር ሞዴል አይጣመሩም።
  • ራስን አቅም ማረጋገጥ ከባድ ነው። ተጠቃሚዎች የስርዓቱን ጥልቅ ትርጉም መረዳት አለባቸው።
  • ከፊል ውድቀት ለማገገም የበለጠ ከባድ ነው።

ስለ Helm ማስታወሻ፡ Helmን መጠቀም ከፈለጉ፡ ከ GitOps ኦፕሬተር ጋር እንዲያዋህዱት እንመክራለን ለምሳሌ ፍሉክስ-ሄልም. ይህ ውህደትን ለማረጋገጥ ይረዳል. ሄልም ራሱ ወሳኙ ወይም አቶሚክ አይደለም።

GitOps ለኩበርኔትስ ቀጣይነት ያለው አቅርቦትን ለመተግበር እንደ ምርጥ መንገድ

የአሊስ እና የቦብ ቡድን GitOpsን በመተግበር ከሶፍትዌር ምርቶች ጋር ለመስራት፣ ከፍተኛ አፈጻጸም እና መረጋጋትን ለመጠበቅ በጣም ቀላል እንደ ሆነ አወቁ። አዲሱ አቀራረባቸው ምን እንደሚመስል በማሳየት ይህን ጽሁፍ እንቋጭ። ብዙ ጊዜ የምናወራው ስለ አፕሊኬሽኖች እና አገልግሎቶች መሆኑን አስታውስ፣ ነገር ግን GitOps መላውን መድረክ ለማስተዳደር ጥቅም ላይ ሊውል ይችላል።

የክወና ሞዴል ለ Kubernetes

የሚከተለውን ሥዕል ተመልከት። ለሁለት የተቀነባበሩ የህይወት ዑደቶች Git እና የኮንቴይነር ምስል ማከማቻን እንደ የጋራ ሀብቶች ያቀርባል፡

  • ፋይሎችን ወደ Git የሚያነብ እና የሚጽፍ እና የመያዣ ምስሎች ማከማቻን የሚያዘምን ቀጣይነት ያለው የውህደት ቧንቧ መስመር።
  • መሰማራትን ከአስተዳደር እና ታዛቢነት ጋር የሚያጣምረው የ Runtime GitOps ቧንቧ መስመር። ፋይሎችን ወደ Git ያነባል እና ይጽፋል እና የመያዣ ምስሎችን ማውረድ ይችላል።

ዋናዎቹ ግኝቶች ምንድን ናቸው?

  1. የጭንቀት መለያየትእባክዎን ሁለቱም የቧንቧ መስመሮች መገናኘት የሚችሉት Git ወይም የምስል ማከማቻውን በማዘመን ብቻ መሆኑን ልብ ይበሉ። በሌላ አነጋገር፣ በCI እና በ runtime አካባቢ መካከል ፋየርዎል አለ። “የማይለወጥ ፋየርዎል” እንላለን። (የማይለወጥ ፋየርዎል)ሁሉም የማከማቻ ዝማኔዎች አዲስ ስሪቶችን ስለሚፈጥሩ። በዚህ ርዕስ ላይ ለበለጠ መረጃ፣ ስላይድ 72-87 ይመልከቱ ይህ አቀራረብ.
  2. ማንኛውንም CI እና Git አገልጋይ መጠቀም ትችላለህGitOps ከማንኛውም አካል ጋር ይሰራል። የእርስዎን ተወዳጅ CI እና Git አገልጋዮችን፣ የምስል ማከማቻዎችን እና የሙከራ ስብስቦችን መጠቀም መቀጠል ይችላሉ። በገበያ ላይ ያሉ ሌሎች ሁሉም ማለት ይቻላል ቀጣይነት ያለው የማድረስ መሳሪያዎች የራሳቸውን CI/Git አገልጋይ ወይም የምስል ማከማቻ ይፈልጋሉ። ይህ የደመና ተወላጅ እድገትን የሚገድብ ምክንያት ሊሆን ይችላል። በ GitOps የታወቁ መሳሪያዎችን መጠቀም ይችላሉ።
  3. ክስተቶች እንደ ውህደት መሣሪያበ Git ውስጥ ያለው መረጃ እንደተዘመነ፣ Weave Flux (ወይም የWeave ክላውድ ኦፕሬተር) የሩጫ ጊዜን ያሳውቃል። ኩበርኔትስ የለውጥ ስብስብ ሲቀበል Git ይዘምናል። ይህ ከታች እንደሚታየው ለ GitOps የስራ ሂደቶችን ለማደራጀት ቀላል የሆነ የውህደት ሞዴል ያቀርባል።

መደምደሚያ

GitOps በማንኛውም ዘመናዊ የሲአይ/ሲዲ መሳሪያ የሚፈለገውን ጠንካራ የዝማኔ ዋስትና ይሰጣል፡-

  • አውቶማቲክ;
  • መገጣጠም;
  • መቻል;
  • ቆራጥነት.

ይህ አስፈላጊ ነው ምክንያቱም ለደመና ተወላጅ ገንቢዎች የአሠራር ሞዴል ያቀርባል።

  • ስርዓቶችን ለመቆጣጠር እና ለመቆጣጠር ባህላዊ መሳሪያዎች በ runbook ውስጥ ከሚሰሩ የኦፕሬሽን ቡድኖች ጋር የተቆራኙ ናቸው። (የተለመዱ ሂደቶች እና ስራዎች ስብስብ - approx. transl.), ከተወሰነ ማሰማራት ጋር የተያያዘ.
  • በደመና ቤተኛ አስተዳደር ውስጥ የልማት ቡድኑ ፈጣን ምላሽ እንዲሰጥ የመታዘቢያ መሳሪያዎች የተሰማሩትን ውጤቶች ለመለካት ምርጡ መንገድ ናቸው።

በተለያዩ ደመናዎች እና ብዙ አገልግሎቶች ላይ ከቡድናቸው እና የማሰማራት እቅድ ጋር የተበተኑ ብዙ ዘለላዎችን አስቡት። GitOps ይህን ሁሉ የተትረፈረፈ ነገር ለማስተዳደር ሚዛኑን የማይለወጥ ሞዴል ያቀርባል።

PS ከተርጓሚ

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

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

እነዚህ ሁለት ትርጉሞች በሀበሬ ላይ ከመታየታቸው በፊት ስለ GitOps ያውቃሉ?

  • አዎ ሁሉንም ነገር አውቄ ነበር።

  • ላይ ላዩን ብቻ

  • የለም

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

ምንጭ: hab.com

አስተያየት ያክሉ