በ Kubernetes ውስጥ ሶስት ደረጃዎች አውቶማቲክ ደረጃዎች-እንዴት በብቃት እንደሚጠቀሙባቸው

በ Kubernetes ውስጥ ሶስት ደረጃዎች አውቶማቲክ ደረጃዎች-እንዴት በብቃት እንደሚጠቀሙባቸው
ኩበርኔትስን ሙሉ በሙሉ ለመቆጣጠር የክላስተር ሃብቶችን ለመለካት የተለያዩ መንገዶችን ማወቅ አለቦት፡ በ በስርዓቱ ገንቢዎች መሠረት, ይህ የኩበርኔትስ ዋና ተግባራት አንዱ ነው. አግድም እና ቀጥ ያለ አውቶማቲክ እና ክላስተር የመጠን ስልቶችን እና እንዴት ውጤታማ በሆነ መንገድ መጠቀም እንደሚችሉ ምክሮችን የከፍተኛ ደረጃ አጠቃላይ እይታን አቅርበናል።

አንቀጽ ኩበርኔትስ አውቶማቲክስ 101፡ ክላስተር አውቶማቲክ፣ አግድም አውቶማቲክ እና ቋሚ ፖድ አውቶማቲክ ስኬል አውቶማቲካሊንግ ውስጥ ተግባራዊ ባደረገው ቡድን የተተረጎመ Kubernetes aaS ከ Mail.ru.

ስለ ማዛባት ማሰብ ለምን አስፈላጊ ነው

ኩባንያቶች - ለሀብት አስተዳደር እና ኦርኬስትራ የሚሆን መሳሪያ. እርግጥ ነው፣ ፖድዎችን የማሰማራት፣ የመከታተል እና የማስተዳደር ጥሩ ባህሪያትን (ፖድ በጥያቄ ምላሽ የሚጀመር የኮንቴይነር ቡድን ነው) መምከር ጥሩ ነው።

ሆኖም፣ ስለሚከተሉት ጥያቄዎችም ማሰብ አለብህ።

  1. ሞጁሎችን እና መተግበሪያዎችን እንዴት መመዘን ይቻላል?
  2. ኮንቴይነሮች ሥራቸውን እና ቀልጣፋ እንዲሆኑ እንዴት ማድረግ ይቻላል?
  3. ለቋሚ ለውጦች በኮድ እና ከተጠቃሚዎች የስራ ጫናዎች እንዴት ምላሽ መስጠት ይቻላል?

ሀብቶችን እና አፈፃፀሞችን ለማመጣጠን የኩበርኔትስ ስብስቦችን ማዋቀር ፈታኝ ሊሆን ስለሚችል የኩበርኔትስ ውስጣዊ አሰራር የባለሙያ እውቀትን ይጠይቃል። የማመልከቻዎ ወይም የአገልግሎቶችዎ የስራ ጫና ቀኑን ሙሉ አልፎ ተርፎም በአንድ ሰአት ውስጥ ሊለዋወጥ ይችላል፣ስለዚህ ማመጣጠን የተሻለ ቀጣይ ሂደት እንደሆነ ይታሰባል።

የኩበርኔትስ አውቶማቲክ ደረጃዎች

ውጤታማ አውቶማቲክ ሚዛን በሁለት ደረጃዎች መካከል ቅንጅትን ይጠይቃል።

  1. የፖድ ደረጃ፣ አግድም (Horizontal Pod Autoscaler፣ HPA) እና ቀጥ ያለ አውቶማቲክ መለኪያ (Vertical Pod Autoscaler፣ VPA)ን ጨምሮ። ይህ ለኮንቴይነሮችዎ ያሉትን ሀብቶች እየሰፋ ነው።
  2. የክላስተር ደረጃ፣ በCluster Autoscaler (CA) የሚተዳደረው፣ ይህም በክላስተር ውስጥ ያሉትን የአንጓዎች ብዛት የሚጨምር ወይም የሚቀንስ።

አግድም Autoscaler (HPA) ሞጁል

ስሙ እንደሚያመለክተው፣ HPA የፖድ ቅጂዎችን ቁጥር ይመዝናል። አብዛኞቹ ዲፕተሮች የተባዙትን ቁጥር ለመቀየር ሲፒዩ እና የማህደረ ትውስታ ጭነትን እንደ ቀስቅሴ ይጠቀማሉ። ሆኖም ግን, ስርዓቱን መሰረት በማድረግ መመዘን ይቻላል ብጁ መለኪያዎች፣ እነሱን ጥምረት ወይም ከዚያ በላይ ውጫዊ መለኪያዎች.

የከፍተኛ ደረጃ የ HPA አሠራር ሥዕላዊ መግለጫ፡-

  1. HPA በነባሪ በ 30 ሰከንድ ጊዜ ውስጥ በሚጫኑበት ጊዜ የተገለጹትን ሜትሪክ እሴቶችን ያለማቋረጥ ይፈትሻል።
  2. የተገለጸው ገደብ ከተደረሰ HPA የሞጁሎችን ብዛት ለመጨመር ይሞክራል።
  3. HPA በማሰማራት/ማባዛት ተቆጣጣሪው ውስጥ ያሉትን የተባዙ ብዛት ያዘምናል።
  4. የማሰማራት/ማባዛት ተቆጣጣሪው ማንኛውንም አስፈላጊ ተጨማሪ ሞጁሎችን ያሰማራል።

በ Kubernetes ውስጥ ሶስት ደረጃዎች አውቶማቲክ ደረጃዎች-እንዴት በብቃት እንደሚጠቀሙባቸው
HPA የሜትሪክ ገደብ ሲደረስ የሞጁሉን የማሰማራት ሂደት ይጀምራል

HPA ሲጠቀሙ የሚከተሉትን ግምት ውስጥ ያስገቡ፡

  • ነባሪው የ HPA ቼክ ክፍተት 30 ሰከንድ ነው። በባንዲራ ነው የተቀመጠው አግድም-pod-autoscaler-አመሳስል-ጊዜ በመቆጣጠሪያው አስተዳዳሪ ውስጥ.
  • ነባሪው አንጻራዊ ስህተት 10% ነው።
  • ከመጨረሻው የሞጁሎች ብዛት መጨመር በኋላ፣ HPA መለኪያዎቹ በሶስት ደቂቃዎች ውስጥ እንዲረጋጉ ይጠብቃል። ይህ ክፍተት በባንዲራ ነው የተቀመጠው አግድም-ፖድ-autoscaler-upscale-delay.
  • የመጨረሻው የሞጁሎች ብዛት ከተቀነሰ በኋላ, HPA ለማረጋጋት ለአምስት ደቂቃዎች ይጠብቃል. ይህ ክፍተት በባንዲራ ነው የተቀመጠው አግድም-pod-autoscaler-downscale-መዘግየት.
  • HPA ከማባዛት ተቆጣጣሪዎች ይልቅ ከተሰማሩ ነገሮች ጋር በተሻለ ሁኔታ ይሰራል። አግድም አውቶማቲክ ማሻሻያ ከሮሊንግ ዝመና ጋር ተኳሃኝ አይደለም፣ ይህም የማባዛት መቆጣጠሪያዎችን በቀጥታ ይቆጣጠራል። በማሰማራት, የተባዛዎች ቁጥር በቀጥታ በተሰቀሉት ነገሮች ላይ ይወሰናል.

የፖዳዎች አቀባዊ አውቶማቲክ

አቀባዊ አውቶማቲክ (ቪፒኤ) ብዙ (ወይም ያነሰ) የሲፒዩ ጊዜ ወይም ማህደረ ትውስታ ለነባር ፖድዎች ይመድባል። ለስቴት ወይም ሀገር-አልባ ፖድዎች ተስማሚ ነው፣ ነገር ግን በዋናነት ለግዛታዊ አገልግሎቶች የታሰበ። ነገር ግን፣ መጀመሪያ የተመደቡትን ሀብቶች መጠን በራስ-ሰር ማስተካከል ካስፈለገዎት አገር ለሌላቸው ሞጁሎች ቪፒኤ መጠቀም ይችላሉ።

ቪፒኤ ለ OOM (ከማስታወስ ውጪ) ክስተቶች ምላሽ ይሰጣል። የሲፒዩ ጊዜን እና ማህደረ ትውስታን መቀየር ፖድቹን እንደገና ማስጀመር ያስፈልገዋል. እንደገና ሲጀመር ቪፒኤ የምደባ በጀት ያከብራል (የፖድስ ማከፋፈያ በጀት፣ ፒዲቢ) አነስተኛውን የሞጁሎች ብዛት ዋስትና ለመስጠት።

ለእያንዳንዱ ሞጁል ዝቅተኛውን እና ከፍተኛውን ሀብቶች ማዘጋጀት ይችላሉ. ስለዚህ, የተመደበውን ማህደረ ትውስታ ከፍተኛውን መጠን ወደ 8 ጂቢ መገደብ ይችላሉ. የአሁኑ አንጓዎች በእርግጠኝነት ከ 8 ጊባ በላይ ማህደረ ትውስታ በአንድ መያዣ መመደብ ካልቻሉ ይህ ጠቃሚ ነው። ዝርዝር መግለጫዎች እና የአሠራር ዘዴ በ ውስጥ ተገልጸዋል ኦፊሴላዊ ቪፒኤ ዊኪ.

በተጨማሪም, ቪፒኤ አስደሳች የምክር ተግባር (VPA Recommender) አለው. በታሪካዊ መለኪያዎች ላይ የተመሠረተ የማሰብ ችሎታ ባለው ስልተ-ቀመር ላይ በመመርኮዝ አዲስ የማህደረ ትውስታ እና የሲፒዩ ጊዜ እሴቶችን ለመጠቆም የሁሉም ሞጁሎች የግብአት አጠቃቀም እና የ OOM ክስተቶችን ይከታተላል። እንዲሁም የፖድ እጀታን የሚወስድ እና የተጠቆሙ የንብረት ዋጋዎችን የሚመልስ ኤፒአይ አለ።

የ VPA Recommender የንብረት "ገደብ" እንደማይከታተል ልብ ሊባል የሚገባው ጉዳይ ነው. ይህ ሞጁሉን በአንጓዎች ውስጥ ያሉትን ሀብቶች ሞኖፖል እንዲይዝ ሊያደርግ ይችላል። ግዙፍ ማህደረ ትውስታን ወይም የሲፒዩ ፍጆታን ለማስቀረት በስም ቦታ ደረጃ ላይ ገደብ ማበጀት የተሻለ ነው።

የከፍተኛ ደረጃ ቪፒኤ ኦፕሬሽን እቅድ፡-

  1. ቪ.ፒ.ኤ በነባሪ በ10 ሰከንድ ጊዜ በመጫን ጊዜ የተገለጹትን ሜትሪክ እሴቶችን ያለማቋረጥ ይፈትሻል።
  2. የተወሰነው ገደብ ላይ ከደረሰ፣ ቪ.ፒ.ኤው የተመደበውን የሀብት መጠን ለመቀየር ይሞክራል።
  3. ቪ.ፒ.ኤው በማሰማራት/ማባዛት መቆጣጠሪያው ውስጥ ያሉትን የንብረቶች ብዛት ያዘምናል።
  4. ሞጁሎች እንደገና ሲጀምሩ ሁሉም አዲስ መገልገያዎች በተፈጠሩት አጋጣሚዎች ላይ ይተገበራሉ.

በ Kubernetes ውስጥ ሶስት ደረጃዎች አውቶማቲክ ደረጃዎች-እንዴት በብቃት እንደሚጠቀሙባቸው
ቪፒኤ የሚፈለገውን የሃብት መጠን ይጨምራል

ቪፒኤ ሲጠቀሙ የሚከተሉትን ነጥቦች ግምት ውስጥ ያስገቡ፦

  • ማቃለል የግዴታ ፖድ እንደገና መጀመር ያስፈልገዋል። ለውጦችን ካደረጉ በኋላ ያልተረጋጋ ቀዶ ጥገናን ለማስወገድ ይህ አስፈላጊ ነው. ለታማኝነት፣ ሞጁሎች እንደገና ተጀምረው በአዲስ በተመደቡት ሀብቶች ላይ ተመስርተው በመስቀለኛ መንገድ ይሰራጫሉ።
  • ቪፒኤ እና HPA እስካሁን እርስ በርስ የማይጣጣሙ እና በተመሳሳይ ፖድ ላይ መሮጥ አይችሉም። ሁለቱንም የማስኬጃ ዘዴዎች በተመሳሳይ ክላስተር ውስጥ እየተጠቀሙ ከሆነ፣ ቅንጅቶችዎ በተመሳሳይ ነገሮች ላይ እንዳይነቁ መከልከላቸውን ያረጋግጡ።
  • ቪፒኤ በአለፈው እና በአሁን አጠቃቀሙ ላይ በመመስረት የመያዣ ጥያቄዎችን ለሃብቶች ያስተካክላል። የሀብት አጠቃቀም ገደቦችን አያዘጋጅም። አፕሊኬሽኖች በትክክል አለመስራታቸው እና ብዙ እና ብዙ ሀብቶችን መውሰድ ሲጀምሩ ችግሮች ሊኖሩ ይችላሉ ፣ ይህ ወደ ኩበርኔትስ ይህንን ፖድ ማጥፋት ያስከትላል።
  • ቪፒኤ ገና በመጀመርያ የእድገት ደረጃ ላይ ነው። ስርዓቱ በቅርብ ጊዜ ውስጥ አንዳንድ ለውጦችን ሊያደርግ እንደሚችል ተዘጋጅ። ሾለ ማንበብ ይችላሉ የታወቁ ገደቦች и የልማት እቅዶች. ስለዚህም የቪ.ፒ.ኤ እና የኤች.ፒ.ኤ ጥምር ኦፕሬሽንን ተግባራዊ ለማድረግ እንዲሁም ሞጁሎችን ከቋሚ አውቶማቲክ ፖሊሲ ጋር በማሰማራት ለእነሱ (ለምሳሌ ልዩ መለያ 'VPA ያስፈልገዋል') ተግባራዊ ለማድረግ እቅድ ተይዟል።

የኩበርኔትስ ስብስብን በራስ-ማስኬድ

ክላስተር አውቶስካለር (CA) በተጠባባቂ ፖድዎች ብዛት ላይ በመመስረት የአንጓዎችን ቁጥር ይለውጣል። ስርዓቱ በመጠባበቅ ላይ ያሉ ሞጁሎችን በየጊዜው ይፈትሻል - እና ብዙ ሀብቶች አስፈላጊ ከሆኑ እና ክላስተር ከተቀመጡት ገደቦች ያልበለጠ ከሆነ የክላስተር መጠኑን ይጨምራል። ሲኤው ከደመና አገልግሎት አቅራቢው ጋር ይገናኛል፣ከሱ ተጨማሪ አንጓዎችን ይጠይቃል ወይም ስራ ፈት የሆኑትን ይለቃል። የመጀመሪያው በአጠቃላይ የሚገኝ የCA ስሪት በ Kubernetes 1.8 ውስጥ ቀርቧል።

የከፍተኛ ደረጃ የኤስኤ ኦፕሬሽን እቅድ፡-

  1. CA በመጠባበቅ ላይ ያሉ ሞጁሎችን በነባሪ በ10 ሰከንድ ይፈትሻል።
  2. አንድ ወይም ከዚያ በላይ ፖድዎች በተጠባባቂ ሁኔታ ውስጥ ካሉ፣ ምክንያቱም ክላስተር ለመመደብ የሚያስችል በቂ ሀብት ስለሌለው፣ አንድ ወይም ከዚያ በላይ ተጨማሪ ኖዶችን ለማቅረብ ይሞክራል።
  3. የደመና አገልግሎት አቅራቢው የሚፈለገውን መስቀለኛ መንገድ ሲመድብ ክላስተርን ይቀላቀላል እና ፖድቹን ለማገልገል ዝግጁ ነው።
  4. የኩበርኔትስ መርሐግብር አዘጋጅ በመጠባበቅ ላይ ያሉ ፖዶችን ወደ አዲሱ መስቀለኛ መንገድ ያሰራጫል። ከዚህ በኋላ አንዳንድ ሞጁሎች አሁንም በተጠባባቂ ሁኔታ ውስጥ ቢቆዩ, ሂደቱ ይደገማል እና አዲስ አንጓዎች ወደ ክላስተር ይታከላሉ.

በ Kubernetes ውስጥ ሶስት ደረጃዎች አውቶማቲክ ደረጃዎች-እንዴት በብቃት እንደሚጠቀሙባቸው
በደመና ውስጥ የክላስተር ኖዶችን በራስ ሰር ማቅረብ

CA ሲጠቀሙ የሚከተሉትን ግምት ውስጥ ያስገቡ:

  • የሲፒዩ ጭነት ምንም ይሁን ምን ሁሉም በክላስተር ውስጥ ያሉ ሁሉም ፖድዎች ለማሄድ ቦታ እንዳላቸው ያረጋግጣል። እንዲሁም በክላስተር ውስጥ ምንም አላስፈላጊ አንጓዎች አለመኖራቸውን ለማረጋገጥ ይሞክራል።
  • CA በግምት ከ30 ሰከንድ በኋላ የመጠን ፍላጎትን ይመዘግባል።
  • አንዴ መስቀለኛ መንገድ ካላስፈለገ፣ ሲሲኤው ስርዓቱን ከማውጣቱ በፊት 10 ደቂቃዎችን ለመጠበቅ ነባሪ ይሆናል።
  • አውቶማቲክ አሠራር የማስፋፊያዎች ጽንሰ-ሐሳብ አለው. እነዚህ አዳዲስ አንጓዎች የሚጨመሩባቸው የአንጓዎች ቡድን ለመምረጥ የተለያዩ ስልቶች ናቸው።
  • ምርጫውን በሃላፊነት ይጠቀሙ cluster-autoscaler.kubernetes.io/safe-to-evict (እውነት). ብዙ ፖዶችን ከጫኑ ወይም ብዙዎቹ በሁሉም መስቀለኛ መንገዶች ላይ ከተበተኑ, ክላስተርን የመለካት ችሎታዎን በእጅጉ ያጣሉ.
  • ይጠቀሙ PodDisruption Budgetsፖድዎች እንዳይሰረዙ ለመከላከል ይህም የመተግበሪያዎ ክፍሎች ሙሉ በሙሉ እንዲሰበሩ ሊያደርግ ይችላል.

Kubernetes autoscalers እንዴት እርስ በርስ እንደሚገናኙ

ለፍፁም ስምምነት፣ አውቶማቲክ ማድረጊያ በሁለቱም በፖድ ደረጃ (HPA/VPA) እና በክላስተር ደረጃ መተግበር አለበት። በአንጻራዊ ሁኔታ በቀላሉ እርስ በርስ ይገናኛሉ-

  1. HPAs ወይም ቪፒኤዎች ለነባር ፖድዎች የተመደቡትን ፖድ ቅጂዎች ወይም ሃብቶችን ያዘምናል።
  2. ለታቀደው ልኬት በቂ አንጓዎች ከሌሉ, CA በመጠባበቂያ ሁኔታ ውስጥ የፖዳዎች መኖራቸውን ያስተውላል.
  3. CA አዳዲስ አንጓዎችን ይመድባል።
  4. ሞጁሎች ወደ አዲስ አንጓዎች ይሰራጫሉ.

በ Kubernetes ውስጥ ሶስት ደረጃዎች አውቶማቲክ ደረጃዎች-እንዴት በብቃት እንደሚጠቀሙባቸው
የትብብር Kubernetes ልኬት-ውጭ ሥርዓት

በ Kubernetes autoscaling ውስጥ የተለመዱ ስህተቶች

አውቶማቲክን ለመተግበር በሚሞክሩበት ጊዜ ብዙ የተለመዱ ችግሮች አሉ.

HPA እና VPA በመለኪያዎች እና አንዳንድ ታሪካዊ መረጃዎች ላይ ይወሰናሉ። በቂ ያልሆነ ሀብቶች ከተመደቡ, ሞጁሎቹ ይቀንሳሉ እና መለኪያዎችን ማመንጨት አይችሉም. በዚህ ሁኔታ, አውቶማቲክ ማድረግ ፈጽሞ አይከሰትም.

የመለጠጥ አሠራሩ ራሱ ጊዜን የሚነካ ነው። ሞጁሎቹ እና ክላስተር በፍጥነት እንዲመዘኑ እንፈልጋለን - ተጠቃሚዎች ማንኛውንም ችግሮች ወይም ውድቀቶች ከማስተዋላቸው በፊት። ስለዚህ, ለፖድ እና ክላስተር አማካይ የመለኪያ ጊዜ ግምት ውስጥ መግባት አለበት.

ተስማሚ ሁኔታ - 4 ደቂቃዎች:

  1. 30 ሰከንድ. የዒላማ መለኪያዎችን ያዘምኑ፡ 30-60 ሰከንድ።
  2. 30 ሰከንድ. HPA ሜትሪክ እሴቶችን ይፈትሻል፡ 30 ሰከንድ።
  3. ከ2 ሰከንድ በታች። ፖድዎች ተፈጥረዋል እና ወደ የጥበቃ ሁኔታ ይሂዱ፡ 1 ሰከንድ።
  4. ከ2 ሰከንድ በታች። CA ተጠባባቂ ሞጁሎችን አይቶ ጥሪዎችን ወደ አቅርቦት አንጓዎች ይልካል፡ 1 ሰከንድ።
  5. 3 ደቂቃዎች. የደመና አቅራቢው አንጓዎችን ይመድባል። K8s ዝግጁ እስኪሆኑ ድረስ ይጠብቃል: እስከ 10 ደቂቃዎች (በብዙ ሁኔታዎች ላይ የተመሰረተ ነው).

በጣም መጥፎው ሁኔታ (ይበልጥ እውነታዊ) ሁኔታ - 12 ደቂቃዎች:

  1. 30 ሰከንድ. የዒላማ መለኪያዎችን ያዘምኑ።
  2. 30 ሰከንድ. HPA ሜትሪክ እሴቶቹን ይፈትሻል።
  3. ከ2 ሰከንድ በታች። እንክብሎቹ ተፈጥረዋል እና ወደ ተጠባባቂ ሁኔታ ይገባሉ።
  4. ከ2 ሰከንድ በታች። CA የሚጠባበቁትን ሞጁሎች አይቶ ኖዶቹን ለማቅረብ ጥሪ ያደርጋል።
  5. 10 ደቂቃዎች. የደመና አቅራቢው አንጓዎችን ይመድባል። K8s እስኪዘጋጁ ድረስ ይጠብቃል። የጥበቃ ጊዜ እንደ የአቅራቢ መዘግየት፣ የስርዓተ ክወና መዘግየት እና የድጋፍ መሳሪያዎች ባሉ በርካታ ሁኔታዎች ላይ ይወሰናል።

የደመና አቅራቢዎችን የመጠን ስልቶችን ከCAችን ጋር አያምታቱ። የኋለኛው በኩበርኔትስ ክላስተር ውስጥ ይሰራል፣ የደመና አቅራቢው ሞተር በመስቀለኛ ስርጭት ላይ ይሰራል። በእርስዎ ፖድ ወይም መተግበሪያ ላይ ምን እንዳለ አያውቅም። እነዚህ ስርዓቶች በትይዩ ይሰራሉ.

በ Kubernetes ውስጥ ሚዛንን እንዴት ማስተዳደር እንደሚቻል

  1. ኩበርኔትስ የሀብት አስተዳደር እና ኦርኬስትራ መሳሪያ ነው። ክላስተር እና ክላስተር ሃብቶችን የማስተዳደር ስራዎች ኩበርኔትስን ለመቆጣጠር ቁልፍ ምዕራፍ ናቸው።
  2. HPA እና VPAን ከግምት ውስጥ በማስገባት የፖድ scalability አመክንዮ ይረዱ።
  3. CA ጥቅም ላይ መዋል ያለበት ስለ የእርስዎ ፖድ እና ኮንቴይነሮች ፍላጎቶች ጥሩ ግንዛቤ ካሎት ብቻ ነው።
  4. ክላስተርን በጥሩ ሁኔታ ለማዋቀር፣ የተለያዩ የመለኪያ ስርዓቶች እንዴት አብረው እንደሚሰሩ መረዳት ያስፈልግዎታል።
  5. የመለኪያ ጊዜን በሚገመቱበት ጊዜ፣የከፋ ሁኔታ እና ምርጥ-ጉዳይ ሁኔታዎችን ግምት ውስጥ ያስገቡ።

ምንጭ: hab.com

አስተያየት ያክሉ