
29 janvye, komite teknik Cloud Native Computing Foundation (CNCF), òganizasyon ki dèyè Kubernetes, Prometheus, ak lòt pwodwi sous louvri ki soti nan veso a ak nwaj natif natal, sou adopsyon pwojè a Rook nan ran yo. Yon gwo opòtinite pou jwenn konnen "Kubernetes distribye depo orchestrator" sa a pi byen.
Ki sa ki Rook?
— se lojisyèl ki ekri nan Go ( anba gratis Apache License 2.0), ki fèt pou bay depo done ak karakteristik otomatik ki fè yo pwòp tèt ou-jere, oto-echèl ak pwòp tèt ou-geri. Pou reyalize sa, Rook otomatize (pou magazen done ki kouri nan yon anviwònman Kubernetes): deplwaman, bootstrapping, konfigirasyon, pwovizyon, dekale, amelyorasyon, migrasyon, failover, siveyans, ak jesyon resous.
Pwojè a se nan etap alfa epi li espesyalize nan orchestration sistèm depo done distribiye Ceph nan grap Kubernetes. Otè yo anonse tou plan pou sipòte lòt sistèm depo, men sa p ap rive nan pwochen degaje yo.
Eleman ak aparèy teknik
Nwayo operasyon Rook anndan Kubernetes se yon operatè espesyal (nou te ekri plis enfòmasyon sou Operatè Kubernetes nan ), otomatize konfigirasyon an nan depo a ak mete ann aplikasyon siveyans li yo.
Se konsa, Rook operatè se reprezante kòm yon veso ki gen tout bagay ki nesesè pou deplwaman an ak antretyen ki vin apre nan depo a. Responsablite operatè a gen ladan:
- kreye yon DaemonSet pou demon depo Ceph () ak yon grap RADOS senp;
- kreye gous pou siveyans Ceph (soti nan , tcheke estati gwoup la; pou reyalize yon kowòm, nan pifò ka yo twa kopi yo deplwaye, epi si nenpòt nan yo tonbe, yon nouvo ap monte);
- Jesyon CRDs () pou plis , , (yon seri resous ak sèvis pou jere demann HTTP ki fè PUT/GET sou objè - yo konpatib ak S3 ak Swift API)Ak ;
- inisyalizasyon gous pou kòmanse tout sèvis ki nesesè yo;
- kreye ajan Rook.
Ajan Rook yo reprezante pa gous endividyèl ki deplwaye sou chak ne Kubernetes. Objektif ajan an se konfigirasyon Plugin la , ki bay sipò pou volim depo nan Kubernetes. Ajan an aplike operasyon depo: konekte aparèy depo rezo a, monte volim, fòma sistèm dosye a, elatriye.

Kote ak wòl eleman Rook nan konplo an jeneral nan gwoup Kubernetes la
Rook ofri twa kalite depo:
- (Bloke,
StorageClass) - monte depo nan yon sèl gous; - (objè,
ObjectStore) - disponib andedan ak deyò gwoup Kubernetes la (via S3 API); - (Sistèm Fichye Pataje,
Filesystem) se yon sistèm fichye ki ka monte pou li ak ekri nan plizyè gous.
Estrikti entèn Rook la gen ladan:
- Mons — gous pou siveyans Ceph (ak ceph-mon deja mansyone);
- OSD yo — gous ak demon ceph-osd (Demon depo objè);
- M.G.R. - gous ak yon move lespri sou (Ceph Manager), ki bay kapasite siveyans adisyonèl ak koòdone pou sistèm ekstèn (siveyans/jesyon);
- RGW (si ou vle) - gous ak depo objè;
- MDS (si ou vle) — gous ak sistèm dosye pataje.

Tout demon Rook (Mons, OSDs, MGR, RGW, MDS) yo konpile nan yon sèl binè (rook), kouri nan yon veso.
Pou yon entwodiksyon tou kout sou pwojè Rook, kout sa a (12 glisad) ta ka itil tou: pa Bassam Tabbara (CTO nan Quantum Corp).
Operating Rook
Operatè Rook konplètman sipòte Kubernetes vèsyon 1.6 ak pi wo (ak, pasyèlman, pi gran K8s lage - 1.5.2). Li enstalasyon в sanble tankou sa a:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlAnplis de sa, operatè Rook la prepare , gras a ki enstalasyon an ka fèt jan sa a:
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook Gen yon ti kantite (pa egzanp, ou ka enfim sipò , si karakteristik sa a pa itilize nan gwoup ou a), ki pase yo helm install atravè paramèt --set key=value[,key=value] (oswa estoke li nan yon dosye separe YAML epi transmèt li atravè -f values.yaml).
Apre enstale operatè Rook la ak lanse gous ak ajan li yo, li rete pou kreye gwoup Rook la li menm, konfigirasyon ki pi senp lan ki sanble sa a (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: 1024Note: atansyon espesyal yo ta dwe peye atribi a dataDirHostPath, valè kòrèk la ki nesesè pou konsève pou gwoup la apre rdemare. Pou ka itilize kote li itilize kòm yon kote depo pèmanan pou done Rook sou lame Kubernetes, otè yo rekòmande pou gen omwen 5 GB espas disk gratis nan anyè sa a.
Tout sa ki rete se aktyèlman kreye gwoup la nan konfigirasyon an epi asire w ke gous yo te kreye nan gwoup la (nan namespace la. 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 Gwoup Rook (nan nouvo vèsyon an) se yon pwosedi ki nan etap sa a mande aktyalizasyon sekans tout eleman li yo nan yon sekans sèten, epi li ka sèlman kòmanse apre ou fin asire w ke enstalasyon Rook aktyèl la konplètman "sante". Ou ka jwenn yon enstriksyon detaye etap pa etap sou amelyore vèsyon Rook 0.5.0 a 0.5.1 nan .
Novanm pase a, blog Rook konparezon pwodiktivite ak EBS. Rezilta li yo merite atansyon, men nan ti bout tan, yo se jan sa a:


Kandida
Estati aktyèl Rook se alpha, ak dènye gwo lage li jiska dat se , lage nan Novanm 2017 (kouran ranje - — te lage nan dat 14 desanm). Vèsyon plis matirite yo espere yo dwe lage nan premye mwatye nan 2018: beta ak ki estab (ofisyèlman pare pou itilize nan pwodiksyon).
Dapre pwojè, devlopè yo gen yon vizyon detaye pou devlopman Rook nan omwen de degaje k ap vini yo: 0.7 (preparasyon li se nan tracker GitHub la. kòm 60%) ak 0.8. Chanjman ki espere gen ladan yo deplase Ceph Block ak Ceph Object sipò nan estati beta, pwovizyon dinamik nan volim pou CephFS, yon sistèm anrejistreman avanse, mizajou gwoup otomatik, ak sipò pou snapshots pou volim.
Akseptasyon Rook nan ran yo (jiskaprezan nan etap la byen bonè - "nivo kòmansman", - nan par ak и ) se yon kalite garanti enterè k ap grandi nan pwodwi a. Konbyen li pral jwenn yon pye nan mond lan nan aplikasyon pou nwaj yo pral vin pi klè yon fwa vèsyon ki estab parèt, ki pral sètènman pote Rook nouvo "testeur" ak itilizatè yo.
PS
Li tou sou blog nou an:
- «";
- «";
- «";
- «";
- «'.
Sous: www.habr.com
