Rook - Kubernetesentzako autozerbitzuko datu biltegia

Rook - Kubernetesentzako autozerbitzuko datu biltegia

Urtarrilaren 29an, CNCFren (Cloud Native Computing Foundation) batzorde teknikoak, Kubernetes, Prometheus eta edukiontzien eta hodeiko natiboen munduko beste produktu irekien atzean dagoen erakundea, iragarri proiektua onartzeari buruz dorrearen beren mailan sartu. Aukera bikaina "Kubernetes-en banatutako biltegiratze orkestratzaile" hau ezagutzeko.

Nolako Rook?

dorrearen Go-n idatzitako softwarea da (arabera banatuta 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 Artikulu honetan), 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 (ceph-osd) RADOS kluster sinple batekin;
  • Ceph monitorizatzeko lekak sortzea (tik ceph-mon, klusterraren egoera egiaztatzea; quorumerako, gehienetan hiru kopia zabaltzen dira, eta horietakoren bat erortzen bada, berri bat igotzen da);
  • CRDen kudeaketa (Baliabideen definizio pertsonalizatuak) beretzat kluster, biltegiratze-igerilekuak, objektu-biltegiak (Objektuetan PUT/GET egiten duten HTTP eskaerak hornitzeko baliabide eta zerbitzu multzoak - S3 eta Swift APIarekin bateragarriak dira)Eta fitxategi sistemak;
  • 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 FlexVolume, 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 - Kubernetesentzako autozerbitzuko datu biltegia
Rook osagaien lekua eta eginkizuna Kubernetes kluster eskema orokorrean

Rook-ek hiru biltegiratze mota eskaintzen ditu:

  1. blokeatu (Blokeatu, StorageClass) - biltegia sutondo bakarrean muntatzen du;
  2. objektua (Objektu, ObjectStore) - Kubernetes kluster barruan eta kanpoan eskuragarri (S3 API bidez);
  3. fitxategi sistema partekatua (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-mgr (Ceph Manager), kanpoko sistemetarako monitorizazio gaitasun eta interfaze osagarriak (monitorizazioa/kontrola);
  • RGW (aukerakoa) - objektuak gordetzeko lekak;
  • MDS (aukerakoa) - fitxategi sistema partekatua duten pods.

Rook - Kubernetesentzako autozerbitzuko datu biltegia

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. Aurkezpen 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- в eszenatokirik errazena hau itxura du:

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

Horrez gain, Rook operadorea prestatuta dago Helm taula, horri esker, instalazioa honela egin daiteke:

helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook

Kantitate txikia eskuragarri konfigurazio aukerak (adibidez, laguntza desgai dezakezu RBAC, 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: 1024

Kontuan 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          5m

Berritu 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. proiektuaren dokumentazioa.

Joan den azaroan Rook blogean argitaratu zen konparazio produktibitatea EBSrekin. Bere emaitzak arreta merezi du, eta laburbilduz, hauek dira:

Rook - Kubernetesentzako autozerbitzuko datu biltegia
Rook - Kubernetesentzako autozerbitzuko datu biltegia

Itxaropenak

Rook-en egungo egoera alfa da, eta orain arteko azken bertsio nagusia da 0.6 bertsioa, 2017ko azaroan kaleratua (egungo zuzenketa - v0.6.2 — abenduaren 14an atera zen). Dagoeneko 2018ko lehen seihilekoan, bertsio helduagoen kaleratzeak espero dira: beta eta egonkorra (ofizialki ekoizpenean erabiltzeko prest).

Arabera roadmap proiektua, garatzaileek Rook-en garapenaren ikuspegi zehatza dute gutxienez hurrengo bi bertsioetan: 0.7 (presttasuna GitHub jarraitzailean dago. ebaluatzen da %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 CNCF proiektuak (orain arte oso hasierako fasean - "hasiera-maila" - horren parean estekatzailea и CoreDNS) 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

Erosi hosting fidagarria DDoS babesa duten guneetarako, VPS VDS zerbitzariak 🔥 Erosi webguneentzako ostatu fidagarria DDoS babesarekin, VPS VDS zerbitzariak | ProHoster