
29. januára technický výbor CNCF (Cloud Native Computing Foundation), organizácie stojacej za Kubernetes, Prometheus a ďalšími Open Source produktmi zo sveta kontajnerov a cloudových natívnych, o prijatí projektu havran do svojich radov. Vynikajúca príležitosť spoznať tento „distribuovaný skladový orchestrátor v Kubernetes“.
Aký druh veža?
je softvér napísaný v Go ( pod bezplatnou licenciou Apache 2.0), ktorá je navrhnutá tak, aby poskytovala dátovým skladom automatizované funkcie, ktoré ich vytvárajú self-manažment, self-škálovanie a self-hojenie. Na tento účel Rook automatizuje (pre dátové úložiská používané v prostredí Kubernetes): nasadenie, bootstrapping, konfigurácia, poskytovanie, škálovanie, aktualizácie, migrácie, obnova po havárii, monitorovanie a správa zdrojov.
Projekt je vo fáze alfa a špecializuje sa na organizovanie distribuovaného úložného systému Ceph v klastroch Kubernetes. Autori tiež oznamujú plány na podporu ďalších úložných systémov, no v ďalších vydaniach sa tak nestane.
Komponenty a technické zariadenie
Rookova práca v Kubernetes je založená na špeciálnom operátorovi (viac o Kubernetes Operatoroch sme písali v ), ktorý automatizuje konfiguráciu úložiska a implementuje jeho monitorovanie.
Takže, Operátor veže sa javí ako kontajner, ktorý obsahuje všetko potrebné pre nasadenie a následnú údržbu úložiska. Povinnosti prevádzkovateľa zahŕňajú:
- vytvorenie sady DaemonSet pre démonov úložiska Ceph () s jednoduchým klastrom RADOS;
- vytváranie modulov na monitorovanie Ceph (s , kontrola stavu klastra; pre kvórum sú vo väčšine prípadov nasadené tri kópie, a ak niektorá z nich klesne, vznikne nová);
- riadenie CRD () pre seba , , (množiny zdrojov a služieb na obsluhu HTTP požiadaviek, ktoré vykonávajú PUT/GET na objektoch – sú kompatibilné s S3 a Swift API)a ;
- inicializácia modulov na spustenie všetkých potrebných služieb;
- vytvorenie agentov Rook.
Agenti Rooka sú reprezentované samostatnými modulmi, ktoré sú nasadené na každom uzle Kubernetes. Účelom agenta je konfigurácia pluginu , ktorý poskytuje podporu pre objemy úložiska v Kubernetes. Agent implementuje prevádzku úložiska: pripája sieťové úložné zariadenia, pripája zväzky, formátuje súborový systém atď.

Miesto a úloha komponentov Rook v celkovej klastrovej schéme Kubernetes
Rook ponúka tri typy úložiska:
- (Blokovať,
StorageClass) — namontuje zásobník do jedného ohniska; - (objekt,
ObjectStore) - dostupné vo vnútri aj mimo klastra Kubernetes (cez S3 API); - (Systém zdieľaných súborov,
Filesystem) je súborový systém, ktorý je možné pripojiť na čítanie a zápis z viacerých modulov.
Vnútorné časti veže zahŕňajú:
- Mons — struky na monitorovanie Ceph (s už spomínaným ceph-mon);
- OSD - moduly s démonmi ceph-osd (Démony ukladania objektov);
- M.G.R. - strúčiky s démonom (Ceph Manager), ktorý poskytuje ďalšie možnosti monitorovania a rozhrania pre externé systémy (monitorovanie/riadenie);
- RGW (voliteľné) - struky s úložným priestorom predmetov;
- MDS (voliteľné) - moduly so zdieľaným súborovým systémom.

Všetky démony Rook (Mons, OSD, MGR, RGW, MDS) sú skompilované do jedného binárneho (rook) beh v kontajneri.
Pre krátke predstavenie projektu Rook môže byť užitočný aj tento krátky (12 snímok). od Bassam Tabbara (CTO v Quantum Corp).
Obsluha veže
Operátor Rook plne podporuje Kubernetes verzie 1.6 a vyššie (a čiastočne aj staršie vydanie K8 - 1.5.2), jeho inštalácia в vyzerá takto:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlOkrem toho je pripravený operátor Rook , vďaka čomu je možné inštaláciu vykonať takto:
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook Malé množstvo k dispozícii (podporu môžete napríklad vypnúť , ak sa táto funkcia vo vašom klastri nepoužíva), ktoré sa prenášajú do helm install cez parameter --set key=value[,key=value] (alebo uložiť do samostatného súboru YAML a preniesť cez -f values.yaml).
Po nainštalovaní operátora Rook a spustení modulov s jeho agentmi zostáva už len vytvoriť samotný klaster Rook, ktorého najjednoduchšia konfigurácia vyzerá takto (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: 1024Poznámka: osobitná pozornosť by sa mala venovať atribútu dataDirHostPath, ktorého správna hodnota je potrebná na uloženie klastra po reštarte. Pre prípady, keď sa používa ako trvalé úložisko pre dáta Rook na hostiteľoch Kubernetes, autori odporúčajú mať v tomto adresári aspoň 5 GB voľného miesta na disku.
Zostáva len skutočne vytvoriť klaster z konfigurácie a uistiť sa, že pody boli vytvorené v klastri (v mennom priestore 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 cluster (až do novej verzie) je postup, ktorý v tejto fáze vyžaduje postupnú aktualizáciu všetkých jeho komponentov v určitom poradí a môžete ho spustiť až potom, čo sa ubezpečíte, že aktuálna inštalácia Rook je v úplne „zdravom“ stave. štát. Podrobné pokyny krok za krokom na príklade aktualizácie veža verzie 0.5.0 na 0.5.1 nájdete v .
Minulý november na blogu Rook nákupný výkon s EBS. Jeho výsledky si zaslúžia pozornosť a v krátkosti sú nasledovné:


Vyhliadky
Momentálny stav Rooka je alfa a posledné hlavné vydanie k dnešnému dňu je , vydané v novembri 2017 (aktuálna oprava - — vyšiel 14. decembra). Už v prvej polovici roku 2018 sa očakávajú vydania zrelších verzií: beta a stabilná (oficiálne pripravená na použitie vo výrobe).
Podľa projekt, vývojári majú podrobnú víziu vývoja Rooka v minimálne dvoch nasledujúcich vydaniach: 0.7 (jeho pripravenosť je v trackeri GitHub ako 60 %) a 0.8. Medzi očakávané zmeny patrí presun podpory Ceph Block a Ceph Object do stavu beta verzie, dynamické poskytovanie zväzkov pre CephFS, pokročilý logovací systém, automatické aktualizácie klastrov, podpora snímok pre zväzky.
Berie Rooka do čísla (zatiaľ vo veľmi ranom štádiu – „počiatočná úroveň“ – na rovnakej úrovni ako и ) je akousi zárukou rastúceho záujmu o produkt. Ako sa presadí vo svete cloudových aplikácií, bude jasnejšie po vydaní stabilných verzií, ktoré určite prinesú Rookovi nových testerov a používateľov.
PS
Prečítajte si aj na našom blogu:
- «»;
- «»;
- «»;
- «»;
- «".
Zdroj: hab.com
