Rook – Kubernetese iseteeninduslik andmepood

Rook – Kubernetese iseteeninduslik andmepood

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 teatas projekti vastuvÔtmise kohta vanker nende ridadesse. SuurepÀrane vÔimalus tutvuda selle "jaotatud salvestusruumi orkestraatoriga Kubernetesis".

Milline vanker?

vanker kas tarkvara on kirjutatud Go (jaotatud 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 see artikkel), 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 (ceph-osd) lihtsa RADOS-klastriga;
  • kaunade loomine Ceph seire jaoks (alates ceph-mon, klastri oleku kontrollimine; kvoorumi jaoks kasutatakse enamikul juhtudel kolm eksemplari ja kui mĂ”ni neist langeb, tĂ”useb uus);
  • CRD-de haldamine (Kohandatud ressursi mÀÀratlused) enda jaoks klaster, hoiubasseinid, objektikauplused (ressursside ja teenuste komplektid HTTP-pĂ€ringute teenindamiseks, mis tĂ€idavad objektidel PUT/GET-i – need ĂŒhilduvad S3 ja Swift API-ga) ning failisĂŒsteemid;
  • 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 FlexVolume, mis pakub Kubernetese salvestusmahtude tuge. Agent rakendab salvestusruumi toimimist: ĂŒhendab vĂ”rgusalvestusseadmed, ĂŒhendab köited, vormindab failisĂŒsteemi jne.

Rook – Kubernetese iseteeninduslik andmepood
Vankri komponentide koht ja roll Kubernetese klastri ĂŒldises skeemis

Rook pakub kolme tĂŒĂŒpi salvestusruumi:

  1. blokk (Blokeerima, StorageClass) — monteerib hoidla ĂŒhele koldele;
  2. objektiks (objekt, ObjectStore) - saadaval Kubernetese klastris ja vÀljaspool seda (S3 API kaudu);
  3. jagatud failisĂŒsteem (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-mgr (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.

Rook – Kubernetese iseteeninduslik andmepood

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. esitlus 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 ĐČ lihtsaim stsenaarium nĂ€eb vĂ€lja selline:

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

Lisaks on ette valmistatud Rook operaator Helmi diagramm, 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 seadistusvalikud (nÀiteks saate toe keelata RBAC, 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: 1024

MÀ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          5m

Uuenda 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 projekti dokumentatsioon.

Eelmise aasta novembris Rooki ajaveebis avaldati vĂ”rdlus tootlikkus EBS-iga. Selle tulemused vÀÀrivad tĂ€helepanu ja lĂŒhidalt on need jĂ€rgmised:

Rook – Kubernetese iseteeninduslik andmepood
Rook – Kubernetese iseteeninduslik andmepood

VĂ€ljavaated

Rooki praegune olek on alfa ja seni viimane suurem vĂ€ljalase on 0.6 versioon, vĂ€lja antud novembris 2017 (praegune parandus - v0.6.2 — ilmus 14. detsembril). Juba 2018. aasta esimesel poolel on oodata kĂŒpsemate versioonide vĂ€ljalaseid: beeta ja stabiilne (ametlikult tootmises kasutamiseks valmis).

Vastavalt tegevuskava projekti, arendajatel on ĂŒksikasjalik nĂ€gemus Rooki arendamise kohta vĂ€hemalt kahes jĂ€rgmises versioonis: 0.7 (selle valmidus on GitHubi jĂ€lgijas hinnatakse 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 CNCF projektid (seni vÀga varajases staadiumis - "algtasemel" - samavÀÀrselt linkerd О CoreDNS) 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

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster