Lati Rook tabi kii ṣe si Rook - iyẹn ni ibeere naa
Ni ibẹrẹ oṣu yii, ni Oṣu Karun ọjọ 3, itusilẹ pataki ti “eto iṣakoso fun ibi ipamọ data pinpin ni Kubernetes” ti kede - Rook 1.0.0. Die e sii ju odun kan seyin a tẹlẹ atejade gbogboogbo Akopọ ti Rook. Lẹhinna a beere lọwọ wa lati sọrọ nipa iriri rẹ lo ninu iwa - ati ni bayi, ni akoko fun iru iṣẹlẹ pataki kan ninu itan-akọọlẹ iṣẹ akanṣe naa, a ni idunnu lati pin awọn iwunilori ikojọpọ wa.
Ni kukuru, Rook jẹ eto kan awọn oniṣẹ fun Kubernetes, eyiti o gba iṣakoso ni kikun ti imuṣiṣẹ, iṣakoso, imularada laifọwọyi ti awọn solusan ipamọ data gẹgẹbi Ceph, EdgeFS, Minio, Cassandra, CockroachDB.
Daakọ: Lara awọn iyipada pataki ninu igbasilẹ Rook 1.0.0 ti o ni ibatan si Ceph, a le ṣe akiyesi atilẹyin fun Ceph Nautilus ati agbara lati lo NFS fun CephFS tabi awọn buckets RGW. Ohun ti o ṣe pataki laarin awọn miiran ni idagbasoke ti atilẹyin EdgeFS si ipele beta.
Nitorinaa, ninu nkan yii a:
Jẹ ki a dahun ibeere naa nipa awọn anfani wo ni a rii ni lilo Rook lati fi Ceph ranṣẹ ni iṣupọ Kubernetes;
A yoo pin iriri wa ati awọn iwunilori ti lilo Rook ni iṣelọpọ;
Jẹ ki a sọ idi ti a fi sọ “Bẹẹni!” fun Rook, ati nipa awọn eto wa fun u.
Jẹ ki a bẹrẹ pẹlu awọn imọran gbogbogbo ati imọran.
"Mo ni anfani ti Rook kan!" (Ẹrọ chess ti a ko mọ)
Ọkan ninu awọn anfani akọkọ ti Rook ni pe ibaraenisepo pẹlu awọn ile itaja data ni a ṣe nipasẹ awọn ilana Kubernetes. Eyi tumọ si pe o ko nilo lati daakọ awọn aṣẹ lati tunto Ceph lati inu iwe sinu console.
— Ṣe o fẹ lati ran CephFS sinu iṣupọ kan? Kan kọ faili YAML kan!
- Kini? Ṣe o tun fẹ lati ran ile itaja ohun kan lọ pẹlu S3 API? Kan kọ faili YAML keji!
A ṣẹda Rook ni ibamu si gbogbo awọn ofin ti oniṣẹ aṣoju kan. Ibaraṣepọ pẹlu rẹ waye nipa lilo CRD (Awọn itumọ orisun orisun Aṣa), ninu eyiti a ṣe apejuwe awọn abuda ti awọn nkan Ceph ti a nilo (niwọn igba ti eyi jẹ imuse iduroṣinṣin nikan, nipa aiyipada nkan yii yoo sọrọ nipa Ceph, ayafi ti o ba sọ ni gbangba bibẹẹkọ). Gẹgẹbi awọn paramita ti a ti sọ tẹlẹ, oniṣẹ yoo ṣiṣẹ laifọwọyi awọn aṣẹ pataki fun iṣeto ni.
Jẹ ki a wo awọn pato ni lilo apẹẹrẹ ṣiṣẹda Ile-itaja Ohun kan, tabi dipo - CephObjectStoreUser.
Awọn paramita ti a tọka si ninu atokọ jẹ boṣewa ati pe ko nilo awọn asọye, ṣugbọn o tọ lati san ifojusi pataki si awọn ti a pin si awọn oniyipada awoṣe.
Eto gbogbogbo ti iṣẹ wa si otitọ pe a “paṣẹ” awọn orisun nipasẹ faili YAML kan, eyiti oniṣẹ ṣiṣẹ awọn aṣẹ to wulo ati da aṣiri “kii ṣe-gidi” pada wa pẹlu eyiti a le ṣiṣẹ siwaju sii. (wo isalẹ). Ati lati awọn oniyipada ti a ṣe akojọ loke, aṣẹ ati orukọ aṣiri yoo ṣajọ.
Iru egbe wo ni eyi? Nigbati o ba ṣẹda olumulo kan fun ibi ipamọ ohun, oniṣẹ Rook inu adarọ-ese yoo ṣe atẹle naa:
radosgw-admin user create --uid="rook-user" --display-name="{{ .Values.s3.username }}"
Keys - kini awọn ohun elo iwaju yoo nilo lati wọle si ibi ipamọ ohun nipasẹ S3 API. Oṣiṣẹ Rook fi inurere yan wọn o si fi wọn si aaye orukọ rẹ ni irisi aṣiri pẹlu orukọ naa rook-ceph-object-user-{{ $.Values.s3.crdName }}-{{ $.Values.s3.username }}.
Lati lo data lati inu aṣiri yii, kan ṣafikun si apoti bi awọn oniyipada ayika. Gẹgẹbi apẹẹrẹ, Emi yoo fun awoṣe fun Job, ninu eyiti a ṣẹda awọn buckets laifọwọyi fun agbegbe olumulo kọọkan:
Gbogbo awọn iṣe ti a ṣe akojọ si ni iṣẹ yii ni a ṣe laarin ilana ti Kubernetes. Awọn ẹya ti a ṣalaye ninu awọn faili YAML ti wa ni ipamọ sinu ibi ipamọ Git kan ati tun lo ni ọpọlọpọ igba. A rii eyi bi afikun nla fun awọn onimọ-ẹrọ DevOps ati ilana CI/CD lapapọ.
Dun pẹlu Rook ati Rados
Lilo apapọ Ceph + RBD fa awọn ihamọ kan lori awọn ipele iṣagbesori si awọn adarọ-ese.
Ni pataki, aaye orukọ gbọdọ ni aṣiri kan fun iraye si Ceph ni ibere fun awọn ohun elo ipinlẹ lati ṣiṣẹ. O dara ti o ba ni awọn agbegbe 2-3 ni awọn aaye orukọ wọn: o le lọ daakọ aṣiri pẹlu ọwọ. Ṣugbọn kini ti ẹya kọọkan ba ṣẹda agbegbe lọtọ pẹlu aaye orukọ tirẹ fun awọn olupilẹṣẹ?
A yanju iṣoro yii funrararẹ nipa lilo ikarahun-onišẹ, eyiti o daakọ awọn aṣiri laifọwọyi si awọn aaye orukọ titun (apẹẹrẹ iru kio kan jẹ apejuwe ninu Arokọ yi).
Sibẹsibẹ, nigba lilo Rook isoro yi nìkan ko ni tẹlẹ. Ilana iṣagbesori waye nipa lilo awọn awakọ ti ara rẹ ti o da lori Flexvolume tabi CSI (si tun wa ni ipele beta) ati nitorinaa ko nilo awọn aṣiri.
Rook laifọwọyi yanju ọpọlọpọ awọn iṣoro, eyiti o gba wa niyanju lati lo ninu awọn iṣẹ akanṣe tuntun.
idoti ti Rook
Jẹ ki a pari apakan ilowo nipa gbigbe Rook ati Ceph ṣiṣẹ ki a le ṣe awọn idanwo tiwa. Lati jẹ ki o rọrun lati ji ile-iṣọ impregnable yii, awọn olupilẹṣẹ ti pese idii Helm kan. Jẹ ki a ṣe igbasilẹ rẹ:
Ninu faili rook-ceph/values.yaml o le wa ọpọlọpọ awọn eto oriṣiriṣi. Ohun pataki julọ ni lati pato awọn ifarada fun awọn aṣoju ati wiwa. A ṣe apejuwe ni apejuwe ohun ti ẹrọ taints / tolerations le ṣee lo fun ninu Arokọ yi.
Ni kukuru, a ko fẹ ki awọn adarọ-ese ohun elo alabara wa lori awọn apa kanna bi awọn disiki ipamọ data. Idi naa rọrun: ni ọna yii iṣẹ awọn aṣoju Rook kii yoo ni ipa lori ohun elo funrararẹ.
Nitorinaa, ṣii faili naa rook-ceph/values.yaml pẹlu olootu ayanfẹ rẹ ki o ṣafikun bulọọki atẹle ni ipari:
$ kubectl -n ${ROOK_NAMESPACE} exec $(kubectl -n ${ROOK_NAMESPACE} get pod -l app=rook-ceph-operator -o name -o jsonpath='{.items[0].metadata.name}') -- ceph -s
Ni akoko kanna, jẹ ki a ṣayẹwo pe awọn adarọ-ese pẹlu ohun elo alabara ko pari lori awọn apa ti o wa ni ipamọ fun Ceph:
$ kubectl -n ${APPLICATION_NAMESPACE} get pods -o custom-columns=NAME:.metadata.name,NODE:.spec.nodeName
Siwaju sii, awọn paati afikun le tunto bi o ṣe fẹ. Awọn alaye diẹ sii nipa wọn ni itọkasi ni iwe. Fun iṣakoso, a ṣeduro ni iyanju fifi dasibodu ati apoti irinṣẹ sori ẹrọ.
Rook ati kio: ni Rook to fun ohun gbogbo?
Bi o ti le ri, idagbasoke ti Rook wa ni kikun. Ṣugbọn awọn iṣoro tun wa ti ko gba wa laaye lati kọ iṣeto ni afọwọṣe ti Ceph patapata:
Ko si Rook Driver ko le okeere metiriki lori awọn lilo ti agesin ohun amorindun, eyi ti o deprives wa ti monitoring.
Flexvolume ati CSI ko mọ bi yi awọn iwọn ti awọn iwọn didun (bi o lodi si kanna RBD), ki Rook ti wa ni finnufindo ti a wulo (ati ki o ma farabale nilo!) ọpa.
Rook ko tun rọ bi Ceph deede. Ti a ba fẹ tunto adagun-omi fun metadata CephFS lati wa ni fipamọ sori SSD, ati pe data funrararẹ lati wa ni fipamọ sori HDD, a yoo nilo lati forukọsilẹ awọn ẹgbẹ lọtọ ti awọn ẹrọ ni awọn maapu CRUSH pẹlu ọwọ.
Bíótilẹ o daju wipe rook-ceph-operator ti wa ni ka idurosinsin, nibẹ ni o wa Lọwọlọwọ diẹ ninu awọn isoro nigba ti igbegasoke Ceph lati version 13 to 14.
awari
"Ni bayi Rook ti wa ni pipade lati ita ita nipasẹ awọn pawn, ṣugbọn a gbagbọ pe ni ọjọ kan o yoo ṣe ipa pataki ninu ere naa!" (asọ ti a ṣe pataki fun nkan yii)
Ise agbese Rook ti gba ọkan wa laiseaniani - a gbagbọ pe [pẹlu gbogbo awọn anfani ati alailanfani rẹ] dajudaju o yẹ akiyesi rẹ.
Awọn ero iwaju wa ṣan silẹ lati ṣe rook-ceph module kan fun addoni-onišẹ, eyiti yoo jẹ ki lilo rẹ ni ọpọlọpọ awọn iṣupọ Kubernetes paapaa rọrun ati irọrun diẹ sii.