
Më 29 janar, komiteti teknik i CNCF (Cloud Native Computing Foundation), organizata që qëndron pas Kubernetes, Prometheus dhe produkteve të tjera me burim të hapur nga bota e kontejnerëve dhe vendasve të cloud, për pranimin e projektit sorrë në radhët e tyre. Një mundësi e shkëlqyer për t'u njohur me këtë "orkestrator të ruajtjes së shpërndarë në Kubernetes".
ĂfarĂ« lloj Rook?
është softuer i shkruar në Go ( nën licencën falas Apache 2.0), i projektuar për të ofruar depo të dhënash me funksione të automatizuara që i bëjnë ato vetë-menaxhimi, vetë-shkallëzimi dhe vetë-shërimi. Për ta bërë këtë, Rook automatizon (për dyqanet e të dhënave të përdorura në një mjedis Kubernetes): vendosjen, bootstrapping, konfigurimin, sigurimin, shkallëzimin, përditësimet, migrimet, rikuperimin nga fatkeqësitë, monitorimin dhe menaxhimin e burimeve.
Projekti është në fazën alfa dhe është i specializuar në orkestrimin e sistemit të ruajtjes së shpërndarë Ceph në grupimet Kubernetes. Autorët njoftojnë gjithashtu planet për të mbështetur sisteme të tjera të ruajtjes, por kjo nuk do të ndodhë në versionet e ardhshme.
Komponentët dhe pajisjet teknike
Puna e Rook brenda Kubernetes bazohet në një operator të veçantë (ne kemi shkruar më shumë rreth Operatorëve Kubernetes në ), i cili automatizon konfigurimin e ruajtjes dhe zbaton monitorimin e tij.
Pra, Operator Rook duket të jetë një kontejner që përmban gjithçka të nevojshme për vendosjen dhe mirëmbajtjen e mëvonshme të depove. Përgjegjësitë e operatorit përfshijnë:
- duke krijuar një DaemonSet për demonët e ruajtjes së Ceph () me një grup të thjeshtë RADOS;
- krijimi i pods për monitorimin e Ceph (nga , duke kontrolluar statusin e grupit; për kuorum, në shumicën e rasteve shpërndahen tre kopje, dhe nëse ndonjëra prej tyre bie, ngrihet një e re);
- menaxhimi i CRD-ve () për veten e tij , , (Grupe burimesh dhe shërbimesh për shërbimin e kërkesave HTTP që kryejnë PUT/GET në objekte - ato janë të pajtueshme me S3 dhe Swift API)Dhe ;
- inicializimi i pods për të nisur të gjitha shërbimet e nevojshme;
- krijimi i agjentëve të Rook.
Agjentët e Rook përfaqësohen nga pods të veçanta që janë vendosur në secilën nyje Kubernetes. Qëllimi i agjentit është konfigurimi i shtojcave , i cili ofron mbështetje për vëllimet e ruajtjes në Kubernetes. Agjenti zbaton funksionimin e ruajtjes: lidh pajisjet e ruajtjes së rrjetit, monton vëllime, formaton sistemin e skedarëve, etj.

Vendi dhe roli i komponentëve Rook në skemën e përgjithshme të grupimit Kubernetes
Rook ofron tre lloje të ruajtjes:
- (Bllok,
StorageClass) â monton magazinimin nĂ« njĂ« vatĂ«r tĂ« vetme; - (Objekt,
ObjectStore) - disponohet brenda dhe jashtë grupit Kubernetes (nëpërmjet S3 API); - (Sistemi i skedarëve të përbashkët,
Filesystem) është një sistem skedari që mund të montohet për lexim dhe shkrim nga pods të shumta.
Pjesët e brendshme të Rook përfshijnë:
- Mons â pods pĂ«r monitorimin e Ceph (me ceph-monin e pĂ«rmendur tashmĂ«);
- OSD - pods me daemon ceph-osd (Object Storage Daemons);
- M.G.R. - bishtaja me një demon (Ceph Manager), i cili ofron aftësi shtesë monitorimi dhe ndërfaqe për sistemet e jashtme (monitorim/kontroll);
- RGW (Fakultative) - bishtaja me ruajtje objektesh;
- MDS (Fakultative) - pods me sistemin e skedarëve të përbashkët.

Të gjithë demonët e Rook (Mons, OSD, MGR, RGW, MDS) janë përpiluar në një binar të vetëm (rook) që rrjedh në një enë.
Për një hyrje të shkurtër të projektit Rook, ky i shkurtër (12 rrëshqitje) mund të jetë gjithashtu i dobishëm. nga Bassam Tabbara (CTO në Quantum Corp).
Operimi i Rook
Operatori Rook mbĂ«shtet plotĂ«sisht Kubernetes versionin 1.6 dhe mĂ« tĂ« lartĂ« (dhe, pjesĂ«risht, lĂ«shimi mĂ« i vjetĂ«r i K8 - 1.5.2). E tij instalimi ĐČ duket kĂ«shtu:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlPërveç kësaj, operatori Rook është i përgatitur , falë të cilit instalimi mund të kryhet si kjo:
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook Sasi e vogël në dispozicion (për shembull, mund të çaktivizoni mbështetjen , nëse kjo veçori nuk përdoret në grupin tuaj), të cilat kalohen te helm install nëpërmjet parametrit --set key=value[,key=value] (ose ruajeni në një skedar të veçantë YAML dhe transmetojeni nëpërmjet -f values.yaml).
Pas instalimit të operatorit Rook dhe lëshimit të pods me agjentët e tij, gjithçka që mbetet është të krijohet vetë grupi Rook, konfigurimi më i thjeshtë i të cilit duket si ky (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: 1024ShĂ«nim: vĂ«mendje e veçantĂ« duhet t'i kushtohet atributit dataDirHostPath, vlera e saktĂ« e sĂ« cilĂ«s Ă«shtĂ« e nevojshme pĂ«r tĂ« ruajtur grupin pas rindezjes. PĂ«r rastet kur pĂ«rdoret si njĂ« vend ruajtjeje tĂ« pĂ«rhershme pĂ«r tĂ« dhĂ«nat e Rook nĂ« hostet e Kubernetes, autorĂ«t rekomandojnĂ« tĂ« keni tĂ« paktĂ«n 5 GB hapĂ«sirĂ« ââtĂ« lirĂ« nĂ« disk nĂ« kĂ«tĂ« direktori.
Gjithçka që mbetet është që në fakt të krijohet grupi nga konfigurimi dhe të sigurohemi që pods janë krijuar në grup (në hapësirën e emrave 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 5mPërmirëso Grupi Rook (deri në një version të ri) është një procedurë që në këtë fazë kërkon përditësimin vijues të të gjithë përbërësve të tij në një sekuencë të caktuar dhe mund ta filloni atë vetëm pasi të jeni siguruar që instalimi aktual i Rook është plotësisht "i shëndetshëm". shteti. Udhëzime të hollësishme hap pas hapi duke përdorur shembullin e përditësimit të versionit të Rook 0.5.0 në 0.5.1 mund të gjenden në .
Nëntorin e kaluar në blogun Rook krahasim produktiviteti me EBS. Rezultatet e tij meritojnë vëmendje, dhe shkurtimisht, ato janë si më poshtë:


Perspektivat
Statusi aktual i Rook Ă«shtĂ« alfa, dhe versioni mĂ« i fundit i madh deri mĂ« tani Ă«shtĂ« , lĂ«shuar nĂ« nĂ«ntor 2017 (korrigjimi aktual - â doli mĂ« 14 dhjetor). TashmĂ« nĂ« gjysmĂ«n e parĂ« tĂ« 2018, priten lĂ«shimet e versioneve mĂ« tĂ« pjekura: beta dhe tĂ« qĂ«ndrueshme (zyrtarisht gati pĂ«r pĂ«rdorim nĂ« prodhim).
Sipas projekti, zhvilluesit kanë një vizion të detajuar për zhvillimin e Rook në të paktën dy lëshimet e ardhshme: 0.7 (gatishmëria e tij është në gjurmuesin GitHub si 60%) dhe 0.8. Ndër ndryshimet e pritshme janë transferimi i mbështetjes për Ceph Block dhe Ceph Object në statusin e versionit beta, sigurimi dinamik i vëllimeve për CephFS, një sistem i avancuar i regjistrimit, përditësimet e automatizuara të grupimeve, mbështetje për fotografitë e çastit për vëllime.
Duke marrë Rook në numër (deri më tani në fazën shumë të hershme - "niveli fillestar" - në të njëjtin nivel me О ) është një lloj garancie për rritjen e interesit për produktin. Mënyra se si do të fitojë një terren në botën e aplikacioneve cloud do të bëhet më e qartë pasi të lëshohen versionet e qëndrueshme, të cilat sigurisht do të sjellin testues dhe përdorues të rinj në Rook.
PS
Lexoni edhe në blogun tonë:
- «"?
- «"?
- «"?
- «"?
- «'.
Burimi: www.habr.com
