የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች

ዓለም አቀፍ ሚስጥራዊ ሰው የሆነው አውስቲን ፓወርስ “አደጋ የእኔ መካከለኛ ስም ነው” ሲል ተናግሯል። ነገር ግን በሱፐር ኤጀንቶች እና የስለላ አገልግሎቶች ከፍተኛ ክብር ያለው ነገር ለኮምፒዩተር አገልግሎት ተስማሚ አይደለም, መሰልቸት ከአደጋ በጣም የተሻለ ነው.

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች

እና ኢስቲዮ፣ ከOpenShift እና Kubernetes ጋር፣ የማይክሮ አገልግሎቶችን ማሰማራት በእውነት አሰልቺ እና ሊገመት የሚችል ያደርገዋል - እና ያ በጣም ጥሩ ነው። ስለዚህ ጉዳይ እና ሌሎችም በኢስቲዮ ተከታታይ አራተኛ እና የመጨረሻ ልጥፍ ውስጥ እንነጋገራለን ።

መሰላቸት ትክክል ሲሆን

በእኛ ሁኔታ, መሰላቸት የሚከሰተው በመጨረሻው ደረጃ ላይ ብቻ ነው, የቀረው ሁሉ ተቀምጦ ሂደቱን ለመመልከት ብቻ ነው. ግን ይህንን ለማድረግ በመጀመሪያ ሁሉንም ነገር ማዋቀር ያስፈልግዎታል, እና ብዙ አስደሳች ነገሮች እዚህ ይጠብቁዎታል.

አዲሱን የሶፍትዌርዎን ስሪት ሲጠቀሙ አደጋዎችን ለመቀነስ ሁሉንም አማራጮች ግምት ውስጥ ማስገባት ተገቢ ነው። በትይዩ መሮጥ በጣም ኃይለኛ እና የተረጋገጠ የመመርመሪያ መንገድ ነው, እና ኢስቲዮ "ሚስጥራዊ አገልግሎት" (የእርስዎ ማይክሮ ሰርቪስ ስውር ስሪት) በአምራች ስርዓቱ ውስጥ ጣልቃ ሳይገቡ ይህንን ለማድረግ ያስችልዎታል. ለዚህ ልዩ ቃል እንኳን አለ - “ጨለማ ማስጀመሪያ” ፣ እሱም በተራው በተመሳሳይ የስለላ ስም “የትራፊክ ማንጸባረቅ” ተግባር ይሠራል።

እባክዎን ያለፈው አንቀጽ የመጀመሪያ ዓረፍተ ነገር ከ"መልቀቅ" ይልቅ "ማሰማራት" የሚለውን ቃል እንደሚጠቀም ልብ ይበሉ. ማይክሮ አገልግሎትዎን በፈለጉት ጊዜ ማሰማራት እና በእርግጥ መጠቀም መቻል አለብዎት። ይህ አገልግሎት ትራፊክን መቀበል እና ማካሄድ፣ ውጤት ማምጣት እና እንዲሁም በምዝግብ ማስታወሻዎች ላይ መጻፍ እና መከታተል መቻል አለበት። ግን በተመሳሳይ ጊዜ, ይህ አገልግሎት ራሱ ወደ ምርት መለቀቅ አያስፈልግም. ሶፍትዌሮችን መዘርጋት እና መልቀቅ ሁልጊዜ አንድ አይነት አይደሉም። በፈለጉበት ጊዜ ማሰማራት ይችላሉ፣ ነገር ግን ዝግጁ ሲሆኑ ብቻ ይልቀቁ።

መሰላቸትን ማደራጀት አስደሳች ነው።

ሁሉንም የኤችቲቲፒ ጥያቄዎች ወደ ማይክሮ አገልግሎት ምክር v1 የሚያመራውን የሚከተለውን የIstio ማዘዋወር ህግን ይመልከቱ (ሁሉም ምሳሌዎች የተወሰዱት ከ Istio አጋዥ GitHub repo), በተመሳሳይ ጊዜ ወደ ጥቆማው v2 ማይክሮ አገልግሎት እያንጸባረቁ፡-

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች
ለመለያው ትኩረት ይስጡ mirror: በማያ ገጹ ግርጌ ላይ - ይህ የትራፊክ መስታወቶችን ያዘጋጃል. አዎ፣ ያን ያህል ቀላል ነው!

የዚህ ደንብ ውጤት የእርስዎ የምርት ስርዓት (v1) ገቢ ጥያቄዎችን ማከናወኑን እንደሚቀጥል ይሆናል፣ ነገር ግን ጥያቄዎቹ እራሳቸው ከv2 ጋር በማይመሳሰል መልኩ ይንፀባርቃሉ፣ ማለትም ሙሉ ቅጂዎቻቸው ወደዚያ ይሄዳሉ። በዚህ መንገድ, v2 በእውነተኛ ሁኔታዎች - በእውነተኛ ውሂብ እና በትራፊክ - በምርት ስርዓቱ አሠራር ውስጥ ምንም አይነት ጣልቃ ገብነት ሳይኖር መሞከር ይችላሉ. ይህ ማደራጀት ሙከራን አሰልቺ ያደርገዋል? አዎ በእርግጠኝነት. ግን በአስደሳች መንገድ ነው የሚደረገው።

ድራማ እንጨምር

እባክዎን በ v2 ኮድ ውስጥ ገቢ ጥያቄዎች ወደ የውሂብ ለውጦች ሊመሩ የሚችሉባቸውን ሁኔታዎች ማቅረብ አስፈላጊ መሆኑን ልብ ይበሉ። ጥያቄዎቹ እራሳቸው በቀላሉ እና ግልጽ በሆነ መልኩ ይንፀባርቃሉ, ነገር ግን በፈተናው ውስጥ ያለው የማቀናበሪያ ዘዴ ምርጫ የእርስዎ ነው - እና ይሄ ትንሽ አሳሳቢ ነው.

አንድ ጠቃሚ ነጥብ እንድገመው

በትራፊክ ማንጸባረቅ በሚስጥር ማስጀመር (የጨለማ ማስጀመሪያ/ጥያቄ ማንጸባረቅ) በማንኛውም መንገድ ኮዱን ሳይነካ ሊከናወን ይችላል።

ለሐሳብ የሚሆን ምግብ

ጥያቄዎች የሚስተዋሉበት ቦታ አንዳንዶቹን ወደ v1 ሳይሆን ወደ v2 የሚልክ ቢሆንስ? ለምሳሌ፣ ከሁሉም ጥያቄዎች ውስጥ አንድ በመቶው ወይም ከተወሰኑ የተጠቃሚዎች ቡድን ጥያቄዎች ብቻ። እና ከዚያ, አስቀድመው v2 እንዴት እንደሚሰራ በመመልከት, ሁሉንም ጥያቄዎች ቀስ በቀስ ወደ አዲሱ ስሪት ያስተላልፉ. ወይም በተቃራኒው፣ በ v1 ላይ የሆነ ችግር ከተፈጠረ ሁሉንም ነገር ወደ v2 ይመልሱ። እኔ እንደማስበው Canary Deployment ይባላል። ወደ ማዕድን ማውጣት ይመለሳል, እና ከሩሲያኛ የመጣ ከሆነ ምናልባት ምናልባት ማጣቀሻ ይይዛል ድመቶች), እና አሁን ይህንን በበለጠ ዝርዝር እንመለከታለን.

በኢስቲዮ ውስጥ የካናሪ ማሰማራት፡ የኮሚሽን ስራን ቀላል ማድረግ

በጥንቃቄ እና ቀስ በቀስ

የካናሪ ማሰማራት ሞዴል ምንነት እጅግ በጣም ቀላል ነው፡ አዲሱን የሶፍትዌርዎን ስሪት (በእኛ ሁኔታ ማይክሮ ሰርቪስ) ሲያስጀምሩ መጀመሪያ ለትንሽ የተጠቃሚዎች ቡድን መዳረሻ ይሰጡታል። ሁሉም ነገር ጥሩ ከሆነ፣ አዲሱ ስሪት መስራት እስኪጀምር ድረስ ይህን ቡድን ቀስ ብለው ይጨምራሉ፣ ወይም - ካልሆነ - በመጨረሻ ሁሉንም ተጠቃሚዎች ወደ እሱ ያፈልሳሉ። በአስተሳሰብ እና ቀስ በቀስ አዲስ ስሪት በማስተዋወቅ እና ተጠቃሚዎችን በተቆጣጠረ መንገድ ወደ እሱ በመቀየር አደጋዎችን መቀነስ እና ግብረመልስን ከፍ ማድረግ ይችላሉ።

እርግጥ ነው፣ ኢስቲዮ ለአስተዋይ ጥያቄ ማዘዋወር ብዙ ጥሩ አማራጮችን በመስጠት የ Canary Deploymentን ቀላል ያደርገዋል። እና አዎ, ይህ ሁሉ በማንኛውም መንገድ የእርስዎን ምንጭ ኮድ ሳይነኩ ሊደረግ ይችላል.

አሳሹን በማጣራት ላይ

በጣም ቀላሉ የማዞሪያ መስፈርት አንዱ በአሳሽ ላይ የተመሰረተ አቅጣጫ መቀየር ነው። ወደ v2 ለመሄድ ከSafari browsers የሚቀርቡ ጥያቄዎችን ብቻ ይፈልጋሉ እንበል። እንዴት እንደሚደረግ እነሆ፡-

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች
ይህንን የማዘዋወር ህግ እንተገብረው እና ትዕዛዙን እንጠቀም curl ለማይክሮ አገልግሎት ትክክለኛ ጥያቄዎችን በአንድ ዙር እንመስላለን። በቅጽበታዊ ገጽ እይታው ላይ እንደሚታየው፣ ሁሉም ወደ v1 ይሄዳሉ፡-

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች
በ v2 ላይ ያለው ትራፊክ የት አለ? በእኛ ምሳሌ ውስጥ ሁሉም ጥያቄዎች ከራሳችን የትእዛዝ መስመር ብቻ ስለመጡ ፣ በቀላሉ የለም። ነገር ግን ከላይ ባለው ማያ ገጽ ላይ ለታች መስመሮች ትኩረት ይስጡ-ይህ ከሳፋሪ አሳሽ ጥያቄን ስለፈፀምን ምላሽ ነው ፣ እሱም በተራው ይህንን ያመጣውን

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች

ያልተገደበ ኃይል

መደበኛ አገላለጾች ጥያቄዎችን ለማዛወር በጣም ኃይለኛ ችሎታዎችን እንደሚሰጡ አስቀድመን ጽፈናል። የሚከተለውን ምሳሌ ተመልከት (የሚሰራውን ትረዳለህ ብለን እናስባለን)

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች
በአሁኑ ጊዜ መደበኛ አገላለጾች ምን ማድረግ እንደሚችሉ ሀሳብ ይኖራችኋል።

ስማርት አክት

ስማርት ራውቲንግ፣ በተለይም የፓኬት ራስጌዎችን በመደበኛ አገላለጾች በመጠቀም፣ የትራፊክ ፍሰትን በፈለጉት መንገድ እንዲመሩ ያስችልዎታል። እና ይሄ የአዲሱ ኮድ ትግበራን በእጅጉ ያቃልላል - ቀላል ነው, ኮዱን እራሱን መለወጥ አያስፈልገውም, አስፈላጊ ከሆነም ሁሉም ነገር በፍጥነት እንደነበረው መመለስ ይቻላል.

ፍላጎት አለዎት?

በኮምፒውተርዎ ላይ በIstio፣ Kubernetes እና OpenShift ለመሞከር ጓጉተዋል? ቡድን የቀይ ኮፍያ ገንቢ ቡድን በጣም ጥሩ አዘጋጅቷል የመማሪያ መጽሐፍ በዚህ ርዕስ ላይ እና ሁሉም ተጓዳኝ ፋይሎች በይፋ እንዲገኙ አድርጓል. ስለዚህ ይቀጥሉ እና እራስዎን ምንም ነገር አይክዱ.
 

ኢስቲዮ ኢግረስ፡ በመታሰቢያ ሱቅ በኩል ውጣ

ኢስቲኦን ከRed Hat OpenShift እና Kubernetes ጋር በጋራ በመጠቀም ህይወቶን በማይክሮ አገልግሎት መስጠት ይችላሉ። የኢስቲዮ አገልግሎት መረብ በኩበርኔትስ ፖድስ ውስጥ ተደብቋል፣ እና ኮድዎ የሚሄደው (በአብዛኛው) በተናጥል ነው። አፈፃፀም, የመለወጥ ቀላልነት, ፍለጋ, ወዘተ - ይህ ሁሉ የጎን መያዣዎችን በመጠቀም ለመጠቀም ቀላል ነው. ነገር ግን ማይክሮ ሰርቪስዎ ከእርስዎ የOpenShift-Kubernetes ስርዓት ውጭ ከሚገኙ ሌሎች አገልግሎቶች ጋር መገናኘት ቢፈልግስ?

ኢስቲዮ ኢግሬስ ለማዳን የሚመጣው እዚህ ላይ ነው። በአጭር አነጋገር፣ የ Kubernetes pods ስርዓትዎ አካል ያልሆኑትን መርጃዎች (አንብብ፡- “አገልግሎት”) እንዲደርሱ ይፈቅድልዎታል። ተጨማሪ ውቅረትን ካላከናወኑ በ Istio Egress አካባቢ ትራፊክ የሚተላለፈው በፖድ ክላስተር ውስጥ እና በውስጣዊ የአይፒ ሰንጠረዦች ላይ በመመስረት በእንደዚህ ያሉ ስብስቦች መካከል ብቻ ነው ። እና ከውጭ የሚመጡ አገልግሎቶችን ማግኘት እስካልፈለጉ ድረስ እንደዚህ ዓይነቱ ሙሽሪት በጣም ጥሩ ይሰራል።

Egress ከላይ ያሉትን የአይፒ ሰንጠረዦች እንዲያልፉ ይፈቅድልዎታል፣ በEgress ደንቦች ላይ በመመስረት ወይም በተለያዩ የአይፒ አድራሻዎች።

ለ httpbin.org/headers የGET ጥያቄ የሚያቀርብ የጃቫ ፕሮግራም አለን እንበል።

(httpbin.org የወጪ አገልግሎት ጥያቄዎችን ለመፈተሽ ምቹ ምንጭ ነው።)

በትእዛዝ መስመር ላይ ከገቡ curl http://httpbin.org/headers, የሚከተለውን እንመለከታለን.

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች
ወይም በአሳሹ ውስጥ ተመሳሳይ አድራሻ መክፈት ይችላሉ-

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች
እንደሚመለከቱት ፣ እዚያ የሚገኘው አገልግሎት ወደ እሱ የተላለፉትን ራስጌዎች በቀላሉ ይመልሳል።

መተኪያን ወደፊት አስመጣ

አሁን የዚህን አገልግሎት የጃቫ ኮድ እንውሰድ, ከስርዓታችን ውጪ, እና በራሳችን እናስኬድ, እናስታውስ, ኢስቲዮ የተጫነበት. (ይህን እራስዎ በማነጋገር ማድረግ ይችላሉ የእኛ ኢስቲዮ አጋዥ ስልጠና.) ተገቢውን ምስል ገንብተን በ OpenShift መድረክ ላይ ካስጀመርን በኋላ ይህንን አገልግሎት በትእዛዙ እንጠራዋለን curl egresshttpbin-istioegress.$(minishift ip).nip.io, ከዚያ በኋላ ይህንን በስክሪኑ ላይ እናያለን-

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች
ውይ ምን ተፈጠረ? ሁሉም ነገር ብቻ ሰርቷል። አልተገኘም ማለት ምን ማለት ነው? ለእሱ ብቻ ነው ያደረግነው curl.

የአይፒ ሰንጠረዦችን ወደ በይነመረብ በሙሉ ማራዘም

ኢስቲዮ ለዚህ ሊወቀስ (ወይንም ማመስገን) አለበት። ደግሞም ኢስቲዮ የመለየት እና የማዘዋወር ኃላፊነት ያለባቸው የጎን መኪና መያዣዎች ብቻ ናቸው (እና ቀደም ብለን ስለ ተነጋገርናቸው ሌሎች ብዙ ነገሮች)። በዚህ ምክንያት፣ የአይፒ ሰንጠረዦች የሚያውቁት በክላስተር ስርዓትዎ ውስጥ ያለውን ብቻ ነው። እና httpbin.org የሚገኘው ከውጪ ስለሆነ ሊደረስበት አይችልም። እና እዚህ ነው Istio Egress ወደ ማዳን የሚመጣው - በመነሻ ኮድዎ ላይ ትንሽ ለውጥ ሳይኖር።

ከዚህ በታች ያለው የEgress ህግ ኢስቲዮ የሚፈለገውን አገልግሎት እንዲፈልግ (አስፈላጊ ከሆነ፣ ከዚያም በመላው በይነመረብ) እንዲፈልግ ያስገድደዋል፣ በዚህ አጋጣሚ httpbin.org። ከዚህ ፋይል (egress_httpbin.yml) ማየት እንደምትችለው፣ እዚህ ያለው ተግባር በጣም ቀላል ነው።

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች
የቀረው ይህንን ህግ መተግበር ብቻ ነው፡-

istioctl create -f egress_httpbin.yml -n istioegress

የ Egress ደንቦችን በትእዛዙ ማየት ይችላሉ istioctl get egressrules:

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች
እና በመጨረሻም ትዕዛዙን እንደገና እንሰራለን የተለጠፈ - እና ሁሉም ነገር እንደሚሰራ እናያለን-

የጨለማ ማስጀመሪያ በኢስቲዮ፡ ሚስጥራዊ አገልግሎቶች

በግልጽ እናስባለን

እንደሚመለከቱት, ኢስቲዮ ከውጭው ዓለም ጋር መስተጋብርን እንዲያደራጁ ይፈቅድልዎታል. በሌላ አነጋገር፣ አሁንም የOpenShift አገልግሎቶችን መፍጠር እና በ Kubernetes በኩል ማስተዳደር፣ ሁሉንም ነገር እንደ አስፈላጊነቱ ወደ ላይ እና ወደ ታች በሚጨምሩ ፖድ ውስጥ ማቆየት ይችላሉ። እና በተመሳሳይ ጊዜ ከአካባቢዎ ውጭ አገልግሎቶችን በደህና ማግኘት ይችላሉ። እና አዎ፣ ይህ ሁሉ በማንኛውም መንገድ የእርስዎን ኮድ ሳይነኩ ሊደረግ እንደሚችል በድጋሚ እንደግማለን።

ይህ በኢስቲዮ ተከታታይ ውስጥ የመጨረሻው ልጥፍ ነበር። ይከታተሉ - ወደፊት ብዙ አስደሳች ነገሮች አሉ!

ምንጭ: hab.com

አስተያየት ያክሉ