Rook - e Self-Service Dategeschäft fir Kubernetes

Rook - e Self-Service Dategeschäft fir Kubernetes

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, ugekënnegt 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?

Rook ass Software geschriwwen a Go (verdeelt duerch ë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ësen Artikel), 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 (ceph-osd) mat engem einfachen RADOS Stärekoup;
  • Pods erstellen fir Ceph Iwwerwaachung (vun ceph-mon, 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 (Benotzerdefinéiert Ressource Definitiounen) fir sech selwer Stärekoup, Stockage Pool, Objet Geschäfter (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 Dateisystemer;
  • 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 FlexVolume, 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.

Rook - e Self-Service Dategeschäft fir Kubernetes
Plaz a Roll vun Rook Komponenten am Gesamt Kubernetes Cluster Schema

Rook bitt dräi Aarte vu Späichere:

  1. blockéieren (Block, StorageClass) - montéiert d'Lagerung op engem eenzegen Häerz;
  2. Objet (Objet, ObjectStore) - verfügbar bannent an ausserhalb vum Kubernetes Cluster (iwwer S3 API);
  3. gedeelt Dateiesystem (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-mgr (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.

Rook - e Self-Service Dategeschäft fir Kubernetes

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. Presentatioun 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 в einfachsten Szenario gesäit aus wéi:

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

Zousätzlech ass de Rook Bedreiwer virbereet Helm Chart, 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 Setup Optiounen (zum Beispill, Dir kënnt Ënnerstëtzung auszeschalten RBAC, 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: 1024

Remarque: 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          5m

Upgrade 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 Projet Dokumentatioun.

Leschte November um Rook Blog publizéiert gouf Verglach läit Produktivitéit mat EBS. Seng Resultater sinn Opmierksamkeet wäert, a kuerz, si sinn wéi follegt:

Rook - e Self-Service Dategeschäft fir Kubernetes
Rook - e Self-Service Dategeschäft fir Kubernetes

Perspektiven

Dem Rook säin aktuelle Status ass Alpha, an déi lescht grouss Verëffentlechung bis elo ass Versioun 0.6, verëffentlecht am November 2017 (aktuell Korrektur - v0.6.2 - 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 Strooss 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 geschat 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 CNCF Projeten (bis elo am ganz fréie Stadium - "Inception-Level" - par rapport zu linked и CoreDNS) 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

Setzt e Commentaire