
Den 29. Januar huet den technesche Comité vun der CNCF (Cloud Native Computing Foundation), der Organisatioun hannert Kubernetes, Prometheus an aner Open Source Produkter aus der Welt vu Container a Cloud Native, iwwer d'Akzeptanz vum Projet Rook an hir Reihen. Eng exzellent Geleeënheet fir dësen "verdeelte SpÀicherorchester zu Kubernetes kennen ze léieren."
Wéi eng Rook?
ass Software geschriwwen a Go ( Ă«nner der gratis Apache Lizenz 2.0), entwĂ©ckelt fir Datelager mat automatisĂ©ierte Funktiounen ze bidden, dĂ©i se maachen Self-Managing, Self-Scaling an Self-heelen. Fir dĂ«st ze maachen, Rook automatisĂ©iert (fir DategeschĂ€fter dĂ©i an engem Kubernetes Ămfeld benotzt ginn): Deployment, Bootstrapping, Konfiguratioun, Dispositioun, SkalĂ©ieren, Updates, Migratiounen, Katastrophenerhuelung, Iwwerwaachung a Ressourcemanagement.
De Projet ass an der Alpha-BĂŒhn a spezialisĂ©iert op d'Orchestratioun vum Ceph verdeelt SpĂ€ichersystem a Kubernetes Cluster. D'Auteuren annoncĂ©ieren och PlĂ€ng fir aner SpĂ€ichersystemer z'Ă«nnerstĂ«tzen, awer dĂ«st wĂ€ert net an den nĂ€chste VerĂ«ffentlechungen geschĂ©ien.
Komponenten an techneschen Apparat
Dem Rook seng Aarbecht bannent Kubernetes baséiert op engem speziellen Bedreiwer (mir geschriwwen méi iwwer Kubernetes Opérateuren an ), déi d'SpÀicherkonfiguratioun automatiséiert an hir Iwwerwaachung implementéiert.
An dofir, Rook Bedreiwer schĂ©ngt e Container ze sinn deen alles enthĂ€lt wat nĂ©ideg ass fir den Deployment an de spĂ©ideren Ănnerhalt vum Repository. Bedreiwer ResponsabilitĂ©iten enthalen:
- en DaemonSet fir Ceph SpÀicherdemonen erstellen () mat engem einfachen RADOS StÀrekoup;
- Pods erstellen fir Ceph Iwwerwaachung (vun , Iwwerpréift de Status vum StÀrekoup; fir Quorum, an deene meeschte FÀll ginn drÀi Exemplare ofgesat, a wann ee vun hinnen fÀllt, da kënnt en neien op);
- Gestioun vun CRDs () fir sech selwer , , (Sets vu Ressourcen a Servicer fir HTTP-Ufroen ze servéieren déi PUT / GET op Objekter ausféieren - si sinn kompatibel mat S3 a Swift API), wéi och ;
- Initialiséiere Pods fir all néideg Servicer ze starten;
- Kreatioun vun Rook Agenten.
Agenten vun Rook ginn duerch getrennte Pods vertrueden, dĂ©i op all Kubernetes Node ofgesat ginn. Den Zweck vum Agent ass Plugin Konfiguratioun , dĂ©i ĂnnerstĂ«tzung fir SpĂ€ichervolumen an Kubernetes ubitt. Den Agent implementĂ©iert d'Operatioun vun der SpĂ€ichere: verbĂ«nnt NetzwierkspeichergerĂ€ter, montĂ©iert BĂ€nn, formatĂ©iert de Dateiesystem, asw.

Plaz a Roll vun Rook Komponenten am Gesamt Kubernetes Cluster Schema
Rook bitt drÀi Aarte vu SpÀichere:
- (Block,
StorageClass) - montéiert d'Lagerung op engem eenzegen HÀerz; - (Objet,
ObjectStore) - verfĂŒgbar bannent an ausserhalb vum Kubernetes Cluster (iwwer S3 API); - (Shared Dateisystem,
Filesystem) ass e Dateiesystem dee fir Liesen a Schreiwen vu multiple Pods montéiert ka ginn.
D'Innere vum Rook enthalen:
- Mons - Pods fir Ceph-Iwwerwaachung (mat dem scho genannte Ceph-mon);
- OSDs - Pods mat Ceph-osd Daemons (Object Storage Daemons);
- M.G.R. - Pods mat engem DÀmon (Ceph Manager), déi zousÀtzlech IwwerwaachungsfÀegkeeten an Interfaces fir extern Systemer (Iwwerwaachung / Kontroll) ubitt;
- RGW (optional) - Pods mat Objektlagerung;
- MDS (optional) - Pods mat gedeelt Dateiesystem.

All Rook Daemons (Mons, OSDs, MGR, RGW, MDS) ginn an eng eenzeg BinÀr kompiléiert (rook) an engem Container lafen.
Fir eng kuerz Aféierung an de Rook-Projet, kann dëse Kuerz (12 Rutschen) och nëtzlech sinn. vum Bassam Tabbara (CTO bei Quantum Corp).
D'Operatioun vum Rook
De Rook Bedreiwer Ă«nnerstĂ«tzt voll Kubernetes Versioun 1.6 a mĂ©i hĂ©ich (an deelweis dĂ©i eeler K8s VerĂ«ffentlechung - 1.5.2)An. SĂ€i Installatioun ĐČ gesĂ€it aus wĂ©i:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlZousÀtzlech ass de Rook Bedreiwer virbereet , dank deem d'Installatioun esou duerchgefouert ka ginn:
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook Kleng QuantitĂ©it verfĂŒgbar (zum Beispill, Dir kĂ«nnt ĂnnerstĂ«tzung auszeschalten , wann dĂ«s Fonktioun net an Ărem Cluster benotzt gĂ«tt), dĂ©i un helm install iwwer Parameter --set key=value[,key=value] (oder spĂ€ichert an enger separater YAML Datei a schĂ©ckt iwwer -f values.yaml).
Nodeems Dir de Rook Bedreiwer installéiert hutt an Pods mat sengen Agenten lancéiert huet, bleift just de Rook Cluster selwer ze kreéieren, déi einfachst Konfiguratioun vun deem ausgesÀit esou (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: 1024Remarque: Besonnesch Opmierksamkeet sollt op den Attribut bezuelt ginn dataDirHostPath, dee richtege WÀert vun deem néideg ass fir de Cluster no Neistarten ze spÀicheren. Fir FÀll wou et als permanent SpÀicherplaz fir Rook Daten op Kubernetes Hosten benotzt gëtt, empfeelen d'Auteuren op d'mannst 5 GB gratis Disk Space an dësem Verzeichnis.
Alles wat bleift ass tatsÀchlech de Cluster aus der Konfiguratioun ze kreéieren an sécherzestellen datt d'Pods am Cluster erstallt goufen (am Nummraum 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 5mUpgrade Rookcluster (bis zu enger neier Versioun) ass eng Prozedur déi an dëser Phase sequentiell Aktualiséierung vun all sengen Komponenten an enger gewësser Sequenz erfuerdert, an Dir kënnt et eréischt starten nodeems Dir gesuergt hutt datt déi aktuell Rook Installatioun komplett "gesond" ass. Staat. Detailléiert Schrëtt-fir-Schrëtt Instruktioune mam Beispill vun der Aktualiséierung vun der Rook Versioun 0.5.0 op 0.5.1 fannt Dir an .
Leschte November um Rook Blog Verglach lÀit Produktivitéit mat EBS. Seng Resultater sinn Opmierksamkeet wÀert, a kuerz, si sinn wéi follegt:


Perspektiven
Dem Rook sÀin aktuelle Status ass Alpha, an déi lescht grouss Verëffentlechung bis elo ass , verëffentlecht am November 2017 (aktuell Korrektur - - koum de 14. Dezember eraus). Schonn an der éischter Halschent vum 2018 ginn Verëffentlechunge vu méi reife Versioune erwaart: Beta a stabil (offiziell prett fir an der Produktioun ze benotzen).
NĂ«mmen Projet, hunn d'EntwĂ©ckler eng detaillĂ©iert Visioun fir d'EntwĂ©cklung vum Rook an op d'mannst dĂ©i nĂ€chst zwou VerĂ«ffentlechungen: 0.7 (seng Bereetschaft ass am GitHub Tracker als 60%) an 0.8. Ănnert den erwaarten Ănnerungen sinn den Transfert vun der ĂnnerstĂ«tzung fir Ceph Block a Ceph Object op Beta Versioun Status, dynamesch Dispositioun vu BĂ€nn fir CephFS, e fortgeschratt Logsystem, automatisĂ©iert Clusterupdates, ĂnnerstĂ«tzung fir Snapshots fir BĂ€nn.
Rook an d'Zuel huelen (bis elo am ganz fréie Stadium - "Inception-Level" - par rapport zu О ) ass eng Zort Garantie fir wuessend Interesse am Produkt. Wéi et Fouss an der Welt vun de Cloud-Applikatiounen kritt, gëtt méi kloer wann stabil Versioune verëffentlecht ginn, wat sécherlech nei Tester a Benotzer op Rook bréngt.
PS
Liest och op eisem Blog:
- «";
- «";
- «";
- «";
- «".
Source: will.com
