K8S መልቲ ክላስተር ጉዞ

ሃይ ሀብር!

እኛ የኤክስነስ መድረክ ቡድንን እንወክላለን። ቀደም ሲል, ባልደረቦቻችን ስለ አንድ ጽሑፍ አስቀድመው ጽፈዋል ለ k8s ለማምረት ዝግጁ የሆኑ ምስሎች. ዛሬ ወደ ኩበርኔትስ የመሸጋገር ልምዳችንን ማካፈል እንፈልጋለን።

K8S መልቲ ክላስተር ጉዞ

ለመጀመር፣ የሚብራራውን የበለጠ ለመረዳት አንዳንድ ቁጥሮችን እናቀርብልዎታለን።

  • የኛ ልማት ዲፓርትመንት ከ100 በላይ ሰዎችን ያቀፈ ሲሆን ከ10 በላይ የተለያዩ ቡድኖች ራሳቸውን የቻሉ QA፣ DevOps እና Scrum ሂደቶችን ያካትታል። የእድገት ቁልል - ፓይዘን፣ ፒኤችፒ፣ ሲ++፣ ጃቫ እና ጎላንግ። 
  • የሙከራ እና የምርት አከባቢዎች መጠን እያንዳንዳቸው 2000 ኮንቴይነሮች ናቸው. ራንቸር v1.6ን በራሳቸው ቨርቹዋልላይዜሽን እና በVMware ስር እያሄዱ ነው። 

ተነሳሽነት

እነሱ እንደሚሉት ፣ ምንም ነገር ለዘላለም አይቆይም ፣ እና ራንቸር የስሪት 1.6 ድጋፍ ማብቃቱን ከረጅም ጊዜ በፊት አስታውቋል። አዎን፣ ከሦስት ዓመታት በላይ እንዴት ማዘጋጀት እንዳለብን ተምረናል፣ የሚነሱ ችግሮችን መፍታት፣ ግን ብዙ ጊዜ የማይታረሙ ችግሮች ያጋጥሙናል። ራንቸር 1.6 እንዲሁ ሁሉንም ነገር ማድረግ ወይም ምንም ማድረግ የምትችልበት መብቶችን ለማውጣት የሚያስችል ስርዓት አለው።

ምንም እንኳን የባለቤትነት ቨርቹዋል በመረጃ ማከማቻ እና ደህንነቱ ላይ የበለጠ ቁጥጥር ቢሰጥም ከኩባንያው የማያቋርጥ እድገት ፣ የፕሮጀክቶች ብዛት እና ለእነሱ የሚያስፈልጉ መስፈርቶችን ከግምት ውስጥ በማስገባት ለመቀበል አስቸጋሪ የሆኑ የሥራ ማስኬጃ ወጪዎችን አስከትሏል።

የIaC መስፈርቶችን ለመከተል እና አስፈላጊ ከሆነም በፍጥነት አቅምን በማንኛውም ጂኦግራፊያዊ አካባቢ እና ያለ ሻጭ መቆለፊያ ለማግኘት እንፈልጋለን እንዲሁም በፍጥነት መተው እንችላለን።

የመጀመሪያ እርምጃዎች

በመጀመሪያ ደረጃ, ቡድኖች ፈጣን የእድገት ዑደት እንዲኖራቸው እና ኃይልን ከሚሰጠው የመሳሪያ ስርዓት ጋር ለመግባባት የሚያስችሉ የአሰራር ወጪዎችን በሚቀንሱ ዘመናዊ ቴክኖሎጂዎች እና መፍትሄዎች ላይ መተማመን እንፈልጋለን. 
 
እርግጥ ነው, ወደ አእምሯችን የመጣው የመጀመሪያው ነገር ኩበርኔትስ ነው, ነገር ግን አልተደሰትንም እና ትክክለኛው ምርጫ መሆኑን ለማየት ትንሽ ምርምር አደረግን. የክፍት ምንጭ መፍትሄዎችን ብቻ ገምግመናል፣ እና ኢፍትሃዊ በሆነ ጦርነት ኩበርኔትስ ያለምንም ቅድመ ሁኔታ አሸንፏል።  

በመቀጠል ዘለላዎችን ለመፍጠር መሳሪያ የመምረጥ ጥያቄ መጣ። በጣም ተወዳጅ መፍትሄዎችን አነጻጽረናል: kops, kubespray, kubeadm.

ለመጀመር፣ kubeadm እንደ "ብስክሌት" ፈጣሪ አይነት በጣም የተወሳሰበ መንገድ መስሎናል እና ኮፕስ በቂ የመተጣጠፍ ችሎታ አልነበረውም።

እና አሸናፊው:

K8S መልቲ ክላስተር ጉዞ

ከቀደምት የሀብት አስተዳደር ስርዓተ ጥለት ጋር ተመሳሳይ የሆነ ነገር ለመፍጠር በመሞከር በራሳችን ምናባዊ ፈጠራ እና በAWS መሞከር ጀመርን ሁሉም ሰው ተመሳሳይ “ክላስተር” የሚጋራበት። እና አሁን የኛ የመጀመሪያ ዘለላ አለን 10 ትናንሽ ምናባዊ ማሽኖች , ጥንዶቹ በ AWS ውስጥ ይገኛሉ. እዚያ ቡድኖችን ለመሰደድ መሞከር ጀመርን, ሁሉም ነገር "ጥሩ" ይመስላል, እና ታሪኩ ሊጠናቀቅ ይችላል, ግን ...

የመጀመሪያ ችግሮች

ኩቤስፕራይ የተገነባው በ ላይ ነው ፣ IaC ን እንዲከተሉ የሚያስችልዎ መሳሪያ አይደለም ። አንጓዎችን ሲጭኑ / ሲፈቱ ፣ የሆነ ነገር ያለማቋረጥ ስህተት ተፈጥሯል እና አንዳንድ አይነት ጣልቃገብነት ያስፈልግ ነበር ፣ እና የተለያዩ OSes ሲጠቀሙ የመጫወቻ ደብተሩ የተለየ ባህሪ ነበረው ። . በክላስተር ውስጥ ያሉት የቡድኖች እና አንጓዎች ቁጥር እያደጉ ሲሄዱ፣ የመጫወቻ ደብተሩ ለመጨረስ ረዘም ያለ እና ረዘም ያለ ጊዜ እንደሚወስድ ማስተዋል ጀመርን፣ እናም በዚህ ምክንያት፣ ሪከርዳችን 3,5 ሰአት ነበር፣ የእርስዎስ? 🙂

እና kubespray ልክ ሊቻል የሚችል ይመስላል ፣ እና ሁሉም ነገር በመጀመሪያ እይታ ግልፅ ነው ፣ ግን:

K8S መልቲ ክላስተር ጉዞ

በጉዞው መጀመሪያ ላይ ስራው በ AWS እና በምናባዊነት ላይ ብቻ አቅምን ማስጀመር ነበር, ነገር ግን ብዙ ጊዜ እንደሚከሰት, መስፈርቶቹ ተለውጠዋል.
 
K8S መልቲ ክላስተር ጉዞK8S መልቲ ክላስተር ጉዞ

ከዚህ በመነሳት ሀብቶቻችንን ወደ አንድ የኦርኬስትራ ሥርዓት የማዋሃድ አሮጌ ዘይቤያችን ተስማሚ እንዳልነበር ግልጽ ሆነ - ዘለላዎቹ በጣም የተራራቁ እና በተለያዩ አቅራቢዎች የሚተዳደሩ ናቸው። 

ተጨማሪ ተጨማሪ. ሁሉም ቡድኖች በአንድ ክላስተር ውስጥ ሲሰሩ፣ የተለያዩ አገልግሎቶች በስህተት የተጫነ ኖድሴክተርስ ወደ ሌላ ቡድን “የውጭ” አስተናጋጅ በመብረር እና እዚያ ሀብቶችን ሊጠቀሙ ይችላሉ ፣ እና ታይት ከተዘጋጀ አንድ ወይም ሌላ አገልግሎት የማይሰራ መሆኑን የማያቋርጥ ጥያቄዎች ነበሩ ፣ በሰው ምክንያት በትክክል አልተሰራጨም። ሌላው ችግር ወጪውን ማስላት ሲሆን በተለይም አገልግሎትን በመስቀለኛ መንገድ በማከፋፈል ላይ ያለውን ችግር ግምት ውስጥ በማስገባት ነበር።

የተለየ ታሪክ ለሰራተኞች መብት መስጠት ነበር፡ እያንዳንዱ ቡድን በክላስተር “ዋና” ላይ መሆን እና ሙሉ በሙሉ ማስተዳደር ፈልጎ ነበር ፣ ይህ ደግሞ ሙሉ በሙሉ ውድቀትን ያስከትላል ፣ ምክንያቱም ቡድኖቹ በመሠረቱ አንዳቸው ከሌላው ነፃ ናቸው ።

እንዴት መሆን ይቻላል?

ከላይ የተጠቀሱትን እና የቡድኖቹን ምኞቶች ከግምት ውስጥ በማስገባት የበለጠ ገለልተኛ እንዲሆኑ አንድ ቀላል መደምደሚያ ደርሰናል-አንድ ቡድን - አንድ ዘለላ. 

ስለዚህ ሁለተኛውን አግኝተናል-

K8S መልቲ ክላስተር ጉዞ

ከዚያም ሦስተኛው ስብስብ፡- 

K8S መልቲ ክላስተር ጉዞ

ከዚያም ማሰብ ጀመርን: በአንድ አመት ውስጥ ቡድኖቻችን ከአንድ በላይ ዘለላ ይኖራቸዋል እንበል? በተለያዩ ጂኦግራፊያዊ አካባቢዎች, ለምሳሌ, ወይም በተለያዩ አቅራቢዎች ቁጥጥር ስር? እና አንዳንዶቹ ለአንዳንድ ሙከራዎች ጊዜያዊ ዘለላ በፍጥነት ማሰማራት መቻል ይፈልጋሉ። 

K8S መልቲ ክላስተር ጉዞ

ሙሉ Kubernetes ይመጣሉ! ይህ አንዳንድ ዓይነት MultiKubernetes ነው, ይወጣል. 

በተመሳሳይ ጊዜ ሁላችንም እነዚህን ሁሉ ዘለላዎች እንደምንም ማቆየት፣ በቀላሉ ማግኘት መቻል፣ እንዲሁም አዳዲስ መፍጠር እና አሮጌዎችን ያለ በእጅ ጣልቃ ገብነት ማጥፋት አለብን።

በኩበርኔትስ አለም ውስጥ ጉዟችን ከጀመርን በኋላ የተወሰነ ጊዜ አልፏል, እና ያሉትን መፍትሄዎች እንደገና ለመመርመር ወሰንን. ቀድሞውኑ በገበያው ላይ እንዳለ ተገለጠ - Rancher 2.2.

K8S መልቲ ክላስተር ጉዞ

በምርምራችን የመጀመሪያ ደረጃ ላይ፣ ራንቸር ላብስ የመጀመሪያውን ስሪት 2 ን አውጥቶ ነበር፣ ነገር ግን ምንም እንኳን ውጫዊ ጥገኞች ከሌላቸው መለኪያዎች ጋር መያዣ በማስጀመር ወይም ኦፊሴላዊውን የ HELM ቻርት በመጠቀም በጣም በፍጥነት ሊነሳ ቢችልም ፣ ድፍድፍ ይመስላል። ለእኛ, እና በዚህ ውሳኔ ላይ መጎልበት ወይም በፍጥነት መተው መቻል እንዳለብን አላወቅንም ነበር. ክላስተር = ጠቅታዎች ፓራዳይም በዩአይ ራሱ እንዲሁ እኛን አይስማማንም እና ከ RKE ጋር መተሳሰር አልፈለግንም ፣ ይልቁንም ጠባብ ትኩረት የተደረገ መሳሪያ ነው። 

ሥሪት Rancher 2.2 ቀድሞውንም የበለጠ ሊሠራ የሚችል ገጽታ ነበረው እና ከቀደምቶቹ ጋር ፣ ከሳጥኑ ውስጥ ብዙ አስደሳች ባህሪዎች ነበሩት ፣ ለምሳሌ ከብዙ ውጫዊ አቅራቢዎች ጋር ውህደት ፣ አንድ የመብቶች ስርጭት እና የ kubeconfig ፋይሎች ፣ kubectl ማስጀመር። ምስል በዩአይ ውስጥ ከመብቶችዎ ጋር፣ የተከማቸ የስም ቦታዎች aka ፕሮጀክቶች። 

እንዲሁም በራንቸር 2 ዙሪያ ቀድሞ የተቋቋመ ማህበረሰብ ነበር፣ እና እሱን ለማስተዳደር HashiCorp Terraform የተባለ አቅራቢ ተፈጠረ፣ ይህም ሁሉንም ነገር አንድ ላይ እንድናደርግ ረድቶናል።

ምንድን ነው የሆነው

በውጤቱም፣ አንድ ትንሽ ዘለላ ራንቸርን በማስኬድ አበቃን ፣ለሌሎች ዘለላዎች ተደራሽ እና እንዲሁም ከሱ ጋር የተገናኙ ብዙ ዘለላዎች ፣የማንኛውም ተጠቃሚን ወደ ldap ዳይሬክተሩ ለመጨመር ያህል በቀላሉ ሊሰጥ ይችላል ፣ የት እንደሚገኝ እና የትኛውን የአቅራቢ ሀብቶች እንደሚጠቀም.

gitlab-ci እና Terraformን በመጠቀም በዳመና አቅራቢዎች ወይም በራሳችን መሠረተ ልማት ውስጥ የማንኛውም ውቅረት ስብስብ ለመፍጠር እና ከራንቸር ጋር የሚያገናኙት ስርዓት ተፈጠረ። ይህ ሁሉ የሚደረገው በIaC ዘይቤ ነው፣እያንዳንዱ ክላስተር በማጠራቀሚያ የሚገለፅበት እና ግዛቱ የሚገለፅበት። በተመሳሳይ ጊዜ፣ አብዛኞቹ ሞጁሎች ከውጫዊ ማከማቻዎች የተገናኙ ናቸው፣ ስለዚህም የሚቀረው ተለዋዋጮችን ማለፍ ወይም ለአብነት ብጁ ውቅርዎን መግለጽ ብቻ ነው፣ ይህም የኮድ ድግግሞሽ መቶኛን ለመቀነስ ይረዳል።

K8S መልቲ ክላስተር ጉዞ

እርግጥ ነው፣ ጉዟችን በጣም የራቀ ነው እና አሁንም ወደፊት ብዙ አስደሳች ስራዎች አሉ ለምሳሌ አንድ የስራ ነጥብ ከምዝግብ ማስታወሻዎች እና ከማንኛውም ክላስተር መለኪያዎች ፣ የአገልግሎት ሜሽ ፣ በብዙ ክላስተር ውስጥ ሸክሞችን ለማስተዳደር gitops እና ሌሎችም። የእኛ ተሞክሮ አስደሳች ሆኖ እንደሚያገኙ ተስፋ እናደርጋለን! 

ጽሑፉ የተፃፈው በ A. Antipov, A. Ganush, Platform Engineers ነው. 

ምንጭ: hab.com

አስተያየት ያክሉ