
Urtarrilaren 29an, CNCFren (Cloud Native Computing Foundation) batzorde teknikoak, Kubernetes, Prometheus eta edukiontzien eta hodeiko natiboen munduko beste produktu irekien atzean dagoen erakundea, proiektua onartzeari buruz dorrearen beren mailan sartu. Aukera bikaina "Kubernetes-en banatutako biltegiratze orkestratzaile" hau ezagutzeko.
Nolako Rook?
Go-n idatzitako softwarea da ( doako Apache Lizentzia 2.0 pean), datu biltegiei funtzio automatizatuak eskaintzeko diseinatua. autogestioa, autoeskala eta autosendatzea. Horretarako, Rook-ek automatizatzen ditu (Kubernetes ingurunean erabiltzen diren datu-biltegietarako): inplementazioa, abiarazpena, konfigurazioa, hornidura, eskalatzea, eguneraketak, migrazioak, hondamendien berreskurapena, monitorizazioa eta baliabideen kudeaketa.
Proiektua alfa fasean dago eta Ceph biltegiratze sistema banatua Kubernetes klusteretan orkestratzen espezializatuta dago. Egileek beste biltegiratze-sistema batzuk onartzen dituzten planak ere iragarri dituzte, baina hurrengo argitalpenetan ez da hori gertatuko.
Osagaiak eta gailu teknikoa
Rook Kubernetesen barruan egiten duen lana operadore berezi batean oinarritzen da (Kubernetes Operadoreei buruz gehiago idatzi dugu ), biltegiratze-konfigurazioa automatizatzen duena eta haren monitorizazioa ezartzen duena.
Horrela, Rook operadorea biltegiaren hedapenerako eta ondorengo mantentze-lanetarako beharrezko guztia biltzen duen edukiontzi bat dela dirudi. Operadorearen ardurak hauek dira:
- Ceph biltegiratze daemonetarako DaemonSet bat sortzea () RADOS kluster sinple batekin;
- Ceph monitorizatzeko lekak sortzea (tik , klusterraren egoera egiaztatzea; quorumerako, gehienetan hiru kopia zabaltzen dira, eta horietakoren bat erortzen bada, berri bat igotzen da);
- CRDen kudeaketa () beretzat , , (Objektuetan PUT/GET egiten duten HTTP eskaerak hornitzeko baliabide eta zerbitzu multzoak - S3 eta Swift APIarekin bateragarriak dira)Eta ;
- lekak hasieratzea beharrezko zerbitzu guztiak abiarazteko;
- Rook eragileen sorrera.
Rook-eko agenteak Kubernetes nodo bakoitzean inplementatzen diren lek bereiziek adierazten dute. Agentearen helburua pluginen konfigurazioa da , Kubernetes-en biltegiratze-bolumenetarako laguntza eskaintzen duena. Agenteak biltegiratzearen funtzionamendua inplementatzen du: sareko biltegiratze-gailuak konektatzen ditu, bolumenak muntatzen ditu, fitxategi-sistema formateatzen du, etab.

Rook osagaien lekua eta eginkizuna Kubernetes kluster eskema orokorrean
Rook-ek hiru biltegiratze mota eskaintzen ditu:
- (Blokeatu,
StorageClass) - biltegia sutondo bakarrean muntatzen du; - (Objektu,
ObjectStore) - Kubernetes kluster barruan eta kanpoan eskuragarri (S3 API bidez); - (Partekatutako Fitxategi Sistema,
Filesystem) ontzi anitzetatik irakurtzeko eta idazteko munta daitekeen fitxategi-sistema da.
Rook barneak honako hauek dira:
- Mons — Ceph monitorizatzeko lekak (lehen aipatutako ceph-monarekin);
- OSDak - ceph-osd deabruekin lekak (Object Storage Daemons);
- M.G.R. - deabru batekin lekak (Ceph Manager), kanpoko sistemetarako monitorizazio gaitasun eta interfaze osagarriak (monitorizazioa/kontrola);
- RGW (aukerakoa) - objektuak gordetzeko lekak;
- MDS (aukerakoa) - fitxategi sistema partekatua duten pods.

Rook deabru guztiak (Mons, OSDak, MGR, RGW, MDS) bitar bakar batean biltzen dira (rook) edukiontzi batean ibiltzea.
Rook proiektuari sarrera labur bat egiteko, labur hau (12 diapositiba) ere erabilgarria izan daiteke. Bassam Tabbara-koa (Quantum Corp-eko CTO).
Rook ustiatzen
Rook operadoreak guztiz onartzen du Kubernetes 1.6 bertsioa eta berriagoa (eta, neurri batean, K8s bertsio zaharragoa - 1.5.2). Bere Instalazio- в hau itxura du:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlHorrez gain, Rook operadorea prestatuta dago , horri esker, instalazioa honela egin daiteke:
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook Kantitate txikia eskuragarri (adibidez, laguntza desgai dezakezu , eginbide hau zure klusterrean erabiltzen ez bada), hari pasatzen zaizkio helm install parametroaren bidez --set key=value[,key=value] (edo gorde YAML fitxategi bereizi batean eta transmititu -f values.yaml).
Rook operadorea instalatu eta bere agenteekin pod-ak abiarazi ondoren, Rook cluster-a bera sortzea baino ez da geratzen, zeinaren konfigurazio errazena honelakoa den (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: 1024Kontuan izan: arreta berezia jarri behar zaio atributuari dataDirHostPath, zeinaren balio zuzena beharrezkoa da klusterra berrabiarazi ondoren gordetzeko. Kubernetes ostalarietako Rook datuen biltegiratze iraunkor gisa erabiltzen den kasuetarako, egileek direktorio honetan gutxienez 5 GB-ko espazio libre izatea gomendatzen dute.
Geratzen dena da kluster-a konfiguraziotik sortzea eta ziurtatzea kluster-ean sortu zirela (izen-espazioan 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 5mBerritu Rook cluster (bertsio berri batera arte) fase honetan bere osagai guztiak sekuentzia jakin batean eguneratzea eskatzen duen prozedura da, eta uneko Rook instalazioa guztiz "osasuntsu" dagoela ziurtatu ondoren bakarrik abi dezakezu. Estatu. Rook 0.5.0 bertsiotik 0.5.1era eguneratzeko adibidea erabiliz urratsez urratseko argibide zehatzak aurki daitezke. .
Joan den azaroan Rook blogean konparazio produktibitatea EBSrekin. Bere emaitzak arreta merezi du, eta laburbilduz, hauek dira:


Itxaropenak
Rook-en egungo egoera alfa da, eta orain arteko azken bertsio nagusia da , 2017ko azaroan kaleratua (egungo zuzenketa - — abenduaren 14an atera zen). Dagoeneko 2018ko lehen seihilekoan, bertsio helduagoen kaleratzeak espero dira: beta eta egonkorra (ofizialki ekoizpenean erabiltzeko prest).
Arabera proiektua, garatzaileek Rook-en garapenaren ikuspegi zehatza dute gutxienez hurrengo bi bertsioetan: 0.7 (presttasuna GitHub jarraitzailean dago. %60 gisa eta 0.8. Espero diren aldaketen artean, Ceph Block eta Ceph Object-en euskarria transferitzea beta bertsioaren egoerara, CephFS-rako bolumenen horniketa dinamikoa, erregistro-sistema aurreratu bat, kluster eguneratze automatizatuak, bolumenen argazkien laguntza.
Rook zenbakian hartzen (orain arte oso hasierako fasean - "hasiera-maila" - horren parean и ) produktuarekiko gero eta interes handiagoaren berme moduko bat da. Hodeiko aplikazioen munduan nola kokatuko den argiago geratuko da bertsio egonkorrak kaleratzen direnean, eta horrek probatzaile eta erabiltzaile berriak ekarriko ditu Rookera.
PS
Irakurri ere gure blogean:
- «»;
- «»;
- «»;
- «»;
- «'.
Iturria: www.habr.com
