በKubernetes ክላስተር ውስጥ መረጃን በማከማቸት ላይ

በ Kubernetes ክላስተር ላይ ለሚሰሩ መተግበሪያዎች የውሂብ ማከማቻን የማዋቀር ብዙ መንገዶች አሉ። አንዳንዶቹ ቀድሞውንም ጊዜ ያለፈባቸው ናቸው፣ ሌሎች ደግሞ በቅርቡ ታይተዋል። በዚህ ጽሑፍ ውስጥ የማከማቻ ስርዓቶችን ለማገናኘት የሶስት አማራጮችን ጽንሰ-ሀሳብ እንመለከታለን, በጣም የቅርብ ጊዜውን ጨምሮ - በመያዣ ማከማቻ በይነገጽ በኩል መገናኘት.

በKubernetes ክላስተር ውስጥ መረጃን በማከማቸት ላይ

ዘዴ 1: በፖድ አንጸባራቂ ውስጥ PV ይግለጹ

በኩበርኔትስ ክላስተር ውስጥ ያለ ፖድ የሚገልጽ የተለመደ አንጸባራቂ፡

በKubernetes ክላስተር ውስጥ መረጃን በማከማቸት ላይ

የትኛው የድምጽ መጠን እንደተገናኘ እና የት በቀለም ጎልቶ እንደሚታይ የሚገልጹ የአንጸባራቂው ክፍሎች።

ክፍል volumeMouns የተራራ ነጥቦቹን (የተራራ ዱካ) ያመልክቱ - በማጠራቀሚያው ውስጥ በየትኛው ማውጫ ውስጥ ቋሚው የድምፅ መጠን ይጫናል ፣ እንዲሁም የድምፁ ስም።

ክፍል x በፖድ ውስጥ ጥቅም ላይ የሚውሉትን ሁሉንም ጥራዞች ይዘረዝራል. የእያንዳንዱን ድምጽ ስም፣ እንዲሁም አይነት (በእኛ ሁኔታ፡ awsElasticBlockStore) እና የግንኙነት መለኪያዎችን ይግለጹ። በአንጸባራቂው ውስጥ የትኞቹ መመዘኛዎች ተዘርዝረዋል በድምጽ ዓይነት ላይ የተመሰረተ ነው.

ተመሳሳይ መጠን በበርካታ ፖድ ኮንቴይነሮች ውስጥ በአንድ ጊዜ መጫን ይቻላል. በዚህ መንገድ, የተለያዩ የመተግበሪያ ሂደቶች አንድ አይነት ውሂብ መድረስ ይችላሉ.

ይህ የግንኙነት ዘዴ ገና ጅምር ላይ ኩበርኔትስ ገና በጨቅላነቱ በነበረበት ጊዜ እና ዛሬ ዘዴው ጊዜው ያለፈበት ነው።

በሚጠቀሙበት ጊዜ ብዙ ችግሮች አሉ-

  1. ሁሉም ጥራዞች በእጅ መፈጠር አለባቸው, Kubernetes ለእኛ ምንም ነገር መፍጠር አይችሉም;
  2. ለእያንዳንዱ ድምጽ የመዳረሻ መለኪያዎች ልዩ ናቸው, እና ድምጹን በሚጠቀሙ ሁሉም ፖድዎች ውስጥ መገለጽ አለባቸው;
  3. የማጠራቀሚያ ስርዓቱን ለመለወጥ (ለምሳሌ ከ AWS ወደ Google Cloud ውሰድ) በሁሉም አንጸባራቂዎች ውስጥ ቅንጅቶችን እና የተጫኑ መጠኖችን አይነት መለወጥ ያስፈልግዎታል።

ይህ ሁሉ በጣም ምቹ አይደለም ፣ ስለሆነም በእውነቱ ይህ ዘዴ አንዳንድ ልዩ የጥራዞች ዓይነቶችን ብቻ ለማገናኘት ጥቅም ላይ ይውላል-configMap ፣ secret ፣ emptyDir ፣ hostPath:

  • configMap እና ሚስጥር በመያዣው ውስጥ ከ Kubernetes መገለጫዎች ፋይሎች ጋር ድምጽ እንዲፈጥሩ የሚያስችልዎ የአገልግሎት ጥራዞች ናቸው።

  • ባዶ ዲር ጊዜያዊ ጥራዝ ነው, ለፖድ የህይወት ዘመን ብቻ የተፈጠረ. ጊዜያዊ ውሂብን ለመሞከር ወይም ለማከማቸት ለመጠቀም ምቹ። ፖድ ሲሰረዝ ባዶ ዲር መጠን እንዲሁ ይሰረዛል እና ሁሉም ውሂብ ይጠፋል።

  • hostPath - /etc/kubernetes ን ጨምሮ አፕሊኬሽኑ ከመተግበሪያው ጋር በመያዣው ውስጥ እየሄደ ባለበት የአገልጋዩ የአካባቢ ዲስክ ላይ ማንኛውንም ማውጫ እንዲጭኑ ይፈቅድልዎታል። ይህ ደህንነቱ ያልተጠበቀ ባህሪ ነው፣ ስለዚህ የደህንነት ፖሊሲዎች በተለምዶ የዚህ አይነት ጥራዝ መጠቀምን ይከለክላሉ። ያለበለዚያ፣ የአጥቂ መተግበሪያ የ HTC Kubernetes ማውጫን በእቃ መያዣው ውስጥ መጫን እና ሁሉንም የክላስተር ሰርተፊኬቶች ሊሰርቅ ይችላል። በተለምዶ የhostPath ጥራዞች በ kube-system namespace ውስጥ በሚሄዱ የስርዓት መተግበሪያዎች ብቻ እንዲጠቀሙ ይፈቀድላቸዋል።

Kubernetes ከሳጥኑ ውጭ የሚሰሩ የማጠራቀሚያ ስርዓቶች በሰነዱ ውስጥ ተሰጥቷል.

ዘዴ 2. ከ SC / PVC / PV ምድጃዎች ጋር ግንኙነት

አማራጭ የግንኙነት ዘዴ የማከማቻ ክፍል ጽንሰ-ሀሳብ ነው, PersistentVolumeClaim, PersistentVolume.

የማከማቻ ክፍል የውሂብ ማከማቻ ስርዓቱ የግንኙነት መለኪያዎችን ያከማቻል።

የማያቋርጥ የድምጽ የይገባኛል ጥያቄ አፕሊኬሽኑ የሚፈልገውን መስፈርቶች ይገልጻል።
የማያቋርጥ የድምጽ መጠን የመዳረሻ መለኪያዎችን እና የድምጽ ሁኔታን ያከማቻል.

የሃሳቡ ይዘት፡- በፖድ አንጸባራቂው ውስጥ የPersistentVolumeClaim አይነት መጠን ያመለክታሉ እና በይገባኛል ስም ግቤት ውስጥ የዚህን አካል ስም ያመለክታሉ።

በKubernetes ክላስተር ውስጥ መረጃን በማከማቸት ላይ

የ PersistentVolumeClaim አንጸባራቂ አፕሊኬሽኑ የሚፈልገውን የውሂብ መጠን መስፈርቶችን ይገልጻል። ጨምሮ፡

  • የዲስክ መጠን;
  • የመዳረሻ ዘዴ፡ ReadWriteOnce ወይም ReadWriteMany;
  • ወደ ማከማቻ ክፍል አገናኝ - በየትኛው የውሂብ ማከማቻ ስርዓት ውስጥ ድምጹን መፍጠር እንፈልጋለን።

የማከማቻ ክፍል አንጸባራቂ ከማከማቻ ስርዓቱ ጋር ያለውን ግንኙነት አይነት እና ግቤቶች ያከማቻል። ኩብሌቱ ድምጹን በመስቀለኛ መንገዱ ላይ ለመጫን ያስፈልገዋል.

ቋሚ የድምጽ መግለጫዎች የማከማቻ ክፍልን እና የመዳረሻ መለኪያዎችን ለአንድ የተወሰነ ድምጽ (የድምጽ መታወቂያ፣ ዱካ፣ ወዘተ) ያመለክታሉ።

PVC ሲፈጥሩ ኩበርኔትስ ምን ዓይነት መጠን እና የማከማቻ ክፍል እንደሚያስፈልግ ይመለከታል እና ነፃ የቋሚ ድምጽ ይመርጣል።

እንደዚህ ያሉ ፒቪዎች ከሌሉ ኩበርኔትስ ልዩ ፕሮግራም - ፕሮቪዥን (ስሙ በማከማቻ ክፍል ውስጥ ተገልጿል) ሊጀምር ይችላል. ይህ ፕሮግራም ከማጠራቀሚያ ስርዓቱ ጋር ይገናኛል ፣ የሚፈለገው መጠን ያለው መጠን ይፈጥራል ፣ መለያ ይቀበላል እና ከ PersistentVolumeClaim ጋር በተገናኘ በ Kubernetes ክላስተር ውስጥ ቀጣይነት ያለው የድምፅ መግለጫ ይፈጥራል።

እነዚህ ሁሉ የማጠቃለያዎች ስብስብ አፕሊኬሽኑ ከየትኛው የማከማቻ ስርዓት ጋር እየሰራ እንደሆነ ከመተግበሪያው አንጸባራቂ ደረጃ እስከ አስተዳደር ደረጃ ድረስ ያለውን መረጃ እንዲያስወግዱ ያስችልዎታል።

ከውሂብ ማከማቻ ስርዓቱ ጋር ለመገናኘት ሁሉም መለኪያዎች በማከማቻ ክፍል ውስጥ ይገኛሉ፣ ለዚህም የክላስተር አስተዳዳሪዎች ተጠያቂ ናቸው። ከAWS ወደ ጎግል ክላውድ ሲንቀሳቀሱ ማድረግ ያለብዎት ነገር ቢኖር የማጠራቀሚያ ክፍሉን ስም ወደ PVC በመተግበሪያው ውስጥ መለወጥ ነው። ለዳታ ማከማቻ የቋሚነት መጠን በራስ ሰር የአቅራቢውን ፕሮግራም በመጠቀም በክላስተር ውስጥ ይፈጠራል።

ዘዴ 3. የመያዣ ማከማቻ በይነገጽ

ከተለያዩ የማከማቻ ስርዓቶች ጋር የሚገናኝ ሁሉም ኮድ የ Kubernetes ኮር አካል ነው። የሳንካ ጥገናዎችን መልቀቅ ወይም አዲስ ተግባር ከአዳዲስ ልቀቶች ጋር የተሳሰረ ነው፡ ኮዱ ለሁሉም የሚደገፉ የኩበርኔትስ ስሪቶች መቀየር አለበት። ይህ ሁሉ ለማቆየት እና አዲስ ተግባር ለመጨመር አስቸጋሪ ነው.

ችግሩን ለመፍታት ከክላውድ ፋውንድሪ ፣ ኩበርኔትስ ፣ ሜሶስ እና ዶከር የመጡ ገንቢዎች የመያዣ ማከማቻ በይነገጽ (ሲኤስአይ) ፈጠሩ - ቀላል የተዋሃደ በይነገጽ የመያዣ አስተዳደር ስርዓት እና ልዩ አሽከርካሪ (ሲኤስአይ ሾፌር) ከተወሰነ ጋር አብሮ የሚሰራ። የማከማቻ ስርዓት. ከማከማቻ ስርዓቶች ጋር ለመስተጋብር ሁሉም ኮድ ከኩበርኔትስ ኮር ወደ የተለየ ስርዓት ተወስዷል።

የመያዣ ማከማቻ በይነገጽ ሰነድ.

በተለምዶ፣ CSI Driver ሁለት ክፍሎችን ያቀፈ ነው፡ የመስቀለኛ መንገድ ፕለጊን እና የመቆጣጠሪያ ፕለጊን።

የመስቀለኛ መንገድ ፕለጊን በእያንዳንዱ መስቀለኛ መንገድ ላይ ይሰራል እና ጥራዞችን ለመጫን እና በእነሱ ላይ ስራዎችን የማከናወን ሃላፊነት አለበት. የመቆጣጠሪያው ፕለጊን ከማከማቻ ስርዓቱ ጋር ይገናኛል፡ መጠኖችን ይፈጥራል ወይም ይሰርዛል፣ የመዳረሻ መብቶችን ይመድባል፣ ወዘተ።

በአሁኑ ጊዜ የድሮ አሽከርካሪዎች በ Kubernetes kernel ውስጥ ይቀራሉ, ነገር ግን ከአሁን በኋላ ጥቅም ላይ እንዲውሉ አይመከሩም እና ሁሉም ሰው ለሚሰሩበት ስርዓት የሲኤስአይ ሾፌርን እንዲጭኑ ይመከራሉ.

ፈጠራው ቀደም ሲል የመረጃ ማከማቻን በማከማቻ ክፍል ማቀናበር የለመዱትን ሊያስፈራራ ይችላል፣ ነገር ግን በእውነቱ ምንም አስፈሪ ነገር አልተፈጠረም። ለፕሮግራም አድራጊዎች ምንም ነገር በትክክል አይለወጥም - እነሱ የሰሩት የማከማቻ ክፍል በሚለው ስም ብቻ ነው, እና ይህን ማድረጉን ይቀጥላሉ. ለአስተዳዳሪዎች የሄልም ገበታ መጫኛ ተጨምሯል እና የቅንብሮች መዋቅር ተቀይሯል. ከዚህ ቀደም ቅንብሮቹ በቀጥታ ወደ ማከማቻ ክፍል ገብተው ከነበረ፣ አሁን መጀመሪያ በሄም ገበታ እና ከዚያም በማከማቻ ክፍል ውስጥ መቀመጥ አለባቸው። እሱን ከተመለከቱ, ምንም መጥፎ ነገር አልተከሰተም.

የሲኤስአይ ሾፌርን በመጠቀም የሴፍ ማከማቻ ስርዓቶችን በማገናኘት ሊያገኟቸው የሚችሉትን ጥቅሞች ለማየት አንድ ምሳሌ እንውሰድ።

ከሴፍ ጋር ሲሰራ የCSI ፕለጊን አብሮ ከተሰራ ነጂዎች ይልቅ ከማከማቻ ስርዓቶች ጋር ለመስራት ብዙ አማራጮችን ይሰጣል።

  1. ተለዋዋጭ ዲስክ መፍጠር. በተለምዶ RBD ዲስኮች በ RWO ሁነታ ብቻ ጥቅም ላይ ይውላሉ, ነገር ግን CSI ለ Ceph በ RWX ሁነታ ውስጥ ጥቅም ላይ እንዲውሉ ያስችላቸዋል. በተለያዩ ኖዶች ላይ ያሉ በርካታ ፖዶች አንድ አይነት RDB ዲስክ በመስቀለኛ መንገዶቻቸው ላይ ሊጫኑ እና ከነሱ ጋር በትይዩ መስራት ይችላሉ። እውነቱን ለመናገር, ሁሉም ነገር በጣም ብሩህ አይደለም - ይህ ዲስክ እንደ ማገጃ መሳሪያ ብቻ ሊገናኝ ይችላል, ይህም ማለት በበርካታ የመዳረሻ ሁነታ ለመስራት አፕሊኬሽኑን ማስተካከል አለብዎት.
  2. ቅጽበተ-ፎቶዎችን መፍጠር. በKubernetes ክላስተር ውስጥ ቅጽበተ-ፎቶ ለመፍጠር ከሚያስፈልጉት መስፈርቶች ጋር አንጸባራቂ መፍጠር ይችላሉ። የCSI ተሰኪው ያየው እና ከዲስክ ላይ ቅጽበታዊ ፎቶ ያነሳል። በእሱ ላይ በመመስረት ምትኬን ወይም የ PersistentVolume ቅጂ ማድረግ ይችላሉ።
  3. የዲስክ መጠን መጨመር በማከማቻ እና በቋሚ ድምጽ በኩበርኔትስ ክላስተር ውስጥ።
  4. ኮታዎች በ Kubernetes ውስጥ የተገነቡት የሴፍኤፍኤስ አሽከርካሪዎች ኮታዎችን አይደግፉም፣ ነገር ግን አዲስ የCSI ፕለጊኖች የቅርብ ጊዜው Ceph Nautilus በሴፍኤፍኤስ ክፍልፋዮች ላይ ኮታዎችን ማንቃት ይችላሉ።
  5. መለኪያዎች. የCSI ተሰኪው የትኞቹ ጥራዞች እንደተገናኙ፣ ምን ዓይነት ግንኙነቶች እየተከናወኑ እንደሆነ፣ ወዘተ በተመለከተ ለፕሮሜቴየስ የተለያዩ መለኪያዎችን ሊያቀርብ ይችላል።
  6. ቶፖሎጂ የሚያውቀው። ክላስተር በጂኦግራፊያዊ እንዴት እንደሚከፋፈል በገለፃዎች ውስጥ እንዲገልጹ እና በአምስተርዳም የሚገኘውን የማከማቻ ስርዓት በለንደን ውስጥ ከሚሰሩ ፖድዎች ጋር እንዳያገናኙ ያስችልዎታል።

Cephን በCSI በኩል ወደ ኩበርኔትስ ክላስተር እንዴት ማገናኘት እንደሚቻል፣ ይመልከቱ በ Slurm የምሽት ትምህርት ቤት ንግግር ተግባራዊ ክፍል ውስጥ. እንዲሁም ለደንበኝነት መመዝገብ ይችላሉ። የሴፍ ቪዲዮ ኮርስበጥቅምት 15 የሚጀመረው።

የጽሁፉ ደራሲ ሰርጌ ቦንዳሬቭ፣ በሳውዝብሪጅ አርክቴክት በመለማመድ፣ የተረጋገጠ የኩበርኔትስ አስተዳዳሪ፣ የ kubespray ገንቢዎች አንዱ።

ትንሽ ፖስት ስክሪፕት ለማስታወቂያ ሳይሆን ለጥቅም...

PS Sergey Bondarev ሁለት የተጠናከረ ኮርሶችን ይመራል፡ የዘመነ Kubernetes Base ሴፕቴምበር 28-30 እና የላቀ Kubernetes ሜጋ ጥቅምት 14-16

በKubernetes ክላስተር ውስጥ መረጃን በማከማቸት ላይ

ምንጭ: hab.com

አስተያየት ያክሉ