
29. jaanuaril osales Kubernetese, Prometheuse ja teiste konteinerite ja pilvepÔhise maailma avatud lÀhtekoodiga toodete taga oleva organisatsiooni CNCF (Cloud Native Computing Foundation) tehniline komitee projekti vastuvÔtmise kohta vanker nende ridadesse. SuurepÀrane vÔimalus tutvuda selle "jaotatud salvestusruumi orkestraatoriga Kubernetesis".
Milline vanker?
kas tarkvara on kirjutatud Go ( tasuta Apache litsentsi 2.0 alusel), mis on loodud andmeladude varustamiseks automatiseeritud funktsioonidega, mis muudavad need isejuhtimine, ise skaleeruv ja isetervenemine. Selleks automatiseerib Rook (Kubernetese keskkonnas kasutatavate andmehoidlate jaoks): juurutamine, alglaadimine, konfigureerimine, varustamine, skaleerimine, vÀrskendused, migratsioonid, avariitaaste, monitooring ja ressursside haldamine.
Projekt on alfafaasis ja on spetsialiseerunud Cephi hajutatud salvestussĂŒsteemi orkestreerimisele Kubernetese klastrites. Autorid teatavad ka plaanidest toetada teisi salvestussĂŒsteeme, kuid seda jĂ€rgmistes vĂ€ljaannetes ei juhtu.
Komponendid ja tehniline seade
Rooki töö Kubernetese sees pÔhineb spetsiaalsel operaatoril (Kubernetese operaatorite kohta kirjutasime lÀhemalt aastal ), mis automatiseerib salvestuse konfiguratsiooni ja rakendab selle jÀlgimist.
Niisiis, Vankri operaator nÀib olevat konteiner, mis sisaldab kÔike, mis on vajalik hoidla juurutamiseks ja hilisemaks hoolduseks. Operaatori kohustuste hulka kuuluvad:
- DaemonSeti loomine Cephi salvestusdeemonite jaoks () lihtsa RADOS-klastriga;
- kaunade loomine Ceph seire jaoks (alates , klastri oleku kontrollimine; kvoorumi jaoks kasutatakse enamikul juhtudel kolm eksemplari ja kui mÔni neist langeb, tÔuseb uus);
- CRD-de haldamine () enda jaoks , , (ressursside ja teenuste komplektid HTTP-pĂ€ringute teenindamiseks, mis tĂ€idavad objektidel PUT/GET-i â need ĂŒhilduvad S3 ja Swift API-ga) ning ;
- kaunade lÀhtestamine kÔigi vajalike teenuste kÀivitamiseks;
- Rooki agentide loomine.
Rooki agendid on esindatud eraldi kaustadega, mis on juurutatud igas Kubernetese sĂ”lmes. Agendi eesmĂ€rk on pistikprogrammi konfigureerimine , mis pakub Kubernetese salvestusmahtude tuge. Agent rakendab salvestusruumi toimimist: ĂŒhendab vĂ”rgusalvestusseadmed, ĂŒhendab köited, vormindab failisĂŒsteemi jne.

Vankri komponentide koht ja roll Kubernetese klastri ĂŒldises skeemis
Rook pakub kolme tĂŒĂŒpi salvestusruumi:
- (Blokeerima,
StorageClass) â monteerib hoidla ĂŒhele koldele; - (objekt,
ObjectStore) - saadaval Kubernetese klastris ja vĂ€ljaspool seda (S3 API kaudu); - (Jagatud failisĂŒsteem,
Filesystem) on failisĂŒsteem, mida saab paigaldada mitmest kaustast lugemiseks ja kirjutamiseks.
Vankri sisemised osad hÔlmavad jÀrgmist:
- Mons â kaunad Ceph seireks (koos juba mainitud tseph-moniga);
- OSD-d â kaunad ceph-osd deemonitega (Object Storage Deemons);
- M.G.R. - kaunad deemoniga (Ceph Manager), mis pakub tĂ€iendavaid jĂ€lgimisvĂ”imalusi ja liideseid vĂ€listele sĂŒsteemidele (seire/juhtimine);
- RGW (valikuline) - kaunad koos esemehoiuga;
- MDS (valikuline) - jagatud failisĂŒsteemiga kaunad.

KĂ”ik Rooki deemonid (Mons, OSD, MGR, RGW, MDS) kompileeritakse ĂŒheks binaarfailiks (rook) töötab konteineris.
See lĂŒhike (12 slaidi) vĂ”ib olla kasulik ka projekti Rook lĂŒhitutvustuseks. Bassam Tabbaralt (Quantum Corpi tehnoloogiadirektor).
Vankri opereerimine
Rooki operaator toetab tĂ€ielikult Kubernetese versiooni 1.6 ja uuemat (ja osaliselt ka vanema K8 vĂ€ljalase â 1.5.2). Tema paigaldus ĐČ nĂ€eb vĂ€lja selline:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlLisaks on ette valmistatud Rook operaator , tÀnu millele saab paigaldust lÀbi viia jÀrgmiselt:
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook Saadaval vÀike kogus (nÀiteks saate toe keelata , kui seda funktsiooni teie klastris ei kasutata), mis edastatakse helm install parameetri kaudu --set key=value[,key=value] (vÔi salvestage eraldi YAML-failis ja edastage selle kaudu -f values.yaml).
PĂ€rast Rooki operaatori installimist ja podide kĂ€ivitamist selle agentidega, jÀÀb ĂŒle vaid luua Rooki klaster ise, mille lihtsaim konfiguratsioon nĂ€eb vĂ€lja selline (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: erilist tÀhelepanu tuleks pöörata atribuudile dataDirHostPath, mille Ôige vÀÀrtus on vajalik klastri salvestamiseks pÀrast taaskÀivitamist. Juhtudel, kui seda kasutatakse Kubernetese hostide Rooki andmete alalise salvestuskohana, soovitavad autorid, et selles kataloogis oleks vÀhemalt 5 GB vaba kettaruumi.
JÀÀb ĂŒle vaid konfiguratsioonist klaster tegelikult luua ja veenduda, et kaunad loodi klastris (nimeruumis 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 5mUuenda Rook cluster (kuni uue versioonini) on protseduur, mis nĂ”uab selles etapis kĂ”igi selle komponentide jĂ€rjestikust vĂ€rskendamist kindlas jĂ€rjestuses ja saate seda kĂ€ivitada alles pĂ€rast seda, kui olete veendunud, et praegune Rooki installimine on tĂ€iesti "terves" olek. Ăksikasjalikud samm-sammult juhised Rooki versiooni 0.5.0 versiooni 0.5.1 vĂ€rskendamise nĂ€itel leiate .
Eelmise aasta novembris Rooki ajaveebis vĂ”rdlus tootlikkus EBS-iga. Selle tulemused vÀÀrivad tĂ€helepanu ja lĂŒhidalt on need jĂ€rgmised:


VĂ€ljavaated
Rooki praegune olek on alfa ja seni viimane suurem vĂ€ljalase on , vĂ€lja antud novembris 2017 (praegune parandus - â ilmus 14. detsembril). Juba 2018. aasta esimesel poolel on oodata kĂŒpsemate versioonide vĂ€ljalaseid: beeta ja stabiilne (ametlikult tootmises kasutamiseks valmis).
Vastavalt projekti, arendajatel on ĂŒksikasjalik nĂ€gemus Rooki arendamise kohta vĂ€hemalt kahes jĂ€rgmises versioonis: 0.7 (selle valmidus on GitHubi jĂ€lgijas kui 60%) ja 0.8. Oodatavate muudatuste hulgas on Ceph Blocki ja Ceph Objecti toe ĂŒlekandmine beetaversiooni olekusse, CephFS-i köidete dĂŒnaamiline varustamine, tĂ€iustatud logimissĂŒsteem, automatiseeritud klastri vĂ€rskendused, köidete hetktĂ”mmiste tugi.
Vankri vÔtmine numbrisse (seni vÀga varajases staadiumis - "algtasemel" - samavÀÀrselt О ) on omamoodi garantii toote vastu kasvavale huvile. Kuidas see pilverakenduste maailmas kanda kinnitab, saab selgemaks pÀrast stabiilsete versioonide ilmumist, mis kindlasti toovad Rooki juurde uusi testijaid ja kasutajaid.
PS
Loe ka meie blogist:
- «";
- «";
- «";
- «";
- «'.
Allikas: www.habr.com
