
29. jaanuaril teatas CNCF (Cloud Native Computing Foundation), mis on Kubernetes, Prometheuse ja teiste konteinerite ja cloud native'i avatud lÀhtekoodiga toodete loomise organisatsioon, projekti vastuvÔtmisest Rook oma ridadesse. SuurepÀrane pÔhjus tutvuda lÀhemalt selle 'jaotatud andmehoidlate orkestri' vÔimalustega Kuberneteses.
Mis on Rook?
â see on Go keeles kirjutatud tarkvara ( avatud litsentsi Apache License 2.0 alusel), mis on mĂ”eldud andmehoidlate varustamiseks automatiseeritud funktsioonidega, mis muudavad need isejuhtivateks, isemÔÔtmisvĂ”imeliseks ja eneseparandavateks.Selleks automatiseerib Rook (andmehoidlate jaoks, mida kasutatakse Kuberneteses): juurutamise, bootstrappingu, seadistamise, provisioningu, skaleerimise, uuendused, migratsioonid, tĂ”rke taastamine, jĂ€lgimine ja ressursside haldamine.
Projekt on alfaetapis ja spetsialiseerub Cephi jaotatud andmehoidla orkestreerimisele Kubernetes'e klastrites. Autorid teatavad ka plaanidest toetada teisi andmehoidla sĂŒsteeme, kuid see ei toimu lĂ€hitulevikus.
Koostisosad ja tehniline struktuur
Rook'i töö aluseks Kubernetes'is on spetsiaalne operaator (Kubernetes'i operaatoritest oleme rohkem kirjutanud ), automatiseerides salvestuskonfiguratsiooni ja teostades selle jÀlgimist.
Nii et, Rook'i operaator esindab konteinerit, mis sisaldab kÔike vajalikku salvestuse juurutamiseks ja edaspidiseks hoolduseks. Operaatori kohustuste hulka kuulub:
- DaemonSet'i loomine Ceph'i salvestusdeemoneid jaoks () lihtsa RADOS klastri jaoks;
- Ceph'i jĂ€lgimise pod'ide loomine (koos , mis kontrollivad klastri seisukorda; enamikul juhtudel juurutatakse kolm eksemplari kvoorumi tagamiseks, ning kui ĂŒks neist ebaĂ”nnestub, tĂ”stetakse uus ĂŒles);
- CRD'de haldamine () klastrile endale , , failisĂŒsteemid, samuti ;
- Rook'i agentide loomine.
- Rook'i agendid
esindavad eraldi pod'e, mis juurutatakse igas Kubernetes'i sĂ”lmes. Agendi eesmĂ€rk on plugina konfiguratsioon FlexVolume , tagab toetuse hoidlate mahtude jaoks Kubernetesis. Agent haldab salvestust: ĂŒhendab salvestusseadmed, kinnitab mahtusid, vormindab failisĂŒsteemi jne.

Rooki komponentide asukoht ja roll Kubernetes klastrite ĂŒldskeemis
Rook pakub kolme tĂŒĂŒpi salvestusi:
- (Block,
StorageClass) â kinnitab salvestust ĂŒhe podiga; - (Object,
ObjectStore) â on saadaval klastris ja vĂ€ljaspool Kubernetesit (S3 API kaudu); - (Shared File System,
FailisĂŒsteem) â failisĂŒsteem, mida saab kirjutamiseks ja lugemiseks kinnitada mitmest podist.
Rooki siseseade sisaldab:
- Mons â Cephi jĂ€lgimise podid (varem mainitud ceph-mon);
- OSDsd â podid ceph-osd (objektide salvestamise deemonite) jaoks;
- MGR â podid deemoniga (Ceph Manager), mis pakub tĂ€iendavaid jĂ€lgimisvĂ”imalusi ja liideseid vĂ€listesse sĂŒsteemidesse (jĂ€lgimine/haldamine);
- RGW (valikuline) â podid objektide salvestamiseks;
- MDS (valikuline) â podid jagatud FS-iga.

KĂ”ik Rooki deemonid (Mons, OSDsd, MGR, RGW, MDS) on kompileeritud ĂŒhte binaari (rook), mis kĂ€ivitatakse konteineris.
Rooki projekti lĂŒhikese ĂŒlevaate jaoks vĂ”ib olla kasulik ka see vĂ€ike (12 slaidi) Bassam Tabbara (Quantum Corp CTO) esitlus.
Rooki haldamine
Rook operaator toetab tĂ€ielikult Kubernetes versioone 1.6 ja kĂ”rgemad (ja osaliselt vanemat K8s versiooni â 1.5.2). Tema paigaldamine ĂŒhes nĂ€eb vĂ€lja nii:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlLisaks on Rook operaatori jaoks ette valmistatud , mistÔttu saab paigaldust teostada ka jÀrgmiselt:
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook On olemas vĂ€ike hulk (nĂ€iteks saab vĂ€lja lĂŒlitada toe , kui seda funktsiooni teie klastris ei kasutata), mis edastatakse helm install kaudu parameetri --set key=value[,key=value] (vĂ”i hoida eraldi YAML-failis ja edastada â kaudu -f values.yaml).
PÀrast Rook operaatori paigaldamist ja teemade kÀivitamist jÀÀb jÀrele luua Rook klaster, mille lihtne konfiguratsioon nÀeb vÀlja jÀrgmiselt (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: 1024MĂ€rkus: erilisele tĂ€helepanu tuleks pöörata attribuudile dataDirHostPath, mille, mis on vajalik klastrite sĂ€ilitamiseks pĂ€rast taaskĂ€ivitusi. Kui kasutatakse kui pĂŒsivat andmete salvestamise kohta, soovitavad Rook-i autorid, et sellel kataloogil oleks vĂ€hemalt 5 GB vaba kettaruumi.
JÀÀb vaid luua klaster konfiguratsioonist ja veenduda, et podid on klastrisse loodud (nimetatud ruumis rook):
kubectl create -f rook-cluster.yaml
kubectl -n rook get pod
NIME VALMIS OLEK TAASKĂIVITUSED AGE
rook-api-1511082791-7qs0m 1/1 Jookseb 0 5m
rook-ceph-mgr0-1279756402-wc4vt 1/1 Jookseb 0 5m
rook-ceph-mon0-jflt5 1/1 Jookseb 0 6m
rook-ceph-mon1-wkc8p 1/1 Jookseb 0 6m
rook-ceph-mon2-p31dj 1/1 Jookseb 0 6m
rook-ceph-osd-0h6nb 1/1 Jookseb 0 5mUuendus Rook klastrite (enne uut versiooni) uuendamise protseduur on selline, et see nĂ”uab kĂ”igi komponentide jĂ€rkjĂ€rgulist uuendamist kindlas jĂ€rjekorras, alustades seda saab teha ĂŒksnes pĂ€rast seda, kui olete veendunud Rooki praeguses tĂ€ielikult "terves" olekus. Ăksikasjaliku samm-sammulise juhise leidmiseks, mis kĂ€sitleb Rook'i versiooni 0.5.0 uuendamist versioonile 0.5.1, vaadake .
Eelmise aasta novembris Rooki blogis vĂ”rdlus praegune EBS-iga. Selle tulemused on tĂ€helepanuvÀÀrsed ja kui lĂŒhidalt kokku vĂ”tta, siis need on jĂ€rgmised:


Perspektiivid
Rooki praegune staatus on alpha, ning viimane suur vĂ€ljaanne kuni tĂ€naseni on , mis ilmus novembris 2017 (ajakohane parandamine â â ilmus 14. detsembril). Juba 2018. aasta esimeses pooles oodatakse kĂŒpsemaid versioone: beetaversioone ja stabiilset (ametlikult tootmises kasutamiseks valmis).
Vastavalt projekti jaoks on arendajatel selge nĂ€gemus Rooki arendamisest vĂ€hemalt kahel jĂ€rgmisel vĂ€ljaandel: 0.7 (selle valmidus GitHubi jĂ€lgijas 60% ulatuses) ja 0.8. Oodatud muudatuste seas â Ceph Blocki ja Ceph Objecti toe ĂŒleviimine beetaversiooniks, CephFS jaoks dĂŒnaamiline mahtude pakkumine, arenenud logimise sĂŒsteem, automatiseeritud klastri uuendused, mahtude jaoks kuvatĂ”mmiste tugi.
Rooki vastuvĂ”tmine (praegu kĂ”ige varasemas etapis â 'inception-level', â koos ja ) on tĂ”eliselt usaldusvÀÀrne mĂ€rk kasvavast huvist toote vastu. Kuidas see end pilvetoetustes kinnitab, selgub paremini stabiilsete versioonide ilmumisel, mis toovad Rookile kindlasti uusi âkatsetajaidâ ja kasutajaid.
P.S.
Lugege ka meie blogist:
- «»;
- «»;
- «»;
- «»;
- «».
Allikas: habr.com
