የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

ወደ ኩበርኔትስ የማሰማራት የመጀመሪያው እርምጃ ማመልከቻዎን በመያዣ ውስጥ ማስቀመጥ ነው። በዚህ ተከታታይ ውስጥ፣ እንዴት ትንሽ እና ደህንነቱ የተጠበቀ የመያዣ ምስል መፍጠር እንደሚችሉ እንመለከታለን።
ለዶከር ምስጋና ይግባውና የመያዣ ምስሎችን መፍጠር ቀላል ሆኖ አያውቅም። የመሠረት ምስል ይግለጹ, ለውጦችዎን ያክሉ እና መያዣ ይፍጠሩ.

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

ይህ ዘዴ ለመጀመር ጥሩ ቢሆንም ነባሪ የመሠረት ምስሎችን መጠቀም በትላልቅ ምስሎች በተጋላጭነት ወደ ያልተጠበቀ ሥራ ሊያመራ ይችላል።

በተጨማሪም በዶከር ውስጥ ያሉ አብዛኛዎቹ ምስሎች ለመሠረታዊ ምስል ዴቢያን ወይም ኡቡንቱ ይጠቀማሉ፣ ይህ ደግሞ እጅግ በጣም ጥሩ ተኳሃኝነት እና ቀላል ማበጀት ሲሰጥ (የዶከር ፋይል ሁለት መስመር ኮድ ብቻ ነው የሚወስደው)፣ የመሠረት ምስሎች በመቶዎች የሚቆጠሩ ሜጋባይት ተጨማሪ ጭነት ወደ መያዣዎ ሊጨምሩ ይችላሉ። ለምሳሌ ለጎ "ሄሎ-አለም" አፕሊኬሽን ቀለል ያለ node.js ፋይል ወደ 700 ሜጋ ባይት ያክል ሲሆን ትክክለኛው መተግበሪያዎ በመጠን መጠኑ ጥቂት ሜጋባይት ብቻ ነው።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

ስለዚህ ይህ ሁሉ ተጨማሪ የሥራ ጫና የዲጂታል ቦታን ማባከን እና ለደህንነት ተጋላጭነቶች እና ስህተቶች ትልቅ መደበቂያ ነው። ስለዚህ የእቃ መያዣውን ምስል መጠን ለመቀነስ ሁለት መንገዶችን እንመልከት.

የመጀመሪያው ትናንሽ የመሠረት ምስሎችን መጠቀም ነው, ሁለተኛው ደግሞ የገንቢ ንድፍ አጠቃቀም ነው. አነስ ያሉ ምስሎችን መጠቀም የመያዣውን መጠን ለመቀነስ ቀላሉ መንገድ ሊሆን ይችላል። ምናልባት፣ እየተጠቀሙበት ያለው ቋንቋ ወይም ቁልል ከነባሪው ምስል በጣም ያነሰ ኦሪጅናል መተግበሪያ ምስል ያቀርባል። የእኛን node.js መያዣ እንይ።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

በነባሪ በዶከር መስቀለኛ መንገድ: 8 የመሠረት ምስል መጠን 670 ሜባ ነው, እና መስቀለኛ መንገድ: 8-alpine ምስል መጠን 65 ሜባ ብቻ ነው, ማለትም, 10 እጥፍ ያነሰ ነው. ትንሹን የአልፕስ መሰረት ምስል በመጠቀም የእቃ መያዣዎን መጠን በእጅጉ ይቀንሳሉ. አልፓይን አነስተኛ እና ቀላል ክብደት ያለው የሊኑክስ ስርጭት ነው በዶከር ተጠቃሚዎች ዘንድ በጣም ታዋቂ ነው ምክንያቱም ኮንቴይነሮችን ትንሽ እየጠበቀ ከብዙ አፕሊኬሽኖች ጋር ተኳሃኝ ነው። ከመደበኛው Docker "node" ምስል በተለየ "node:alpine" ብዙ የአገልግሎት ፋይሎችን እና ፕሮግራሞችን ያስወግዳል, ይህም ማመልከቻዎን ለማስኬድ በቂ የሆኑትን ብቻ ነው.

ወደ አነስ ያለ የመሠረት ምስል ለማንቀሳቀስ፣ ከአዲሱ የመሠረት ምስል ጋር መሥራት ለመጀመር በቀላሉ Dockerfile ን ያዘምኑ።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

አሁን፣ ከድሮው በግንባታ ላይ ካለው ምስል በተቃራኒ ኮድዎን ወደ መያዣው ውስጥ መቅዳት እና ማንኛውንም ጥገኛ መጫን ያስፈልግዎታል። በአዲስ Dockerfile ውስጥ ኮንቴይነሩ በኖድ፡አልፓይን ምስል ይጀምራል፣ከዚያም ለኮዱ ማውጫ ይፈጥራል፣የ NPM ጥቅል አስተዳዳሪን በመጠቀም ጥገኞችን ይጭናል እና በመጨረሻም server.jsን ያስኬዳል።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

ይህ ማሻሻያ መጠኑ 10 እጥፍ ያነሰ መያዣን ያመጣል. የእርስዎ የፕሮግራም አወጣጥ ቋንቋ ወይም ቁልል የመሠረት ምስል ቅነሳ ተግባር ከሌለው አልፓይን ሊኑክስን ይጠቀሙ። እንዲሁም የእቃውን ይዘት ሙሉ በሙሉ የማስተዳደር ችሎታ ይሰጣል. ትናንሽ የመሠረት ምስሎችን መጠቀም ትናንሽ መያዣዎችን በፍጥነት ለመፍጠር ጥሩ መንገድ ነው. ነገር ግን የበለጠ መቀነስ እንኳን የግንባታ ንድፍን በመጠቀም ሊከናወን ይችላል።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

በተተረጎሙ ቋንቋዎች, የምንጭ ኮድ መጀመሪያ ወደ አስተርጓሚው ይተላለፋል እና ከዚያም በቀጥታ ይፈጸማል. በተጠናቀሩ ቋንቋዎች፣ የምንጭ ኮድ መጀመሪያ ወደ የተጠናቀረ ኮድ ይቀየራል። ነገር ግን፣ ማጠናቀር ብዙውን ጊዜ ኮዱን ለማስኬድ በትክክል የማይፈለጉ መሳሪያዎችን ይጠቀማል። ይህ ማለት እነዚህን መሳሪያዎች ከመጨረሻው መያዣ ውስጥ ሙሉ በሙሉ ማስወገድ ይችላሉ. ለዚህ ገንቢ ንድፍን መጠቀም ይችላሉ።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

ኮዱ በመጀመርያው መያዣ ውስጥ ተፈጠረ እና ተሰብስቧል. የተቀናበረው ኮድ ኮዱን ለመሰብሰብ የሚያስፈልጉት ማቀናበሪያዎች እና መሳሪያዎች ከሌሉበት ወደ መጨረሻው መያዣ ይዘጋል። በዚህ ሂደት የ Go መተግበሪያን እናካሂድ። በመጀመሪያ፣ ከተገነባው ምስል ወደ አልፓይን ሊኑክስ እንሸጋገራለን።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

በአዲሱ Dockerfile ውስጥ መያዣው በጎልang:alpine ምስል ይጀምራል። ከዚያ ለኮዱ ማውጫ ይፈጥራል፣ ወደ ምንጭ ኮድ ይገለብጣል፣ ያንን የምንጭ ኮድ ይገነባል እና መተግበሪያውን ያስኬዳል። ይህ ኮንቴይነር በግንባታ ላይ ካለው ኮንቴይነር በጣም ያነሰ ነው፣ ነገር ግን አሁንም በትክክል የማንፈልጋቸውን ማጠናከሪያ እና ሌሎች የ Go መሳሪያዎችን ይዟል። ስለዚህ የተቀናበረውን ፕሮግራም ብቻ አውጥተን በራሱ መያዣ ውስጥ እናስቀምጠው።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

በዚህ Docker ፋይል ውስጥ አንድ እንግዳ ነገር ሊያስተውሉ ይችላሉ፡ ሁለት የFROM መስመሮችን ይዟል። የመጀመሪያው ባለ 4 መስመር ክፍል ይህንን ደረጃ ለመሰየም የ AS ቁልፍ ቃልን ከመጠቀም በቀር ከቀዳሚው Dockerfile ጋር ተመሳሳይ ነው። የሚቀጥለው ክፍል አዲስ ምስል ለመጀመር አዲስ ከFROM መስመር አለው፣ ከጎላንግ፡አልፓይን ምስል ይልቅ ጥሬ አልፓይን እንደ መሰረታዊ ምስል እንጠቀማለን።

ጥሬው አልፓይን ሊኑክስ ምንም የተጫኑ የSSL ሰርተፊኬቶች የሉትም፣ ይህም አብዛኛዎቹ የኤፒአይ ጥሪዎች በኤችቲቲፒኤስ ላይ እንዳይሳኩ ያደርጋል፣ ስለዚህ አንዳንድ ስር የCA ሰርተፊኬቶችን እንጫን።

አሁን የሚያስደስት ክፍል መጥቷል፡ የተቀነባበረውን ኮድ ከመጀመሪያው ኮንቴይነር ወደ ሁለተኛው ለመገልበጥ በቀላሉ በሁለተኛው ክፍል 5 መስመር ላይ የሚገኘውን COPY ትዕዛዝ መጠቀም ይችላሉ። አንድ የመተግበሪያ ፋይል ብቻ ይገለብጣል እና የ Go utility መሳሪያዎችን አይነካም። አዲሱ ባለ ብዙ ስቴጅ ዶከር ፋይል ከዋናው የመያዣ ምስል 12 ሜጋባይት ጋር ሲነፃፀር 700 ሜጋባይት ብቻ የሆነ የመያዣ ምስል ይይዛል ይህም ትልቅ ልዩነት ነው!
ስለዚህ አነስተኛ የመሠረት ምስሎችን እና ገንቢ ንድፍን መጠቀም ብዙ ስራ ሳይኖር በጣም ትናንሽ መያዣዎችን ለመፍጠር ጥሩ መንገዶች ናቸው.
በመተግበሪያው ቁልል ላይ በመመስረት የምስል እና የመያዣውን መጠን ለመቀነስ ተጨማሪ መንገዶች ሊኖሩ ይችላሉ, ነገር ግን ትናንሽ ኮንቴይነሮች በእውነቱ ሊለካ የሚችል ጥቅም አላቸው? ትናንሽ ኮንቴይነሮች እጅግ በጣም ውጤታማ የሆኑባቸውን ሁለት ቦታዎች እንይ - አፈፃፀም እና ደህንነት.

የአፈፃፀም መጨመርን ለመገምገም, መያዣን የመፍጠር ሂደት የሚቆይበትን ጊዜ ግምት ውስጥ ያስገቡ, ወደ መዝገብ ቤት ውስጥ ያስገቡት (ግፋው), እና ከዚያ ከዚያ (ይጎትቱ). አንድ ትንሽ መያዣ ከትልቅ መያዣ የተለየ ጥቅም እንዳለው ማየት ይችላሉ.

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

Docker ንብርቦቹን ስለሚሸጎጥ ተከታይ ግንባታዎች በጣም ፈጣን ይሆናሉ። ይሁን እንጂ ኮንቴይነሮችን ለመሥራት እና ለመፈተሽ የሚያገለግሉ ብዙ የሲአይሲ ስርዓቶች ንብርብሮችን አይሸጎጡም, ስለዚህ ከፍተኛ የጊዜ ቁጠባዎች አሉ. እንደሚመለከቱት ፣ እንደ ማሽንዎ ኃይል ላይ በመመስረት አንድ ትልቅ ኮንቴይነር የሚገነቡበት ጊዜ ከ 34 እስከ 54 ሴኮንድ ነው ፣ እና ኮንቴይነሩን ሲጠቀሙ የግንባታ ንድፍን በመጠቀም ቀንሷል - ከ 23 እስከ 28 ሰከንዶች። ለእንደዚህ አይነት ስራዎች ምርታማነት መጨመር ከ40-50% ይሆናል. ስለዚህ ስንት ጊዜ እንደሚገነቡ ያስቡ እና ኮድዎን ይፈትሹ።

ኮንቴይነሩ ከተገነባ በኋላ ምስሉን (የግፊት መያዣ ምስልን) ወደ መያዣው መዝገብ ቤት በመግፋት በኩበርኔትስ ክላስተር ውስጥ መጠቀም ያስፈልግዎታል። ጎግል ኮንቴይነር መዝገብ ቤት እንድትጠቀም እመክራለሁ።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

በGoogle ኮንቴይነር መዝገብ ቤት (ጂሲአር)፣ ለጥሬ ማከማቻ እና ለኔትወርክ ብቻ ነው የሚከፍሉት፣ እና ምንም ተጨማሪ የመያዣ አስተዳደር ክፍያዎች የሉም። የግል፣ ደህንነቱ የተጠበቀ እና በጣም ፈጣን ነው። GCR የመሳብ ስራውን ለማፋጠን ብዙ ዘዴዎችን ይጠቀማል። እንደሚመለከቱት የዶከር ኮንቴይነር ምስል ኮንቴይነር go:onbuildን በመጠቀም ማስገባት ከ15 እስከ 48 ሰከንድ የሚፈጅ ሲሆን ይህም እንደ ኮምፒዩተሩ አፈጻጸም ከ14 እስከ 16 ሰከንድ ይወስዳል እና በትንሽ ኮንቴይነር ተመሳሳይ አሰራር ከ3 እስከ XNUMX ሰከንድ እና ምርታማ ለሆኑ ማሽኖች የሥራው ፍጥነት በ XNUMX እጥፍ ይጨምራል. ለትላልቅ ማሽኖች፣ GCR ዓለም አቀፍ መሸጎጫ ለጋራ የምስሎች ዳታቤዝ ስለሚጠቀም፣ ጊዜው አንድ አይነት ነው። ዝቅተኛ ኃይል ባለው ኮምፒዩተር ውስጥ ሲፒዩ ማነቆ ነው, ስለዚህ ትናንሽ ኮንቴይነሮችን የመጠቀም ጥቅሙ እዚህ በጣም ትልቅ ነው.

GCR እየተጠቀሙ ከሆነ፣ Google Container Builder (GCB) እንደ የግንባታ ስርዓትዎ አካል እንድትጠቀሙ በጣም እመክራለሁ።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

እንደሚመለከቱት ፣ አጠቃቀሙ የግንባታ + ግፋ ስራን የሚቆይበትን ጊዜ በመቀነስ ረገድ በጣም ጥሩ ውጤቶችን እንድታገኙ ይፈቅድልዎታል ፣ ይህም ከአምራች ማሽን እንኳን - በዚህ ሁኔታ ኮንቴይነሮችን ወደ አስተናጋጁ የመገንባት እና የመላክ ሂደት በ 2 ጊዜ ያህል የተፋጠነ ነው ። . በተጨማሪም፣ በየቀኑ 120 ነፃ የግንባታ ደቂቃዎች ያገኛሉ፣ ይህም አብዛኛውን ጊዜ የመያዣ ግንባታ ፍላጎቶችን ይሸፍናል።

ቀጥሎ በጣም አስፈላጊው የአፈጻጸም መለኪያ ይመጣል - የመሰብሰቢያ ወይም የማውረድ ፍጥነት, መያዣዎችን ይጎትቱ. እና በግፊት ኦፕሬሽን ላይ ስለሚጠፋው ጊዜ ብዙ ግድ የማይሰጡ ከሆነ ፣ ከዚያ የመጎተት ሂደት ርዝመት በአጠቃላይ የስርዓት አፈፃፀም ላይ ከፍተኛ ተጽዕኖ ያሳድራል። የሶስት አንጓዎች ዘለላ አለህ እንበል እና አንደኛው አልተሳካም። እንደ ጎግል ኩበርኔትስ ሞተር ያለ የአስተዳደር ስርዓት እየተጠቀሙ ከሆነ የሞተውን መስቀለኛ መንገድ በአዲስ ይተካል። ሆኖም፣ ይህ አዲስ መስቀለኛ መንገድ ሙሉ በሙሉ ባዶ ይሆናል እና መስራት እንዲጀምር ሁሉንም ኮንቴይነሮችዎን ወደ እሱ መጎተት ይኖርብዎታል። የመጎተት ክዋኔው በቂ ጊዜ ከወሰደ፣ የእርስዎ ክላስተር በዝቅተኛ አፈጻጸም ሙሉ ጊዜውን ይሰራል።

ይህ ሊከሰት የሚችልባቸው ብዙ አጋጣሚዎች አሉ፡ አዲስ መስቀለኛ መንገድን ወደ ክላስተር ማከል፣ ኖዶችን ማሻሻል፣ ወይም ወደ አዲስ መያዣ መቀየር እንኳን ለመሰማራት። ስለዚህ የመጎተት ጊዜን መቀነስ ቁልፍ ምክንያት ይሆናል። አንድ ትንሽ ኮንቴይነር ከትልቅ ፍጥነት በበለጠ ፍጥነት እንደሚወርድ አይካድም። በ Kubernetes ክላስተር ውስጥ ብዙ ኮንቴይነሮችን እየሮጡ ከሆነ፣ ጊዜ መቆጠብ ጠቃሚ ሊሆን ይችላል።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

ይህንን ንጽጽር ይመልከቱ፡- በትናንሽ ኮንቴይነሮች ላይ የመሳብ ስራ እንደ ማሽኑ ኃይል ከ4-9 ጊዜ ያነሰ ጊዜ ይወስዳል፣ go:onbuild ን በመጠቀም ከተመሳሳይ አሰራር። የተጋሩ፣ ትንሽ የመያዣ መሰረት ምስሎችን በመጠቀም አዲስ የኩበርኔትስ ኖዶች የሚሰማሩበት እና መስመር ላይ የሚመጡበትን ጊዜ እና ፍጥነት በከፍተኛ ሁኔታ ያፋጥናል።

የጸጥታ ጉዳይን እንመልከት። ትንንሽ ኮንቴይነሮች ትንሽ የጥቃት ቦታ ስላላቸው ከትልቅ ይልቅ በጣም ደህና እንደሆኑ ይቆጠራሉ። እውነት ነው? የጉግል ኮንቴይነር መዝገብ ቤት በጣም ጠቃሚ ከሆኑ ባህሪያት ውስጥ አንዱ ለጉዳት ተጋላጭነት የእርስዎን መያዣዎች በራስ ሰር የመቃኘት ችሎታ ነው። ከጥቂት ወራት በፊት ሁለቱንም በግንባታ እና ባለ ብዙ ደረጃ ኮንቴይነሮችን ፈጠርኩ፣ ስለዚህ እዚያ ማንኛውም ተጋላጭነቶች ካሉ እንይ።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

ውጤቱም አስደናቂ ነው በትንሽ ኮንቴነር ውስጥ 3 መካከለኛ ተጋላጭነቶች ብቻ የተገኙ ሲሆን 16 ወሳኝ እና 376 ሌሎች ተጋላጭነቶች በትልቅ መያዣ ውስጥ ተገኝተዋል። የአንድ ትልቅ ኮንቴነር ይዘትን ከተመለከትን, አብዛኛዎቹ የደህንነት ችግሮች ከኛ መተግበሪያ ጋር ምንም ግንኙነት እንደሌላቸው, ነገር ግን እኛ እንኳን የማንጠቀምባቸው ፕሮግራሞች ጋር የተያያዙ መሆናቸውን እናያለን. ስለዚህ ሰዎች ስለ አንድ ትልቅ የጥቃት ወለል ሲያወሩ፣ ማለታቸው ነው።

የኩበርኔትስ ምርጥ ልምዶች። ትናንሽ መያዣዎችን መፍጠር

የተወሰደው መንገድ ግልጽ ነው፡ ትናንሽ ኮንቴይነሮችን ይገንቡ ምክንያቱም ለስርዓትዎ እውነተኛ አፈጻጸም እና የደህንነት ጥቅሞችን ይሰጣሉ።

የኩበርኔትስ ምርጥ ልምዶች። የኩበርኔትስ ድርጅት ከስም ቦታ ጋር

አንዳንድ ማስታወቂያዎች 🙂

ከእኛ ጋር ስለቆዩ እናመሰግናለን። ጽሑፎቻችንን ይወዳሉ? የበለጠ አስደሳች ይዘት ማየት ይፈልጋሉ? ትእዛዝ በማዘዝ ወይም ለጓደኞች በመምከር ይደግፉን፣ ደመና ቪፒኤስ ለገንቢዎች ከ$4.99, በእኛ ለእርስዎ የተፈለሰፈው ልዩ የመግቢያ ደረጃ አገልጋዮች አናሎግ፡- ስለ VPS (KVM) ሙሉ እውነት E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ከ$19 ወይንስ እንዴት አገልጋይ መጋራት ይቻላል? (በRAID1 እና RAID10፣ እስከ 24 ኮሮች እና እስከ 40GB DDR4 ድረስ ይገኛል።

በአምስተርዳም ውስጥ በ Equinix Tier IV የመረጃ ማዕከል ውስጥ Dell R730xd 2x ርካሽ? እዚህ ብቻ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV ከ$199 በኔዘርላንድስ! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ከ$99! ስለ አንብብ የመሠረተ ልማት ኮርፖሬሽን እንዴት እንደሚገነባ ክፍል ጋር Dell R730xd E5-2650 v4 አገልጋዮች ዋጋ 9000 አንድ ሳንቲም ዩሮ?

ምንጭ: hab.com

አስተያየት ያክሉ