ሩክ - ለኩበርኔትስ የራስ አገልግሎት የውሂብ ማከማቻ

ሩክ - ለኩበርኔትስ የራስ አገልግሎት የውሂብ ማከማቻ

ጥር 29, የ CNCF የቴክኒክ ኮሚቴ (ክላውድ Native Computing ፋውንዴሽን), Kubernetes በስተጀርባ ያለውን ድርጅት, Prometheus እና ኮንቴይነሮች እና ደመና ተወላጅ ዓለም የመጡ ሌሎች ክፍት ምንጭ ምርቶች, ድርጅት. ይፋ ተደርጓል ስለ ፕሮጀክቱ ተቀባይነት Rook ወደ ደረጃቸው. ይህንን “በኩበርኔትስ ውስጥ የተከፋፈለ የማከማቻ ኦርኬስትራ”ን ለማወቅ ጥሩ አጋጣሚ ነው።

ምን አይነት ሮክ?

Rook በ Go ውስጥ የተጻፈ ሶፍትዌር ነው (የተሰራጨው በ በነጻው Apache License 2.0)፣ የመረጃ መጋዘኖችን በሚያደርጋቸው አውቶማቲክ ተግባራት ለማቅረብ የተነደፈ ራስን ማስተዳደር, ራስን መመዘን እና ራስን መፈወስ. ይህንን ለማድረግ ሩክ አውቶሜትቶችን (በኩበርኔትስ አካባቢ ለሚጠቀሙ የውሂብ ማከማቻዎች)፡ ማሰማራት፣ ማስነሻ፣ ማዋቀር፣ አቅርቦት፣ ልኬት ማድረግ፣ ማሻሻያ፣ ፍልሰት፣ የአደጋ ማገገሚያ፣ ክትትል እና የንብረት አስተዳደር።

ፕሮጀክቱ በአልፋ ደረጃ ላይ የሚገኝ ሲሆን በCep የተከፋፈለ የማከማቻ ስርዓት በኩበርኔትስ ክላስተር በማቀናጀት ላይ ያተኮረ ነው። ደራሲዎቹ እንዲሁም ሌሎች የማከማቻ ስርዓቶችን ለመደገፍ ዕቅዶችን አስታውቀዋል፣ ነገር ግን ይህ በሚቀጥሉት ልቀቶች ላይ አይሆንም።

አካላት እና ቴክኒካዊ መሳሪያ

በኩበርኔትስ ውስጥ ያለው የሮክ ስራ በልዩ ኦፕሬተር ላይ የተመሰረተ ነው። (ስለ ኩበርኔትስ ኦፕሬተሮች የበለጠ ጽፈናል። ይህ ጽሑፍ)የማከማቻ አወቃቀሩን በራስ ሰር የሚያሰራ እና ክትትልን ተግባራዊ ያደርጋል።

እና ስለዚህ, የሩክ ኦፕሬተር ለማከማቻው ማሰማራት እና ለቀጣይ ጥገና አስፈላጊ የሆኑትን ነገሮች ሁሉ የያዘ መያዣ ይመስላል. የኦፕሬተር ኃላፊነቶች የሚከተሉትን ያካትታሉ:

  • ለሴፍ ማከማቻ ዴሞኖች DaemonSet መፍጠር (ceph-osd) ከቀላል RADOS ክላስተር ጋር;
  • ለሴፍ ክትትል ፖድዎችን መፍጠር (ጋር ሴፍ-ሞን, የክላስተር ሁኔታን መፈተሽ; ለምልአተ ጉባኤው፣ በአብዛኛዎቹ ጉዳዮች ሦስት ቅጂዎች ይሠራሉ፣ እና አንዳቸውም ቢወድቁ አዲስ ይነሳል);
  • የሲአርዲዎች አስተዳደር (ብጁ ምንጭ ፍቺዎች) ለራሱ ክላስተር, የማከማቻ ገንዳዎች, የነገር መደብሮች (በዕቃዎች ላይ PUT/GET የሚያከናውኑ የኤችቲቲፒ ጥያቄዎችን ለማቅረብ የመርጃዎች እና አገልግሎቶች ስብስቦች - ከS3 እና Swift API ጋር ተኳሃኝ ናቸው), እንዲሁም የፋይል ስርዓቶች;
  • ሁሉንም አስፈላጊ አገልግሎቶች ለመጀመር ፖድዎችን ማስጀመር;
  • የሮክ ወኪሎች መፈጠር.

የሮክ ወኪሎች በእያንዳንዱ የኩበርኔትስ መስቀለኛ መንገድ ላይ በተዘረጉ ልዩ ፓዶች ይወከላሉ. የወኪሉ ዓላማ ተሰኪ ማዋቀር ነው። FlexVolume, በ Kubernetes ውስጥ ለማከማቻ ጥራዞች ድጋፍ ይሰጣል. ወኪሉ የማጠራቀሚያውን አሠራር ተግባራዊ ያደርጋል: የአውታረ መረብ ማከማቻ መሳሪያዎችን ያገናኛል, ጥራዞችን ይጭናል, የፋይል ስርዓቱን ያዘጋጃል, ወዘተ.

ሩክ - ለኩበርኔትስ የራስ አገልግሎት የውሂብ ማከማቻ
በአጠቃላይ የኩበርኔትስ ክላስተር እቅድ ውስጥ የሮክ አካላት ቦታ እና ሚና

ሩክ ሶስት ዓይነት ማከማቻዎችን ያቀርባል፡-

  1. አግድ (አግድ, StorageClass) - ማስቀመጫውን ወደ አንድ ምድጃ ይጭናል;
  2. ነገር (ነገር, ObjectStore) - በ Kubernetes ክላስተር ውስጥ እና ውጭ ይገኛል (በ S3 API);
  3. የተጋራ ፋይል ስርዓት (የተጋራ ፋይል ስርዓት, Filesystem) ከበርካታ ፖድዎች ለማንበብ እና ለመጻፍ የሚሰቀል የፋይል ስርዓት ነው።

የሮክ ውስጣዊ ነገሮች የሚከተሉትን ያካትታሉ:

  • ሞንስ - ለሴፍ ክትትል (ቀደም ሲል ከተጠቀሰው ሴፍ-ሞን ጋር) ፓዶች;
  • ኦኤስዲዎች - በ ceph-osd deemons (የነገር ማከማቻ ዴሞኖች) ጋር ፖድ;
  • MGR - እንክብሎች ከአጋንንት ጋር ሴፍ-mgr (Ceph Manager), ለውጫዊ ስርዓቶች ተጨማሪ የክትትል ችሎታዎችን እና መገናኛዎችን የሚያቀርብ (ክትትል / ቁጥጥር);
  • አርጂ (አማራጭ) - የእቃ ማጠራቀሚያ ያላቸው ፖድዎች;
  • MDS (አማራጭ) - የተጋራ የፋይል ስርዓት ያላቸው ፖድዎች።

ሩክ - ለኩበርኔትስ የራስ አገልግሎት የውሂብ ማከማቻ

ሁሉም የሩክ ዴሞኖች (Mons፣ OSDs፣ MGR፣ RGW፣ MDS) ወደ አንድ ሁለትዮሽ (ሁለትዮሽ) ይሰባሰባሉ።rook) በእቃ መያዣ ውስጥ መሮጥ.

ለሮክ ፕሮጀክት አጭር መግቢያ ይህ አጭር (12 ስላይዶች) ጠቃሚ ሊሆን ይችላል። አቀራረብ ከ Bassam Tabbara (CTO እና Quantum Corp)።

ሮክን በመስራት ላይ

የሮክ ኦፕሬተር የኩበርኔትስ ስሪት 1.6 እና ከዚያ በላይን ሙሉ በሙሉ ይደግፋል (እና፣ በከፊል፣ የቆዩ የK8s ልቀት - 1.5.2). የእሱ መጫን в ቀላሉ ሁኔታ ይህን ይመስላል:

cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yaml

በተጨማሪም የሮክ ኦፕሬተር ተዘጋጅቷል Helm ገበታለዚህ ምስጋና ይግባውና መጫኑ እንደሚከተለው ሊከናወን ይችላል-

helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook

አነስተኛ መጠን ይገኛል። የማዋቀር አማራጮች (ለምሳሌ ድጋፍን ማሰናከል ይችላሉ። አር.ቢ.ሲይህ ባህሪ በእርስዎ ክላስተር ውስጥ ጥቅም ላይ ካልዋለ) ወደ ተላልፈዋል helm install በፓራሜትር በኩል --set key=value[,key=value] (ወይም በተለየ የ YAML ፋይል ውስጥ ያከማቹ እና በ በኩል ያስተላልፉ -f values.yaml).

የሩክ ኦፕሬተርን ከጫኑ በኋላ እና ፖድዎችን ከወኪሎቹ ጋር ከጀመሩ በኋላ የቀረው የሮክ ክላስተር ራሱ መፍጠር ብቻ ነው ፣ ቀላሉ አወቃቀሩ ይህንን ይመስላል (rook-cluster.yaml):

apiVersion: v1
kind: Namespace
metadata:
  name: rook
---
apiVersion: rook.io/v1alpha1
kind: Cluster
metadata:
  name: rook
  namespace: rook
spec:
  dataDirHostPath: /var/lib/rook
  storage:
    useAllNodes: true
    useAllDevices: false
    storeConfig:
      storeType: bluestore
      databaseSizeMB: 1024
      journalSizeMB: 1024

አመለከተለባህሪው ልዩ ትኩረት መስጠት አለበት dataDirHostPath, ዳግም ከተነሳ በኋላ ክላስተር ለመቆጠብ አስፈላጊ የሆነው ትክክለኛው ዋጋ. በኩበርኔትስ አስተናጋጆች ላይ ለሩክ ዳታ እንደ ቋሚ ማከማቻ ቦታ ጥቅም ላይ በሚውልባቸው አጋጣሚዎች፣ ደራሲዎቹ በዚህ ማውጫ ውስጥ ቢያንስ 5 ጂቢ ነፃ የዲስክ ቦታ እንዲኖራቸው ይመክራሉ።

የቀረው በትክክል ክላስተርን ከውቅር መፍጠር እና ፖድቹ በክላስተር ውስጥ መፈጠሩን ማረጋገጥ ብቻ ነው (በስም ቦታ rook):

kubectl create -f rook-cluster.yaml
kubectl -n rook get pod
NAME                              READY     STATUS    RESTARTS   AGE
rook-api-1511082791-7qs0m         1/1       Running   0          5m
rook-ceph-mgr0-1279756402-wc4vt   1/1       Running   0          5m
rook-ceph-mon0-jflt5              1/1       Running   0          6m
rook-ceph-mon1-wkc8p              1/1       Running   0          6m
rook-ceph-mon2-p31dj              1/1       Running   0          6m
rook-ceph-osd-0h6nb               1/1       Running   0          5m

አሻሽል የሩክ ክላስተር (እስከ አዲስ ስሪት) በዚህ ደረጃ ሁሉንም ክፍሎቹን በቅደም ተከተል በተወሰነ ቅደም ተከተል ማዘመን የሚፈልግ ሂደት ነው ፣ እና እርስዎ መጀመር የሚችሉት አሁን ያለው የሮክ መጫኛ ሙሉ በሙሉ “ጤናማ” መሆኑን ካረጋገጡ በኋላ ነው ። ሁኔታ. ዝርዝር የደረጃ በደረጃ መመሪያዎች የሩክ ሥሪትን ከ0.5.0 እስከ 0.5.1 የማዘመን ምሳሌ በመጠቀም በ ውስጥ ይገኛሉ። የፕሮጀክት ሰነዶች.

ባለፈው ህዳር በሮክ ብሎግ ላይ ታትሟል ንጽጽር አፈፃፀም። ከኢቢኤስ ጋር ውጤቶቹ ትኩረት ሊሰጣቸው የሚገቡ ናቸው, እና ባጭሩ, የሚከተሉት ናቸው.

ሩክ - ለኩበርኔትስ የራስ አገልግሎት የውሂብ ማከማቻ
ሩክ - ለኩበርኔትስ የራስ አገልግሎት የውሂብ ማከማቻ

ተስፋዎች

የሩክ ወቅታዊ ሁኔታ አልፋ ነው፣ እና እስከ ዛሬ የተለቀቀው የቅርብ ጊዜ ዋና ልቀት ነው። ስሪት 0.6በኖቬምበር 2017 የተለቀቀ (የአሁኑ እርማት - v0.6.2 - በታኅሣሥ 14 ወጣ)። ቀድሞውኑ በ 2018 የመጀመሪያ አጋማሽ ላይ ፣ የበለጡ የበሰሉ ስሪቶች ልቀቶች ይጠበቃሉ-ቤታ እና የተረጋጋ (በይፋ ለምርት ዝግጁ)።

እንደ የመንገድ ካርታ ፕሮጄክት፣ ገንቢዎቹ ቢያንስ በሚቀጥሉት ሁለት እትሞች ውስጥ ለሮክ ልማት ዝርዝር እይታ አላቸው፡ 0.7 (ዝግጁነቱ በ GitHub መከታተያ ውስጥ ነው) የተገመተ እንደ 60%) እና 0.8. ከሚጠበቁት ለውጦች መካከል ለሴፍ ብሎክ እና ለሴፍ ነገር ድጋፍ ወደ ቤታ ስሪት ሁኔታ ማስተላለፍ፣ ተለዋዋጭ የጥራዞች አቅርቦት ለሴፍኤፍኤስ፣ የላቀ የምዝግብ ማስታወሻ ስርዓት፣ አውቶሜትድ የክላስተር ዝመናዎች፣ ለቅጽበቶች ቅጽበተ-ፎቶዎች ድጋፍ።

ሩክን ወደ ቁጥር በመውሰድ ላይ CNCF ፕሮጀክቶች (እስካሁን ገና በመጀመርያ ደረጃ - “የመነሳሳት-ደረጃ” - በተመሳሳይ መልኩ linkerd и CoreDNS) በምርቱ ላይ ፍላጎት እያደገ የመምጣቱ ዋስትና አይነት ነው. በደመና አፕሊኬሽኖች አለም ውስጥ እንዴት ቦታን እንደሚያገኝ የተረጋጋ ስሪቶች ከተለቀቁ በኋላ የበለጠ ግልጽ ይሆናል፣ ይህም አዲስ ሞካሪዎችን እና ተጠቃሚዎችን ወደ ሩክ ያመጣል።

PS

በብሎጋችን ላይ ያንብቡ፡-

ምንጭ: hab.com

በDDoS ጥበቃ፣ VPS VDS አገልጋዮች ለጣቢያዎች አስተማማኝ ማስተናገጃ ይግዙ 🔥 አስተማማኝ የድር ጣቢያ ማስተናገጃ በዲዶኤስ ጥበቃ፣ በቪፒኤስ ቪዲኤስ አገልጋዮች ይግዙ | ProHoster