
29. jaanuaril vĂ”ttis CNCF (Cloud Native Computing Foundation), mis vastutab Kubernetes'e, Prometheuse ja teiste avatud lĂ€htekoodiga toodete eest, vastu projekti Rook , mis on suurepĂ€rane vĂ”imalus tutvuda selle "jaotatud andmete salvestamise sĂŒsteemide orkestreerijaga Kubernetes'e sees" lĂ€hemalt.
Mis on Rook?
â see on Go keeles kirjutatud tarkvara ( avatud litsentsiga Apache License 2.0), mis on mĂ”eldud andmesalvestuse automatiseerimiseks, et muuta need isehaldjateks, iseskaalautuvateks ja iseenesest taastuvateks. Rook automatiseerib (Kubernetes'e keskkonnas rakendatavate andmehoidlate jaoks): juurutamise, bootstrapping, konfiguratsiooni, varustamise, skaaleerimise, vĂ€rskendused, migreerimise, tĂ”rke taastamise, jĂ€lgimise ja ressursside haldamise.
Projekt on alfa-etapis ja spetsialiseerub jaotatud andmesalvestuse sĂŒsteemi Ceph orkestreerimisele Kubernetes'e klastrites. Autorid kinnitavad ka plaanide olemasolu toetada teisi salvestussĂŒsteeme, kuid see ei juhtu lĂ€hitulevikus.
Komponendid ja tehniline seadistus
Rook'i toimimise pÔhialuseks Kubernetes'e sees on spetsiaalne operaator (me rÀÀkisime Kubernetes'e operaatoritest ), mis automatiseerib salvestuse konfiguratsiooni ja teostab selle jÀlgimist.
Nii, Rook'i operaator esindab konteinerit, mis sisaldab kĂ”iki vajalikke komponente salvestuse juurutamiseks ja edasiste hooldustööde teostamiseks. Operaatori ĂŒlesannete hulka kuuluvad:
- Ceph'i salvestusdeemonite DaemonSet'i loomine () lihtsa RADOS klastriga;
- Ceph'i jĂ€lgimise podide loomine (mille , mis kontrollib klastri seisundit; enamasti juurutatakse kolm eksemplari kvoorumi tagamiseks ning kui ĂŒks neist ebaĂ”nnestub, tĂ”stetakse uus ĂŒles);
- CRD-de () haldamine , , (ressursside ja teenuste kogum HTTP-pĂ€ringute teenindamiseks, tehes PUT/GET toiminguid objektide jaoks â need on ĂŒhilduvad S3 ja Swift API-ga), samuti ;
- podide initsialiseerimine kÔigi vajalike teenuste kÀivitamiseks;
- Rook'i agentide loomine.
Rook'i agendid esindavad eraldi pode, mis juurutatakse igas Kubernetes'e sĂ”lmes. Agendi eesmĂ€rk on pluginat konfigureerida , mis tagab salvestusmahtude toetust Kubernetesis. Agent teostab salvestuse haldust: ĂŒhendab jaotustugevdajad, monteerib mahud, vormindab failisĂŒsteemi jne.

Rooki komponentide koht ja roll Kubernetes klastris
Rook pakub kolme tĂŒĂŒpi salvestusi:
- (Block,
StorageClass) â monteerib salvestuse ĂŒhele podile; - (Object,
ObjectStore) â saadaval klastris ja vĂ€ljas (kasutades S3 API-d); - (Shared File System,
Filesystem) â failisĂŒsteem, mida saab lugeda ja kirjutada paljude podide kaudu.
Rooki siseseade sisaldab jÀrgmist:
- Mons â podid Ceph-i jĂ€lgimiseks (eelnevalt mainitud ceph-mon);
- OSDs â podid, kus töötavad deemonid ceph-osd (Objekti Salvestuse Deemonid);
- MGR â podid deemoniga (Ceph Manager), mis pakub tĂ€iendavaid jĂ€lgimisvĂ”imalusi ja liideseid vĂ€listele sĂŒsteemidele (monitooringu/haldamise jaoks);
- RGW (valikuline) â podid objekti salvestamiseks;
- MDS (valikuline) â podid jagatud failisĂŒsteemiga.

KĂ”ik Rooki deemonid (Mons, OSDs, MGR, RGW, MDS) on kompileeritud ĂŒhte binaarfaili (rook), mis kĂ€ivitatakse konteineris.
Rooki projekti lĂŒhikeseks tutvustamiseks vĂ”ib kasulik olla ka see vĂ€ike (12 slaidi) Bassam Tabbara (Quantum Corp. CTO) poolt.
Rooki haldamine
Rooki operaator toetab tĂ€ies ulatuses Kubernetes versiooni 1.6 ja uuemaid (ja osaliselt vanemat K8s versiooni â 1.5.2). Selle paigaldamine ja nĂ€eb vĂ€lja nagu:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlLisaks on Rooki operaatori jaoks valmistatud , mis vÔimaldab paigaldamist ka niimoodi:
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 , kui seda vĂ”imalust teie klastris ei kasutata), mis edastatakse helm install kaudu parameetrina --set key=value[,key=value] (vĂ”i salvestatakse eraldi YAML-faili ja edastatakse -f values.yaml PĂ€rast Rooki operaatori paigaldamist ja podide kĂ€ivitamist tema agentidega tuleb luua ise Rooki klaster, mille lihtsaim konfiguratsioon nĂ€eb vĂ€lja jĂ€rgmiselt ().
rook-cluster.yamlapiVersion: 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):
: erilisele tĂ€helepanu tuleks pöörata atribuudileMĂ€rkus. dataDirHostPath, mille vajalik vÀÀrtus klastris sĂ€ilitamiseks pĂ€rast taaskĂ€ivitusi. Kui Rook'i kasutatakse pĂŒsiva andmete salvestamise kohana Kubernetes'i hostides, soovitavad autorid, et selles kataloogis oleks vĂ€hemalt 5 GB vaba kettaruumi.
JÀÀb ĂŒle luua klaster konfiguratsioonist ja veenduda, et pod'id on klastris loodud (nimetuste ruumis 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 Rook'i klastri uuendamise protseduur (enne uut versiooni) on see, et praegusel hetkel nĂ”uab see kĂ”igi selle komponentide jĂ€rkjĂ€rgulist uuendamist kindlas jĂ€rjekorras, ning seda saab alustada ainult siis, kui olete veendunud, et praegune Rook'i installatsioon on tĂ€iesti "terve". Ăksikasjalikku samm-sammult juhendit Rook versiooni 0.5.0 uuendamiseks versiooniks 0.5.1 leiate .
Eelmise aasta novembris Rook'i blogis vĂ”rdlus tĂ”hususest EBS-iga. Selle tulemused vÀÀrivad tĂ€helepanu ja lĂŒhidalt öeldes on need jĂ€rgmised:


Prospects
Rook'i praegune olek on alpha ja viimane suur vĂ€ljaanne siiani on , mis ilmus novembris 2017 (aktiivne parandamine â â ilmus 14. detsembril). Juba 2018. aasta esimeses pooles oodatakse vĂ€ljaandeid kĂŒpsemate versioonide kohta: beetaversioonid ja stabiilne (ametlikult tootmiseks kasutamiseks valmis).
Vastavalt projekti, arendajatel on pĂ”hjalik visioon Rook'i arendamiseks vĂ€hemalt kahe jĂ€rgmise vĂ€ljaande jooksul: 0.7 (valmidus GitHub'i jĂ€lgijas 60% ulatuses) ja 0.8. Oodatud muudatuste hulka kuulub toimetuse Ceph Block ja Ceph Object toetuse ĂŒleviimine beetaversiooniks, dinamiiline mahutite provisionimine CephFS'i jaoks, arenenud logimise sĂŒsteem, automatiseeritud klastrite uuendamine, kuvatĂ”mmiste toimetamine mahtude jaoks.
Rook'i vastuvĂ”tmine (kuni praeguseni on see algusjĂ€rgus â "inception-level", â koos ja ) on ainus seekordne garantii, et toote vastu kasvav huvi. Kui hĂ€sti see pilve rakenduste maailmas pĂŒsib, selgub pĂ€rast stabiilsete versioonide ilmumist, mis toovad kindlasti Rooki juurde uusi âkatsetajaidâ ja kasutajaid.
P.S.
Lugege ka meie blogist:
- «»;
- «»;
- «»;
- «»;
- «».
Allikas: habr.com
