
Ma Ianuali 29, ke komite ʻenehana o ka CNCF (Cloud Native Computing Foundation), ka hui ma hope o Kubernetes, Prometheus a me nā huahana Open Source ʻē aʻe mai ka honua o nā ipu a me ke ao maoli, e pili ana i ka ʻae ʻana i ka papahana Ke ʻOihana iloko o ko lakou mau papa. ʻO kahi manawa kūpono e ʻike ai i kēia "mea hoʻolaha hoʻolaha i hāʻawi ʻia ma Kubernetes."
He aha ke ʻano o ka Rook?
ua kākau ʻia nā polokalamu ma Go ( ma lalo o ka Apache License 2.0 manuahi), i hoʻolālā ʻia e hāʻawi i nā hale waihona ʻikepili me nā hana automated e hana ai iā lākou. ka hoʻokele ponoʻī, ka hoʻomaʻamaʻa ʻana iā ia iho. No ka hana ʻana i kēia, hoʻololi ʻo Rook (no nā hale kūʻai ʻikepili i hoʻohana ʻia ma kahi ʻano Kubernetes): hoʻolālā, bootstrapping, hoʻonohonoho, hoʻolako, scaling, hōʻano hou, neʻe, hoʻihoʻi pōʻino, nānā a me ka hoʻokele waiwai.
Aia ka papahana ma ka papa alpha a he loea i ka hoʻonohonoho ʻana i ka ʻōnaehana mālama mālama Ceph ma nā pūʻulu Kubernetes. Hoʻolaha pū nā mea kākau i nā hoʻolālā e kākoʻo i nā ʻōnaehana mālama ʻē aʻe, akā ʻaʻole e hiki mai kēia i nā hoʻokuʻu e hiki mai ana.
Nā ʻāpana a me nā mea ʻenehana
Hoʻokumu ʻia ka hana a Rook i loko o Kubernetes ma kahi mea hoʻohana kūikawā (Ua kākau hou mākou e pili ana i nā Kubernetes Operators ma ), ka mea e hoʻokaʻawale i ka hoʻonohonoho mālama ʻana a hoʻokō i kāna nānā ʻana.
A pēlā, Mea hoʻohana ʻo Rook ʻike ʻia he pahu i loaʻa nā mea āpau e pono ai no ka hoʻolaha ʻana a me ka mālama ʻana i ka waihona. Aia nā kuleana o ka mea hana:
- ka hana ʻana i kahi DaemonSet no nā daemon mālama Ceph () me kahi pūʻulu RADOS maʻalahi;
- ka hana ʻana i nā pods no ka nānā ʻana iā Ceph (mai , nānā i ke kūlana o ka hui; no ka quorum, ma ka hapanui o na hihia, ekolu kope ia e waiho ana, a ina e haule kekahi o ia mau mea, he mea hou ke ala mai);
- ka mālama ʻana i nā CRD () nona iho , , (nā hoʻonohonoho waiwai a me nā lawelawe no ka lawelawe ʻana i nā noi HTTP e hana ana i ka PUT/GET ma nā mea - kūpono lākou me S3 a me Swift API), a me ;
- hoʻomaka i nā pods e hoʻomaka i nā lawelawe pono āpau;
- ka hana ʻana o nā ʻelele Rook.
Na Agena o Rook hōʻike ʻia e nā pods ʻokoʻa i kau ʻia ma kēlā me kēia node Kubernetes. ʻO ke kumu o ka ʻelele he hoʻonohonoho plugin , e hāʻawi ana i ke kākoʻo no nā waihona waihona ma Kubernetes. Hoʻokō ka ʻelele i ka hana o ka waiho ʻana: hoʻopili i nā hāmeʻa mālama pūnaewele, hoʻonui i nā volumes, hoʻopili i ka ʻōnaehana faila, etc.

Kahi a me ke kuleana o nā ʻāpana Rook i ka hoʻolālā puʻupuʻu Kubernetes holoʻokoʻa
Hāʻawi ʻo Rook i ʻekolu ʻano mālama:
- (kal,
StorageClass) - kau i ka waihona i kahi kapuahi hoʻokahi; - (mea,
ObjectStore) - loaʻa i loko a ma waho o ka pūʻulu Kubernetes (ma o S3 API); - (Pūnaehana Waihona Māhele,
Filesystem) he ʻōnaehana waihona i hiki ke kau ʻia no ka heluhelu a me ke kākau ʻana mai nā pods lehulehu.
Aia nā loko o ka Rook:
- Mons - nā pods no ka nānā ʻana iā Ceph (me ka ceph-mon i haʻi mua ʻia);
- OSD - nā pods me nā daemons ceph-osd (Object Storage Daemons);
- Ua haʻi aku ʻo M.G.R. - nā ʻōpala me ka daimonio (Ceph Manager), e hāʻawi ana i nā mana nānā hou aku a me nā pilina no nā ʻōnaehana waho (nānā / mana);
- RGW (koho) - nā pahu me kahi waiho mea;
- MDS (koho) - nā pods me ka ʻōnaehana waihona like.

Hoʻohui ʻia nā daemons Rook āpau (Mons, OSDs, MGR, RGW, MDS) i hoʻokahi binary (rook) e holo ana i loko o kahi pahu.
No ka hoʻolauna pōkole i ka papahana Rook, pono paha kēia pōkole (12 slides). mai Bassam Tabbara (CTO ma Quantum Corp).
Hana i ka Rook
Kākoʻo piha ka mea hoʻohana Rook iā Kubernetes version 1.6 a ʻoi aku (a ʻo kekahi hapa, ka hoʻokuʻu ʻana o nā K8 kahiko - 1.5.2). Kāna hoʻokomo в ʻano like ʻole o kēia:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlEia kekahi, ua mākaukau ka mea hoʻohana Rook , mahalo i hiki ke hoʻokō ʻia e like me kēia:
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook Loaʻa ka liʻiliʻi (no ka laʻana, hiki iā ʻoe ke hoʻopau i ke kākoʻo , inā ʻaʻole hoʻohana ʻia kēia hiʻohiʻona i kāu hui), i hāʻawi ʻia i helm install ma o ka palena --set key=value[,key=value] (a i ʻole e mālama i kahi faila YAML ʻokoʻa a hoʻouna ma o -f values.yaml).
Ma hope o ka hoʻokomo ʻana i ka mea hoʻohana Rook a me ka hoʻokuʻu ʻana i nā pods me kāna mau mea hana, ʻo nā mea a pau i koe e hana i ka pūʻulu Rook ponoʻī, ʻo ka hoʻonohonoho maʻalahi loa e like me kēia (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: 1024i hoʻopuka: pono e nānā pono i ke ʻano dataDirHostPath, ka waiwai kūpono e pono ai e mālama i ka hui ma hope o ka reboots. No nā hihia i hoʻohana ʻia ma ke ʻano he wahi mālama mau no ka ʻikepili Rook ma nā pūʻali Kubernetes, ʻōlelo nā mea kākau i ka loaʻa ʻana o ka liʻiliʻi o 5 GB o ka hakahaka manuahi ma kēia papa kuhikuhi.
ʻO nā mea a pau i koe, ʻo ka hana maoli ʻana i ka pūʻulu mai ka hoʻonohonoho ʻana a e hōʻoia i ka hana ʻana o nā pods i ka pūʻulu (ma ka inoa inoa. 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 5mHoʻohui ʻO ka hui ʻo Rook (a hiki i kahi mana hou) he kaʻina hana i kēia manawa e koi ai i ka hoʻopou hou ʻana o kāna mau ʻāpana āpau i kekahi kaʻina, a hiki iā ʻoe ke hoʻomaka iā ia wale nō ma hope o kou hōʻoia ʻana i ka hoʻonohonoho ʻana o Rook i kēia manawa i kahi "ola maikaʻi". mokuʻāina. Hiki ke loaʻa nā ʻōlelo kuhikuhi i kēlā me kēia ʻanuʻu e hoʻohana ana i ka laʻana o ka hoʻonui ʻana i ka mana Rook 0.5.0 a i ka 0.5.1 ma .
ʻO Nowemapa i hala ma ka blog Rook hoʻohālikelike kūlike me EBS. He kūpono ka nānā ʻana i kāna mau hopena, a ma ka pōkole, penei:


Nā Hope
ʻO ke kūlana o Rook i kēia manawa he alpha, a ʻo ka hoʻokuʻu nui loa i kēia lā , hoʻokuʻu ʻia i Nowemapa 2017 (hoʻoponopono i kēia manawa - - puka mai i ka lā 14 o Dekemaba). Aia i ka hapa mua o 2018, ua manaʻo ʻia nā hoʻokuʻu ʻana o nā mana oʻo: beta a me ka paʻa (mākaukau kūhelu no ka hoʻohana ʻana i ka hana).
Wahi a papahana, loaʻa i nā mea hoʻomohala kahi ʻike kikoʻī no ka hoʻomohala ʻana o Rook ma ka liʻiliʻi o nā hoʻokuʻu ʻelua e hiki mai ana: 0.7 (ʻo kona mākaukau ma ka tracker GitHub. e like me 60%) a me 0.8. Ma waena o nā hoʻololi i manaʻo ʻia, ʻo ka hoʻololi ʻana o ke kākoʻo no Ceph Block a me Ceph Object i ke kūlana beta version, ka hoʻolako ikaika ʻana i nā puke no CephFS, kahi ʻōnaehana logging holomua, nā hoʻolaha cluster automated, kākoʻo no nā snapshots no nā volumes.
Lawe i Rook i ka Helu (i kēia manawa i ka wā mua loa - "ka pae hoʻomaka" - ma kahi pā me и ) he ʻano hōʻoia no ka ulu ʻana o ka hoihoi i ka huahana. Pehea e loaʻa ai kahi paʻa i ka honua o nā noi kapua e ʻoi aku ka maʻalahi i ka wā i hoʻokuʻu ʻia ai nā mana paʻa, kahi e lawe mai ai i nā mea hōʻike hou a me nā mea hoʻohana iā Rook.
PS
E heluhelu pū ma kā mākou blog:
- «";
- «";
- «";
- «";
- «".
Source: www.habr.com
