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

Kaaft zouverlĂ€sseg Hosting fir Site mat DDoS Schutz, VPS VDS Server đŸ”„ Kaaft zouverlĂ©issegt WebsĂ€ithosting mat DDoS-Schutz, VPS VDS Server | ProHoster