የኩበርኔትስ ክላስተር ለማዘጋጀት ቀላል እና ምቹ ነው? አድዶን ኦፕሬተርን ማስታወቅ

የኩበርኔትስ ክላስተር ለማዘጋጀት ቀላል እና ምቹ ነው? አድዶን ኦፕሬተርን ማስታወቅ

በኋላ ሼል-ኦፕሬተር ታላቅ ወንድሙን እናቀርባለን - addon-operator. ይህ የስርዓት ክፍሎችን ወደ ኩበርኔትስ ክላስተር ለመጫን የሚያገለግል ክፍት ምንጭ ፕሮጀክት ነው ፣ እሱም add-ons ተብሎ ሊጠራ ይችላል።

በአጠቃላይ ለምን ተጨማሪዎች አሉ?

Kubernetes ዝግጁ የሆነ ሁሉን-በ-አንድ ምርት እንዳልሆነ ምስጢር አይደለም, እና "የአዋቂዎች" ክላስተር ለመገንባት የተለያዩ ተጨማሪዎች ያስፈልጋሉ. አድዶን ኦፕሬተር እነዚህን ተጨማሪዎች እንዲጭኑ፣ እንዲያዋቅሩ እና እንዲዘመኑ ያግዝዎታል።

በክላስተር ውስጥ ያሉ ተጨማሪ አካላት አስፈላጊነት በ ውስጥ ይገለጻል። ሪፖርት የስራ ባልደረቦች ድሪዩሻ. በአጭሩ ፣ በአሁኑ ጊዜ ከ Kubernetes ጋር ያለው ሁኔታ ለቀላል “ዙሪያ መጫወት” ጭነት ከሳጥኑ ውስጥ ያሉትን አካላት ማግኘት ይችላሉ ፣ ለገንቢዎች እና ለሙከራ መግቢያን ማከል ይችላሉ ፣ ግን ለሙሉ ጭነት ፣ ስለ እሱ። “ምርትህ ዝግጁ ነው” ማለት ትችላለህ፣ በደርዘን የተለያዩ ማከያዎች ማከል አለብህ፡ ለመከታተል የሆነ ነገር፣ ለመመዝገብ የሆነ ነገር፣ መግባትን እና ሰርተፍኬት አስተዳዳሪን አትርሳ፣ የአንጓ ቡድኖችን ምረጥ፣ የአውታረ መረብ ፖሊሲዎችን ጨምር፣ ወቅት ከ sysctl እና pod autoscaler ቅንብሮች ጋር...

የኩበርኔትስ ክላስተር ለማዘጋጀት ቀላል እና ምቹ ነው? አድዶን ኦፕሬተርን ማስታወቅ

ከእነሱ ጋር የመሥራት ልዩ ሁኔታዎች ምንድን ናቸው?

እንደ ልምምድ እንደሚያሳየው ጉዳዩ በአንድ ጭነት ብቻ የተገደበ አይደለም. ከክላስተር ጋር በምቾት ለመስራት፣ add-ons ማዘመን፣ ማሰናከል (ከክላስተር መወገድ) እና የተወሰኑትን በምርት ክላስተር ውስጥ ከመጫንዎ በፊት መሞከር ያስፈልግዎታል።

ስለዚህ, ምናልባት Ansible እዚህ በቂ ይሆናል? ምን አልባት. ግን በአጠቃላይ ፣ ሙሉ-ሙላ ማከያዎች ያለ ቅንጅቶች አይኖሩም።. እነዚህ ቅንብሮች በክላስተር ተለዋጭ (aws፣ gce፣ Azure፣ bare-metal፣ do፣ ...) ላይ በመመስረት ሊለያዩ ይችላሉ። አንዳንድ ቅንጅቶች አስቀድመው ሊገለጹ አይችሉም፤ ከጥቅል ውስጥ መገኘት አለባቸው። እና ክላስተር ቋሚ አይደለም፡ ለአንዳንድ ቅንብሮች ለውጦችን መከታተል ይኖርብዎታል። እና እዚህ ሊቻል ቀድሞውኑ ጠፍቷል: በክላስተር ውስጥ የሚኖር ፕሮግራም ያስፈልግዎታል, ማለትም. Kubernetes ኦፕሬተር.

በስራ ላይ የሞከሩት። ሼል-ኦፕሬተርተጨማሪዎችን የመጫን እና የማዘመን እና የቁጥጥር ቅንብሮችን በመጠቀም ሙሉ በሙሉ መፍታት እንደሚቻል ይናገራሉ ። መንጠቆዎች ለሼል-ኦፕሬተር. ሁኔታዊ የሆነ ስክሪፕት መጻፍ ይችላሉ። kubectl apply እና ቅንብሮቹ የሚቀመጡበትን ለምሳሌ ConfigMapን ይቆጣጠሩ። ይህ በአዶን ኦፕሬተር ውስጥ የሚተገበረው በግምት ነው።

ይህ በአዶን ኦፕሬተር ውስጥ እንዴት ይደራጃል?

አዲስ መፍትሄ ስንፈጥር ከሚከተሉት መርሆች ቀጥለናል፡

  • ተጨማሪው ጫኝ መደገፍ አለበት። ቴምፕሊንግ እና ገላጭ ውቅር. ተጨማሪዎችን የሚጭኑ አስማታዊ ጽሑፎችን አንሠራም። አድዶን ኦፕሬተር ተጨማሪዎችን ለመጫን Helm ይጠቀማል። ለመጫን, ገበታ መፍጠር እና ለማዋቀር ጥቅም ላይ የሚውሉትን ዋጋዎች መምረጥ ያስፈልግዎታል.
  • ቅንብሮች ሊሆኑ ይችላሉ። በመጫን ላይ ማመንጨት, ይችላሉ ከስብስብ ያግኙ, ወይም ዝማኔዎችን መቀበል፣ የክላስተር ሀብቶችን መከታተል። እነዚህ ክዋኔዎች መንጠቆዎችን በመጠቀም ሊተገበሩ ይችላሉ.
  • ቅንብሮች ሊሆኑ ይችላሉ። በክላስተር ውስጥ ማከማቸት. ቅንጅቶችን በክላስተር ውስጥ ለማከማቸት ConfigMap/addon-operator ይፈጠራል እና አዶን ኦፕሬተር በዚህ ConfigMap ላይ ለውጦችን ያደርጋል። አድዶን ኦፕሬተር ቀላል ስምምነቶችን በመጠቀም ወደ ቅንጅቶች መዳረሻ ይሰጣል።
  • መደመር በቅንብሮች ላይ ይወሰናል. ቅንብሮቹ ከተቀየሩ፣ ከዚያ አድዶን ኦፕሬተር የሄልም ገበታውን በአዲስ እሴቶች ያወጣል። የ Helm ገበታ ጥምር ብለን እንጠራዋለን ፣ ለእሱ እሴቶች እና ሞጁሉን እንሰካለን (ለተጨማሪ ዝርዝሮች ከዚህ በታች ይመልከቱ)።
  • ዝግጅት. ምንም አስማት የሚለቀቅ ስክሪፕቶች የሉም። የማሻሻያ ዘዴው ከመደበኛ መተግበሪያ ጋር ተመሳሳይ ነው - add-ons እና add-operatorsን ወደ ምስል ይሰብስቡ ፣ መለያ ይስጡ እና ያውጡ።
  • የውጤት ቁጥጥር. አድዶን ኦፕሬተር ለፕሮሜቲየስ መለኪያዎችን ሊያቀርብ ይችላል።

በአዶን-ኦፕሬተር ውስጥ ንጣፍ ምንድነው?

መደመር ወደ ክላስተር አዳዲስ ተግባራትን የሚጨምር ማንኛውም ነገር ተደርጎ ሊወሰድ ይችላል። ለምሳሌ፣ Ingress ን መጫን የመደመር ትልቅ ምሳሌ ነው። ይህ የራሱ ሲአርዲ ያለው ማንኛውም ኦፕሬተር ወይም ተቆጣጣሪ ሊሆን ይችላል፡ ፐሮሜትየስ-ኦፕሬተር፣ ሰርት-ማናጀር፣ ኩቤ-ተቆጣጣሪ-ስራ አስኪያጅ፣ ወዘተ። ወይም ትንሽ ነገር ግን ለመጠቀም ቀላል - ለምሳሌ, ሚስጥራዊ ኮፒ, የመዝገብ ሚስጥሮችን ወደ አዲስ የስም ቦታዎች የሚገለብጥ, ወይም sysctl መቃኛ, አዲስ አንጓዎች ላይ sysctl መለኪያዎች የሚያዋቅር.

ተጨማሪዎችን ለመተግበር አዶን-ኦፕሬተር ብዙ ጽንሰ-ሀሳቦችን ይሰጣል፡-

  • Helm ገበታ የተለያዩ ሶፍትዌሮችን ወደ ክላስተር ለመጫን ያገለግል ነበር - ለምሳሌ ፕሮሜቲየስ ፣ ግራፋና ፣ nginx-ingress። የሚፈለገው አካል የሄልም ቻርት ካለው፣ ከዚያም አድዶን ኦፕሬተርን በመጠቀም መጫን በጣም ቀላል ይሆናል።
  • የእሴቶች ማከማቻ. የሄልም ገበታዎች ብዙ ጊዜ በጊዜ ሂደት ሊለወጡ የሚችሉ ብዙ የተለያዩ መቼቶች አሏቸው። አድዶን ኦፕሬተር እነዚህን መቼቶች ማከማቸትን ይደግፋል እና የ Helm ገበታውን በአዲስ እሴቶች እንደገና ለመጫን ለውጦቻቸውን መከታተል ይችላል።
  • መንጠቆዎች አድዶን ኦፕሬተር በክስተቶች ላይ የሚያንቀሳቅሳቸው እና የእሴቶቹን ማከማቻ የሚደርሱ ሊተገበሩ የሚችሉ ፋይሎች ናቸው። መንጠቆው በክላስተር ውስጥ ያሉትን ለውጦች መከታተል እና በእሴቶች ማከማቻ ውስጥ ያሉትን እሴቶች ማዘመን ይችላል። እነዚያ። መንጠቆዎችን በመጠቀም ጅምር ላይ ወይም በጊዜ መርሐግብር መሠረት ከክላስተር እሴቶችን ለመሰብሰብ ግኝት ማድረግ ወይም በክላስተር ውስጥ ባሉ ለውጦች ላይ በመመስረት እሴቶችን ከክላስተር በመሰብሰብ ቀጣይነት ያለው ግኝት ማድረግ ይችላሉ።
  • ሞዱል የ Helm ገበታ ፣ የእሴቶች ማከማቻ እና መንጠቆዎች ጥምረት ነው። ሞጁሎች ሊነቁ ወይም ሊሰናከሉ ይችላሉ። ሞጁሉን ማሰናከል ማለት ሁሉንም የ Helm ገበታ ልቀቶችን መሰረዝ ማለት ነው። ሞጁሎች በተለዋዋጭነት እራሳቸውን ማንቃት ይችላሉ ፣ ለምሳሌ ፣ ሁሉም የሚፈልጓቸው ሞጁሎች ከነቃ ወይም ግኝቱ አስፈላጊዎቹን መለኪያዎች በመንጠቆቹ ውስጥ ካገኘ - ይህ የሚከናወነው በረዳት የነቃ ስክሪፕት በመጠቀም ነው።
  • ዓለም አቀፍ መንጠቆዎች. እነዚህ መንጠቆዎች “በራሳቸው” ናቸው፣ በሞጁሎች ውስጥ ያልተካተቱ እና ወደ ዓለም አቀፋዊ እሴት ማከማቻ መዳረሻ አላቸው፣ እሴቶቹ በሞጁሎች ውስጥ ለሁሉም መንጠቆዎች ይገኛሉ።

እነዚህ ክፍሎች እንዴት አብረው ይሠራሉ? ምስሉን ከሰነዱ እንይ፡-

የኩበርኔትስ ክላስተር ለማዘጋጀት ቀላል እና ምቹ ነው? አድዶን ኦፕሬተርን ማስታወቅ

ሁለት የሥራ ሁኔታዎች አሉ-

  1. ዓለም አቀፋዊ መንጠቆው የሚቀሰቀሰው በአንድ ክስተት ነው - ለምሳሌ በክላስተር ውስጥ ያለ ሃብት ሲቀየር። ይህ መንጠቆ ለውጦቹን ያስኬዳል እና አዲሶቹን እሴቶች ወደ ዓለም አቀፍ የእሴቶች ማከማቻ ይጽፋል። አድዶን ኦፕሬተር አለምአቀፍ ማከማቻው እንደተለወጠ ያስተውላል እና ሁሉንም ሞጁሎች ይጀምራል። እያንዳንዱ ሞጁል መንጠቆቹን በመጠቀም መንቃት እንዳለበት ይወስናል እና የእሴቶቹን ማከማቻ ያሻሽላል። ሞጁሉ ከነቃ፣ አድዶን ኦፕሬተር የሄልም ገበታ መጫን ይጀምራል። በዚህ አጋጣሚ የ Helm ገበታ ከሞጁል ማከማቻ እና ከአለምአቀፍ ማከማቻ ዋጋዎችን ማግኘት ይችላል።
  2. ሁለተኛው ሁኔታ ቀላል ነው፡ የአንድ ሞጁል መንጠቆ በአንድ ክስተት ተቀስቅሷል እና በሞጁሉ የእሴት ማከማቻ ውስጥ እሴቶችን ይለውጣል። አድዶን ኦፕሬተር ይህንን ያስተውላል እና የ Helm ገበታ ከተዘመኑት እሴቶች ጋር ይጀምራል።

ተጨማሪው እንደ አንድ ነጠላ መንጠቆ ወይም እንደ አንድ የሄልም ቻርት ወይም እንደ በርካታ ጥገኛ ሞጁሎች እንኳን - ይህ በክላስተር ውስጥ በሚተከለው አካል ውስብስብነት እና በሚፈለገው የውቅር ተለዋዋጭነት ደረጃ ላይ ይወሰናል. ለምሳሌ፣ በማከማቻው ውስጥ (/ ምሳሌዎች) የ sysctl-tuner add-on አለ ፣ እሱም እንደ ቀላል ሞጁል ከ መንጠቆ እና ከሄልም ቻርት ጋር ፣ እና የእሴቶችን ማከማቻ በመጠቀም ፣ ይህም ConfigMapን በማረም ቅንብሮችን ለመጨመር ያስችላል።

የዝማኔዎች ማድረስ

አድዶን-ኦፕሬተር የሚጭናቸውን ክፍሎች ማሻሻያዎችን ስለማደራጀት ጥቂት ቃላት።

አድዶን-ኦፕሬተርን በክላስተር ውስጥ ለማሄድ፣ ያስፈልግዎታል ተጨማሪዎች ያሉት ምስል ይገንቡ መንጠቆ እና Helm ገበታ ፋይሎች መልክ, ሁለትዮሽ ፋይል ያክሉ addon-operator እና ለማጠፊያዎች የሚያስፈልጉዎት ነገሮች ሁሉ: bash, kubectl, jq, python ወዘተ. ከዚያ ይህ ምስል እንደ መደበኛ መተግበሪያ ወደ ክላስተር ሊሰራጭ ይችላል እና ምናልባትም አንድ ወይም ሌላ የመለያ ዘዴ ማደራጀት ይፈልጋሉ። ጥቂት ዘለላዎች ካሉ፣ ከመተግበሪያዎች ጋር ተመሳሳይ አካሄድ ተስማሚ ሊሆን ይችላል፡ አዲስ ልቀት፣ አዲስ ስሪት፣ ወደ ሁሉም ዘለላዎች ይሂዱ እና የPods ምስል ያስተካክሉ። ነገር ግን፣ ከፍተኛ ቁጥር ያላቸውን ዘለላዎች ለማድረስ በታቀደ ጊዜ፣ ከሰርጥ ራስን የማዘመን ጽንሰ-ሀሳብ የበለጠ ለእኛ ተስማሚ ነበር።

እንዴት እንደምናደርገው እነሆ፡-

  • ቻናል በመሰረቱ ለማንኛውም ነገር (ለምሳሌ ዴቭ/ስቴጅ/ኢአ/መረጋጋት) ሊዋቀር የሚችል መለያ ነው።
  • የሰርጡ ስም የምስል መለያ ነው። ዝማኔዎችን ወደ ሰርጥ መልቀቅ ሲፈልጉ አዲስ ምስል ተሰብስቦ በሰርጡ ስም ታግ ተሰጥቷል።
  • አዲስ ምስል በመዝገቡ ውስጥ ሲታይ አድዶን ኦፕሬተር እንደገና ይጀመርና በአዲሱ ምስል ይጀምራል።

በ ውስጥ እንደተፃፈው ይህ ምርጥ ልምምድ አይደለም Kubernetes ሰነድ. ይህንን ለማድረግ አይመከርም, ግን እየተነጋገርን ነው በተመሳሳይ ክላስተር ውስጥ የሚኖር መደበኛ መተግበሪያ. በአዶን ኦፕሬተር ጉዳይ ላይ፣ አፕሊኬሽኑ በክላስተር የተበተኑ ብዙ ማሰማራቶች ነው፣ እና እራስን ማዘመን ብዙ ይረዳል እና ህይወትን ቀላል ያደርገዋል።

ቻናሎች እገዛ እና በፈተና ውስጥ: ረዳት ክላስተር ካለ ወደ ቻናሉ ማዋቀር ይችላሉ። stage እና ወደ ቻናሎች ከመልቀቅዎ በፊት ዝማኔዎችን ወደ እሱ ያዙሩ ea и stable. በሰርጡ ላይ ካለው ክላስተር ጋር ከሆነ ea ስህተት ተከስቷል፣ ወደ እሱ መቀየር ይችላሉ። stableየዚህ ክላስተር ችግር እየተመረመረ እያለ። ክላስተር ከንቁ ድጋፍ ከተወሰደ፣ ወደ "የቀዘቀዘ" ቻናል ይቀየራል - ለምሳሌ፣ freeze-2019-03-20.

መንጠቆዎችን እና የ Helm ገበታዎችን ከማዘመን በተጨማሪ ሊያስፈልግዎ ይችላል። ማዘመን እና የሶስተኛ ወገን አካል. ለምሳሌ፣ ሁኔታዊ በሆነው መስቀለኛ-ላኪ ውስጥ አንድ ስህተት አስተውለሃል እና እንዴት መለጠፍ እንደምትችል እንኳን አስበሃል። በመቀጠል፣ PRን ከፍተዋል እና አዲሱን ልቀት በሁሉም ዘለላዎች ውስጥ ለማለፍ እና የምስሉን ስሪት ለመጨመር እየጠበቁ ነው። ላልተወሰነ ጊዜ ላለመጠበቅ, የእርስዎን መስቀለኛ-ላኪ መገንባት እና PR ከመቀበልዎ በፊት ወደ እሱ መቀየር ይችላሉ.

በአጠቃላይ ይህ ያለ አድዶን ኦፕሬተር ሊከናወን ይችላል ፣ ግን በአዶን ኦፕሬተር መስቀለኛ-ላኪን ለመጫን ሞጁሉ በአንድ ማከማቻ ውስጥ ይታያል ፣ ምስልዎን ለመገንባት Dockerfile እዚያው ሊቀመጥ ይችላል ፣ ለሁሉም ተሳታፊዎች ቀላል ይሆናል ። ምን እንደሚፈጠር ለመረዳት ሂደቱ… እና ብዙ ዘለላዎች ካሉ፣ ሁለቱንም የእርስዎን PR መፈተሽ እና አዲስ ስሪት ለመልቀቅ ቀላል ይሆናል።

ይህ የአካላት ማሻሻያ አደረጃጀት ለእኛ በተሳካ ሁኔታ ይሠራል, ነገር ግን ሌላ ማንኛውም ተስማሚ እቅድ ሊተገበር ይችላል - ከሁሉም በኋላ በዚህ አጋጣሚ Addon-operator ቀላል ሁለትዮሽ ፋይል ነው.

መደምደሚያ

በአዶን ኦፕሬተር ውስጥ የተተገበሩት መርሆች ተጨማሪዎችን ለመፍጠር ፣ ለመፈተሽ ፣ ለመጫን እና ለማዘመን ከመደበኛ አፕሊኬሽኖች የእድገት ሂደቶች ጋር ተመሳሳይ የሆነ ግልፅ ሂደትን ለመገንባት ያስችሉዎታል።

ተጨማሪዎች ለ Addon-operator በሞጁል ቅርጸት (Helm chart + hooks) በይፋ ሊገኙ ይችላሉ። እኛ የፍላንት ኩባንያ እድገቶቻችንን በበጋው ወቅት እንደዚህ ባሉ ተጨማሪዎች መልክ ለማተም አቅዷል። በ GitHub ላይ ልማትን ተቀላቀል (ሼል-ኦፕሬተር, addon-operator), ላይ በመመስረት የራስዎን መደመር ለማድረግ ይሞክሩ ምሳሌዎች и ሰነድ, ስለ ሀበሬ እና በእኛ ላይ ዜና ይጠብቁ የዩቲዩብ ቻናል!

PS

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

ምንጭ: hab.com

አስተያየት ያክሉ