የተከፋፈሉ ስርዓቶች ለማስተዳደር አስቸጋሪ ሊሆን ይችላል ምክንያቱም ብዙ የሚንቀሳቀሱ እና የሚቀይሩ ንጥረ ነገሮች ስላላቸው ስርዓቱ እንዲሰራ ሁሉም በትክክል መስራት አለባቸው። ከንጥረ ነገሮች ውስጥ አንዱ ካልተሳካ, ስርዓቱ ፈልጎ ማግኘት, ማለፍ እና ማስተካከል አለበት, እና ይሄ ሁሉ በራስ-ሰር መከናወን አለበት. በዚህ የኩበርኔትስ ምርጥ ልምዶች ተከታታይ የኩበርኔትስ ክላስተር ጤናን ለመፈተሽ ዝግጁነት እና የህይወት ፈተናዎችን እንዴት ማዋቀር እንደምንችል እንማራለን።
የጤና ፍተሻ ማመልከቻዎ እየሄደ መሆኑን ወይም አለመሆኑን ለስርዓቱ ለማሳወቅ ቀላል መንገድ ነው። የማመልከቻዎ ምሳሌ ከጠፋ፣ ሌሎች አገልግሎቶች ሊደርሱበት ወይም ወደ እሱ ጥያቄዎችን መላክ የለባቸውም። በምትኩ፣ ጥያቄው እየሄደ ላለው ወይም በኋላ ላይ ለሚጀመረው ሌላ የመተግበሪያ ምሳሌ መላክ አለበት። በተጨማሪም ስርዓቱ የጠፋውን የመተግበሪያዎን ተግባር ወደነበረበት መመለስ አለበት።
በነባሪ ኩበርኔትስ በፖድዱ ውስጥ ያሉት ሁሉም ኮንቴይነሮች በሚሰሩበት ጊዜ ትራፊክ ወደ ፖድ መላክ ይጀምራል እና ሲበላሹ ኮንቴይነሮችን እንደገና ያስነሳል። ይህ ነባሪ የስርዓት ባህሪ ለመጀመር በቂ ሊሆን ይችላል፣ ነገር ግን ብጁ የንፅህና መጠበቂያ ቼኮችን በመጠቀም የምርት መሰማራትን አስተማማኝነት ማሻሻል ይችላሉ።
እንደ እድል ሆኖ፣ ኩበርኔትስ ይህን ለማድረግ በጣም ቀላል ያደርገዋል፣ ስለዚህ እነዚህን ቼኮች ችላ ለማለት ምንም ምክንያት የለም። ኩበርኔትስ ሁለት ዓይነት የጤና ቼኮችን ያቀርባል, እና እያንዳንዱ እንዴት ጥቅም ላይ እንደሚውል ያለውን ልዩነት መረዳት አስፈላጊ ነው.
የዝግጁነት ፈተናው የተዘጋጀው መተግበሪያዎ ትራፊክን ለመቆጣጠር ዝግጁ መሆኑን ለKubernetes ለመንገር ነው። አንድ አገልግሎት ትራፊክ ወደ ፖድ እንዲልክ ከመፍቀዱ በፊት ኩበርኔትስ የዝግጁነት ማረጋገጫው ስኬታማ መሆኑን ማረጋገጥ አለበት። የዝግጁነት ፈተናው ካልተሳካ፣ Kubernetes ፈተናው እስኪያልፍ ድረስ ትራፊክ ወደ ፖድ መላክ ያቆማል።
የLiveness ፈተናው ማመልከቻዎ በህይወት ያለ ወይም የሞተ እንደሆነ ለ Kubernetes ይነግረዋል። በመጀመሪያው ሁኔታ ኩበርኔትስ ብቻውን ይተወዋል, በሁለተኛው ውስጥ ደግሞ የሞተውን ፖድ ይሰርዛል እና በአዲስ ይተካዋል.
መተግበሪያዎ ለማሞቅ እና ለመጀመር 1 ደቂቃ የሚፈጅበትን ሁኔታ እናስብ። አፕሊኬሽኑ ሙሉ በሙሉ ተጭኖ እስኪሰራ ድረስ አገልግሎትዎ መስራት አይጀምርም፣ ምንም እንኳን የስራ ሂደቱ አስቀድሞ የጀመረ ቢሆንም። ይህን ስምሪት ወደ ብዙ ቅጂዎች ከፍ ለማድረግ ከፈለግክ ችግር ያጋጥምሃል፣ ምክንያቱም እነዚያ ቅጂዎች ሙሉ በሙሉ ዝግጁ እስኪሆኑ ድረስ ትራፊክ መቀበል የለባቸውም። ነገር ግን፣ በነባሪ፣ Kubernetes በመያዣው ውስጥ ያሉ ሂደቶች እንደጀመሩ ትራፊክ መላክ ይጀምራል።
የዝግጁነት ፈተናን ሲጠቀሙ ኩበርኔትስ አገልግሎቱ ወደ አዲሱ ቅጂ ትራፊክ እንዲልክ ከመፍቀዱ በፊት አፕሊኬሽኑ ሙሉ በሙሉ እስኪሰራ ድረስ ይጠብቃል።
አፕሊኬሽኑ ለረጅም ጊዜ የሚሰቀልበት፣ የአገልግሎት ጥያቄዎችን የሚያቆምበትን ሌላ ሁኔታ እናስብ። ሂደቱ መሄዱን ሲቀጥል፣ በነባሪ Kubernetes ሁሉም ነገር ጥሩ ነው ብሎ ያስባል እና ጥያቄዎችን ወደማይሰራው ፖድ መላክ ይቀጥላል። ነገር ግን Liveness ሲጠቀሙ ኩበርኔትስ አፕሊኬሽኑ ከአሁን በኋላ ጥያቄዎችን እንደማያቀርብ ይገነዘባል እና የሞተውን ፖድ በነባሪነት እንደገና ያስጀምራል።
ዝግጁነት እና አዋጭነት እንዴት እንደሚፈተኑ እንመልከት። ሶስት የፍተሻ ዘዴዎች አሉ- HTTP፣ Command እና TCP። እነሱን ለማጣራት ማንኛውንም መጠቀም ይችላሉ. ተጠቃሚን ለመፈተሽ በጣም የተለመደው መንገድ የኤችቲቲፒ ምርመራ ነው።
መተግበሪያዎ የኤችቲቲፒ አገልጋይ ባይሆንም አሁንም በመተግበሪያዎ ውስጥ ቀላል ክብደት ያለው የኤችቲቲፒ አገልጋይ ከLiveness ፈተና ጋር መስተጋብር መፍጠር ይችላሉ። ከዚህ በኋላ ኩበርኔትስ ፖድውን ፒንግ ማድረግ ይጀምራል እና የኤችቲቲፒ ምላሽ በ 200 ወይም 300 ms ክልል ውስጥ ከሆነ ፖዱ ጤናማ መሆኑን ያሳያል። አለበለዚያ ሞጁሉ "ጤናማ ያልሆነ" ተብሎ ምልክት ይደረግበታል.
ለትእዛዝ ሙከራዎች ኩበርኔትስ ትዕዛዙን በእቃ መያዣዎ ውስጥ ይሰራል። ትዕዛዙ በዜሮ የመውጫ ኮድ ከተመለሰ, መያዣው ጤናማ እንደሆነ ምልክት ይደረግበታል, አለበለዚያ, ከ 1 እስከ 255 የመውጫ ሁኔታ ቁጥር ሲደርሰው, መያዣው "የታመመ" ምልክት ይደረግበታል. ይህ የፍተሻ ዘዴ የኤችቲቲፒ አገልጋይ ማሄድ ካልቻላችሁ ወይም ካልፈለጋችሁ ነገር ግን የማመልከቻዎን ጤና የሚፈትሽ ትእዛዝ ማስኬድ ከቻሉ ጠቃሚ ነው።
የመጨረሻው የማረጋገጫ ዘዴ የ TCP ፈተና ነው. ኩበርኔትስ በተጠቀሰው ወደብ ላይ የTCP ግንኙነት ለመመስረት ይሞክራል። ይህን ማድረግ ከተቻለ ኮንቴይነሩ ጤናማ እንደሆነ ይቆጠራል፤ ካልሆነ ግን እንደማይቻል ይቆጠራል። ይህ ዘዴ በኤችቲቲፒ ጥያቄ ወይም በትእዛዝ አፈጻጸም መሞከር በጣም ጥሩ የማይሰራበትን ሁኔታ እየተጠቀሙ ከሆነ ጠቃሚ ሊሆን ይችላል። ለምሳሌ፣ TCP ን ለመጠቀም ዋናዎቹ አገልግሎቶች gRPC ወይም FTP ናቸው።
ሙከራዎች በተለያዩ ልኬቶች በተለያዩ መንገዶች ሊዋቀሩ ይችላሉ። ምን ያህል ጊዜ መፈፀም እንዳለባቸው፣ የስኬት እና የውድቀት ገደቦች ምን እንደሆኑ እና ምላሾችን ምን ያህል መጠበቅ እንዳለቦት መግለጽ ይችላሉ። ለበለጠ መረጃ የዝግጁነት እና የህይወት ፈተናዎችን ይመልከቱ። ሆኖም፣ የLiveness ፈተናን በማዘጋጀት ረገድ አንድ በጣም አስፈላጊ ነጥብ አለ - የፍተሻ መዘግየት የመጀመሪያ መቼት DelaySeconds። እንደገለጽኩት የዚህ ሙከራ አለመሳካት ሞጁሉን እንደገና እንዲጀምር ያደርገዋል። ስለዚህ አፕሊኬሽኑ ለመሄድ ዝግጁ እስኪሆን ድረስ ምርመራው እንደማይጀምር ማረጋገጥ አለቦት፣ ካልሆነ ግን እንደገና በመጀመር ብስክሌት መንዳት ይጀምራል። የP99 ማስጀመሪያ ጊዜን ወይም አማካዩን የመተግበሪያ ማስጀመሪያ ጊዜ ከመጠባበቂያው እንዲጠቀሙ እመክራለሁ። የመተግበሪያዎ ጅምር ጊዜ በፍጥነት ወይም በዝግታ ስለሚሄድ ይህን እሴት ማስተካከልዎን ያስታውሱ።
አብዛኛዎቹ ባለሙያዎች የጤና ቼኮች ለማንኛውም የተከፋፈለ ስርዓት የግዴታ ፍተሻ መሆናቸውን ያረጋግጣሉ፣ እና ኩበርኔትስ ከዚህ የተለየ አይደለም። የአገልግሎት የጤና ፍተሻዎችን መጠቀም አስተማማኝ፣ ከችግር የፀዳ የኩበርኔትስ አሰራርን ያረጋግጣል እና ለተጠቃሚዎች ምንም ጥረት የለውም።
በቅርቡም ይቀጥላል...
አንዳንድ ማስታወቂያዎች 🙂
ከእኛ ጋር ስለቆዩ እናመሰግናለን። ጽሑፎቻችንን ይወዳሉ? የበለጠ አስደሳች ይዘት ማየት ይፈልጋሉ? ትእዛዝ በማዘዝ ወይም ለጓደኞች በመምከር ይደግፉን፣
በአምስተርዳም ውስጥ በ Equinix Tier IV የመረጃ ማዕከል ውስጥ Dell R730xd 2x ርካሽ? እዚህ ብቻ
ምንጭ: hab.com