روڪ - ڪبرنيٽس لاءِ خود سروس ڊيٽا اسٽور

روڪ - ڪبرنيٽس لاءِ خود سروس ڊيٽا اسٽور

29 جنوري تي، CNCF (Cloud Native Computing Foundation) جي ٽيڪنيڪل ڪميٽي، Kubernetes، Prometheus ۽ ٻين اوپن سورس پراڊڪٽس جي پويان تنظيم، ڪنٽينرز ۽ ڪلائوڊ نيٽي جي دنيا مان، اعلان ڪيو منصوبي جي قبوليت بابت ريڪ انهن جي صفن ۾. هن کي ڄاڻڻ لاء هڪ بهترين موقعو "ڪبرنيٽس ۾ ورهايل اسٽوريج آرڪسٽرٽر."

ڪهڙي قسم جو روڪ؟

ريڪ سافٽ ويئر آهي Go ۾ لکيل آهي (طرفان ورهايل مفت Apache License 2.0 تحت)، ڊيٽا گودامن کي مهيا ڪرڻ لاءِ ڊزائين ڪيل خودڪار افعال سان جيڪي انهن کي ٺاهيندا آهن خود انتظام، خود اسڪيلنگ ۽ خود علاج. هن کي ڪرڻ لاءِ، روڪ خودڪار ڪندو آهي (ڊيٽا اسٽورن لاءِ ڪبرنيٽس ماحول ۾ استعمال ٿيل): مقرري، بوٽ اسٽريپنگ، ترتيب، روزي، اسڪيلنگ، تازه ڪاريون، لڏپلاڻ، آفت جي بحالي، نگراني ۽ وسيلن جو انتظام.

پروجيڪٽ الفا اسٽيج ۾ آهي ۽ ڪبرنيٽس ڪلسٽرز ۾ ڪيف ورهايل اسٽوريج سسٽم کي ترتيب ڏيڻ ۾ ماهر آهي. ليکڪ پڻ ٻين اسٽوريج سسٽم کي سپورٽ ڪرڻ جي منصوبن جو اعلان ڪن ٿا، پر اهو ايندڙ رليز ۾ نه ٿيندو.

اجزاء ۽ ٽيڪنيڪل ڊوائيس

ڪبرنيٽس اندر روڪ جو ڪم هڪ خاص آپريٽر تي ٻڌل آهي (اسان Kubernetes آپريٽرز بابت وڌيڪ لکيو اهو مضمون)، جيڪو اسٽوريج جي ترتيب کي خودڪار ڪري ٿو ۽ ان جي نگراني کي لاڳو ڪري ٿو.

۽ ائين، روڪ آپريٽر ظاهر ٿئي ٿو هڪ ڪنٽينر جنهن ۾ هر شيءِ تي مشتمل آهي جيڪا ترتيب ڏيڻ ۽ بعد ۾ مخزن جي سار سنڀال لاءِ ضروري آهي. آپريٽر جي ذميواريون شامل آهن:

  • سيف اسٽوريج ڊيمن لاءِ ڊيمون سيٽ ٺاهڻ (سيف-او ايس ڊي) هڪ سادي RADOS ڪلستر سان؛
  • سيف جي نگراني لاءِ پوڊ ٺاهڻ (کان ڪيف-مون, ڪلستر جي حيثيت چيڪ ڪرڻ; ڪورم لاءِ، اڪثر صورتن ۾ ٽي ڪاپيون لڳايون وينديون آهن، ۽ جيڪڏهن انهن مان ڪو به گهٽجي ويندو آهي، ته هڪ نئون اڀري ويندو آهي);
  • CRDs جو انتظام (حسب ضرورت وسيلن جي وصف) پاڻ لاء ڪلستر, اسٽوريج پول, اعتراض اسٽور (HTTP درخواستن جي خدمت لاءِ وسيلن ۽ خدمتن جا سيٽ جيڪي شيون تي PUT/GET انجام ڏين ٿا - اھي S3 ۽ Swift API سان مطابقت رکن ٿا)، انهي سان گڏوگڏ فائل سسٽم;
  • تمام ضروري خدمتون شروع ڪرڻ لاءِ پوڊ کي شروع ڪرڻ؛
  • روڪ ايجنٽ جي پيدائش.

روڪ جا ايجنٽ الڳ الڳ پوڊز جي نمائندگي ڪن ٿا جيڪي هر ڪبرنيٽس نوڊ تي مقرر ڪيا ويا آهن. ايجنٽ جو مقصد پلگ ان جي ٺاھ جوڙ آھي Flex حجم، جيڪو ڪبرنيٽس ۾ اسٽوريج جي مقدار لاءِ مدد فراهم ڪري ٿو. ايجنٽ اسٽوريج جي آپريشن کي لاڳو ڪري ٿو: نيٽ ورڪ اسٽوريج ڊوائيسز کي ڳنڍيندو آهي، حجم کي وڌائيندو آهي، فائيل سسٽم کي ترتيب ڏيندو آهي، وغيره.

روڪ - ڪبرنيٽس لاءِ خود سروس ڊيٽا اسٽور
مجموعي ڪبرنيٽس ڪلستر اسڪيم ۾ روڪ اجزاء جي جڳھ ۽ ڪردار

روڪ اسٽوريج جا ٽي قسم پيش ڪري ٿو:

  1. بلاڪ (بلاڪ, StorageClass) - اسٽوريج کي هڪ واحد چوٿون تي نصب ڪري ٿو؛
  2. اعتراض (اعتراض, ObjectStore) - ڪبرنيٽس ڪلستر جي اندر ۽ ٻاهر موجود (S3 API ذريعي)؛
  3. گڏيل فائل سسٽم (حصيداري فائل سسٽم, Filesystem) هڪ فائيل سسٽم آهي جيڪو ڪيترن ئي پوڊس مان پڙهڻ ۽ لکڻ لاء نصب ٿي سگهي ٿو.

روڪ جي اندروني حصن ۾ شامل آهن:

  • Mons - ڪيف مانيٽرنگ لاءِ پوڊ (اڳ ۾ ئي ذڪر ڪيل سيف-مون سان)؛
  • او ايس ڊيز - ceph-osd daemons سان پوڊ (Object Storage Daemons)؛
  • ايم آر آر - هڪ شيطان سان pods ceph-mgr (سيف مئنيجر)، جيڪو اضافي مانيٽرنگ صلاحيتون مهيا ڪري ٿو ۽ خارجي سسٽم لاءِ انٽرفيس (مانيٽرنگ/ڪنٽرول)؛
  • آر جي ڊي (اختياري) - آبجیکٹ اسٽوريج سان پوڊ؛
  • ايم ايس (اختياري) - پوڊ شيئر فائل سسٽم سان.

روڪ - ڪبرنيٽس لاءِ خود سروس ڊيٽا اسٽور

سڀ روڪ ڊيمون (Mons، OSDs، MGR، RGW، MDS) ھڪڙي بائنري ۾ مرتب ڪيا ويا آھن (rook) هڪ ڪنٽينر ۾ هلندڙ.

روڪ پروجيڪٽ جي مختصر تعارف لاءِ، هي مختصر (12 سلائڊ) پڻ ڪارآمد ٿي سگهي ٿو. پيشڪش بسام تبارا کان (CTO ۾ Quantum Corp).

روڪ کي هلائڻ

روڪ آپريٽر مڪمل طور تي سپورٽ ڪري ٿو Kubernetes ورجن 1.6 ۽ وڌيڪ (۽، جزوي طور، پراڻن K8s ڇڏڻ - 1.5.2). هن جي تنصيب в آسان ترين منظر هن وانگر ڏسڻ ۾ اچي ٿو:

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

ان کان سواء، روڪ آپريٽر تيار ڪيو ويو آهي هيلم چارٽ، جنهن جي مهرباني انسٽاليشن هن طرح ٿي سگهي ٿي:

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 GB مفت ڊسڪ اسپيس رکڻ جي صلاح ڏين ٿا.

باقي اهو آهي ته اصل ۾ ٺاھ جوڙ مان ڪلستر ٺاھيو وڃي ۽ پڪ ڪريو ته پوڊ ڪلستر ۾ ٺاھيا ويا آھن (نام جي جڳھ ۾ 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 تائين تازه ڪاري ڪرڻ جو مثال استعمال ڪندي تفصيلي قدم قدم هدايتون ڳولي سگهجن ٿيون. پروجيڪٽ دستاويز.

روڪ بلاگ تي آخري نومبر شايع ڪيو ويو مقابلو پيداوار EBS سان. ان جا نتيجا ڌيان جي لائق آهن، ۽ مختصر ۾، اهي هن ريت آهن:

روڪ - ڪبرنيٽس لاءِ خود سروس ڊيٽا اسٽور
روڪ - ڪبرنيٽس لاءِ خود سروس ڊيٽا اسٽور

امڪان

روڪ جي موجوده حيثيت الفا آهي، ۽ اڄ تائين تازو وڏي رليز آهي نسخو 0.6نومبر 2017 ۾ جاري ڪيو ويو (موجوده اصلاح - v0.6.2 - 14 ڊسمبر تي ٻاهر آيو). اڳ ۾ ئي 2018 جي ​​پهرين اڌ ۾، وڌيڪ بالغ نسخن جي رليز جي توقع ڪئي وئي آهي: بيٽا ۽ مستحڪم (رسمي طور تي پيداوار ۾ استعمال لاء تيار).

جي مطابق روڊ ميپ پروجيڪٽ، ڊولپرز وٽ گهٽ ۾ گهٽ ايندڙ ٻن رليزز ۾ روڪ جي ترقي لاءِ تفصيلي نظريو آهي: 0.7 (ان جي تياري آهي GitHub ٽريڪٽر ۾ ڪاٿو جيئن 60٪) ۽ 0.8. متوقع تبديلين ۾ سيف بلاڪ ۽ ڪيف آبجیکٹ جي بيٽا ورزن اسٽيٽس تي سپورٽ جي منتقلي، CephFS لاءِ مقدار جي متحرڪ روزي، هڪ جديد لاگنگ سسٽم، خودڪار ڪلستر اپڊيٽ، حجمن لاءِ سنيپ شاٽ لاءِ سپورٽ.

روڪ کي نمبر ۾ آڻڻ CNCF منصوبا (اڃا تائين تمام ابتدائي اسٽيج تي - "شروعاتي سطح" - سان گڏ ڳنڍيل и CoreDNS) پيداوار ۾ وڌندڙ دلچسپي جي ضمانت جو هڪ قسم آهي. اهو ڪلائوڊ ايپليڪيشنن جي دنيا ۾ ڪيئن قدم کڻندو اهو واضح ٿي ويندو جڏهن مستحڪم ورزن جاري ڪيا ويندا، جيڪي يقيني طور تي نوان ٽيسٽرز ۽ صارفين کي روڪ ڏانهن آڻيندا.

پي ايس

اسان جي بلاگ تي پڻ پڙهو:

جو ذريعو: www.habr.com

تبصرو شامل ڪريو