
ජනවාරි 29 වෙනිදා, CNCF (Cloud Native Computing Foundation) හි තාක්ෂණික කමිටුව, Kubernetes, Prometheus සහ අනෙකුත් විවෘත මූලාශ්ර නිෂ්පාදන ලෝකයේ බහාලුම් සහ ක්ලවුඩ් ස්වදේශික නිෂ්පාදන පිටුපස, ව්යාපෘතිය පිළිගැනීම ගැන රූක් ඔවුන්ගේ නිලයට. මෙම "Kubernetes හි බෙදා හරින ලද ගබඩා වාදකයා" දැන හඳුනා ගැනීමට කදිම අවස්ථාවක්.
මොන වගේ Rook ද?
Go හි ලියා ඇති මෘදුකාංගයකි ( නොමිලේ Apache බලපත්රය 2.0 යටතේ), දත්ත ගබඩාවලට ස්වයංක්රීය ක්රියාකාරකම් ඇති කිරීම සඳහා නිර්මාණය කර ඇත. ස්වයං කළමනාකරණය, ස්වයං පරිමාණය සහ ස්වයං-සුව කිරීම. මෙය සිදු කිරීම සඳහා, රූක් ස්වයංක්රීය කරයි (කුබර්නෙටස් පරිසරයක භාවිතා කරන දත්ත ගබඩා සඳහා): යෙදවීම, බූට්ස්ට්රැපිං, වින්යාස කිරීම, ප්රතිපාදන, පරිමාණය, යාවත්කාලීන කිරීම්, සංක්රමණ, ආපදා ප්රතිසාධනය, අධීක්ෂණය සහ සම්පත් කළමනාකරණය.
ව්යාපෘතිය ඇල්ෆා මට්ටමේ පවතින අතර කුබර්නෙටස් පොකුරුවල සීෆ් බෙදා හරින ලද ගබඩා පද්ධතිය සංවිධානය කිරීම සඳහා විශේෂීකරණය වේ. කතුවරුන් වෙනත් ගබඩා පද්ධති සඳහා සහය දැක්වීමේ සැලසුම් ද නිවේදනය කරයි, නමුත් මෙය ඊළඟ නිකුතු වලදී සිදු නොවනු ඇත.
සංරචක සහ තාක්ෂණික උපාංගය
කුබර්නෙටස් තුළ රූක්ගේ වැඩ කටයුතු විශේෂ ක්රියාකරුවෙකු මත පදනම් වේ (අපි Kubernetes Operators ගැන වැඩි විස්තර ලිව්වා ), ගබඩා වින්යාසය ස්වයංක්රීය කරන අතර එහි අධීක්ෂණය ක්රියාත්මක කරයි.
එසේ නම්, Rook ක්රියාකරු ගබඩාව යෙදවීමට සහ පසුව නඩත්තු කිරීමට අවශ්ය සියල්ල අඩංගු බහාලුමක් ලෙස පෙනේ. ක්රියාකරුගේ වගකීම්වලට ඇතුළත් වන්නේ:
- Ceph ගබඩා ඩීමන් සඳහා DaemonSet නිර්මාණය කිරීම () සරල RADOS පොකුරක් සමඟ;
- Ceph අධීක්ෂණය සඳහා කරල් නිර්මාණය කිරීම (සිට , පොකුරේ තත්ත්වය පරීක්ෂා කිරීම; ගණපූරණය සඳහා, බොහෝ අවස්ථාවලදී පිටපත් තුනක් යොදවා ඇති අතර, ඒවායින් එකක් වැටුණහොත්, අලුත් එකක් ඉහළ යයි);
- CRDs කළමනාකරණය () තමා වෙනුවෙන් , , (වස්තු මත PUT/GET ඉටු කරන HTTP ඉල්ලීම් සඳහා වන සම්පත් සහ සේවා කට්ටල - ඒවා S3 සහ Swift API සමඟ අනුකූල වේ), මෙන්ම ;
- අවශ්ය සියලුම සේවාවන් දියත් කිරීම සඳහා කරල් ආරම්භ කිරීම;
- Rook නියෝජිතයන් නිර්මාණය කිරීම.
රූක්ගේ නියෝජිතයන් එක් එක් කුබර්නෙට්ස් නෝඩය මත යොදවා ඇති වෙනම කරල් මගින් නිරූපණය කෙරේ. නියෝජිතයාගේ අරමුණ ප්ලගින වින්යාසයයි , එය Kubernetes හි ගබඩා වෙළුම් සඳහා සහය සපයයි. නියෝජිතයා ගබඩාවේ ක්රියාකාරිත්වය ක්රියාත්මක කරයි: ජාල ගබඩා උපාංග සම්බන්ධ කිරීම, වෙළුම් සවි කිරීම, ගොනු පද්ධතිය ආකෘතිකරණය කිරීම යනාදිය.

සමස්ත Kubernetes පොකුරු යෝජනා ක්රමය තුළ Rook සංරචකවල ස්ථානය සහ භූමිකාව
Rook ගබඩා වර්ග තුනක් ඉදිරිපත් කරයි:
- (බ්ලොක්,
StorageClass) - ගබඩාව තනි උදුනකට සවි කරයි; - (වස්තුව,
ObjectStore) - Kubernetes පොකුර ඇතුළත සහ පිටත ලබා ගත හැකිය (S3 API හරහා); - (හවුල් ගොනු පද්ධතිය,
Filesystem) යනු පොඩ් කිහිපයකින් කියවීමට සහ ලිවීමට සවි කළ හැකි ගොනු පද්ධතියකි.
Rook හි අභ්යන්තර කොටස් වලට ඇතුළත් වන්නේ:
- මොන්ස් - Ceph අධීක්ෂණය සඳහා කරල් (දැනටමත් සඳහන් කර ඇති ceph-mon සමඟ);
- OSDs - ceph-osd ඩීමන් සහිත කරල් (Object Storage Daemons);
- එම්.ජී.ආර් - යක්ෂයෙකු සමඟ කරල් (Ceph Manager), බාහිර පද්ධති සඳහා අමතර අධීක්ෂණ හැකියාවන් සහ අතුරු මුහුණත් සපයන (නිරීක්ෂණය/පාලනය);
- ආර්.ජී.ඩබ්ලිව් (විකල්ප) - වස්තු ගබඩා සහිත කරල්;
- MDS (විකල්ප) - හවුල් ගොනු පද්ධතියක් සහිත කරල්.

සියලුම රූක් ඩීමන් (Mons, OSDs, MGR, RGW, MDS) තනි ද්විමයයකට සම්පාදනය කර ඇත (rook) කන්ටේනරයක ධාවනය.
Rook ව්යාපෘතිය පිළිබඳ කෙටි හැඳින්වීමක් සඳහා, මෙම කෙටි (12 විනිවිදක) ද ප්රයෝජනවත් විය හැකිය. Bassam Tabbara (CTO at Quantum Corp) වෙතින්.
Rook ක්රියාත්මක කිරීම
Rook ක්රියාකරු Kubernetes අනුවාදය 1.6 සහ ඊට වැඩි ඒවා සඳහා පූර්ණ සහය දක්වයි (සහ, අර්ධ වශයෙන්, පැරණි K8s නිකුතුව - 1.5.2). ඔහුගේ ස්ථාපන в මේ වගේ:
cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yamlමීට අමතරව, Rook ක්රියාකරු සූදානම් වේ , ස්ථාපනය මේ ආකාරයට සිදු කළ හැකි ස්තුතිය:
helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook කුඩා ප්රමාණයක් ලබා ගත හැක (උදාහරණයක් ලෙස, ඔබට සහාය අක්රිය කළ හැක , මෙම විශේෂාංගය ඔබගේ පොකුරේ භාවිතා නොකරන්නේ නම්), වෙත යවනු ලැබේ helm install පරාමිතිය හරහා --set key=value[,key=value] (හෝ වෙනම YAML ගොනුවක ගබඩා කර සම්ප්රේෂණය කරන්න -f values.yaml).
රූක් ක්රියාකරු ස්ථාපනය කර එහි නියෝජිතයන් සමඟ කරල් දියත් කිරීමෙන් පසු ඉතිරිව ඇත්තේ රූක් පොකුර නිර්මාණය කිරීම පමණි, එහි සරලම වින්යාසය මේ ආකාරයෙන් පෙනේ (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අදහස් දැක්වීම්: විශේෂ අවධානය යොමු කළ යුතු ගුණාංගය වෙත ගෙවිය යුතුය dataDirHostPath, නැවත පණගැන්වීමෙන් පසු පොකුර සුරැකීමට අවශ්ය වන නිවැරදි අගය. එය Kubernetes ධාරකවල Rook දත්ත සඳහා ස්ථිර ගබඩා ස්ථානයක් ලෙස භාවිතා කරන අවස්ථා සඳහා, කතුවරුන් මෙම නාමාවලියෙහි අවම වශයෙන් 5 GB නිදහස් තැටි ඉඩක් තිබීම නිර්දේශ කරයි.
ඉතිරිව ඇත්තේ වින්යාසයෙන් පොකුර සෑදීම සහ පොකුරේ (නාම අවකාශයේ) කරල් නිර්මාණය කර ඇති බවට වග බලා ගැනීමයි. 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උත්ශ්රේණි කරන්න රූක් පොකුර (නව අනුවාදයක් දක්වා) යනු මෙම අදියරේදී එහි සියලුම සංරචක යම් අනුපිළිවෙලකට අනුක්රමික යාවත්කාලීන කිරීම අවශ්ය වන ක්රියා පටිපාටියක් වන අතර ඔබට එය ආරම්භ කළ හැක්කේ වත්මන් රූක් ස්ථාපනය සම්පූර්ණයෙන්ම “සෞඛ්ය සම්පන්න” බව සහතික කිරීමෙන් පසුව පමණි. රජයේ. Rook අනුවාදය 0.5.0 සිට 0.5.1 දක්වා යාවත්කාලීන කිරීමේ උදාහරණය භාවිතා කරමින් සවිස්තරාත්මක පියවරෙන් පියවර උපදෙස් සොයාගත හැකිය .
පසුගිය නොවැම්බර් මාසයේ Rook බ්ලොග් අඩවියේ සංසන්දනය කාර්ය සාධනය EBS සමඟ. එහි ප්රතිඵල අවධානයට ලක්විය යුතු අතර, කෙටියෙන්, ඒවා පහත පරිදි වේ:


අනාගත බලාපොරොත්තු
රූක්ගේ වර්තමාන තත්ත්වය ඇල්ෆා වන අතර, අද දක්වා ඇති නවතම ප්රධාන නිකුතුව වේ , 2017 නොවැම්බර් මස නිකුත් කරන ලදී (වත්මන් නිවැරදි කිරීම - - දෙසැම්බර් 14 නිකුත් විය). දැනටමත් 2018 පළමු භාගයේදී, වඩාත් පරිණත අනුවාද නිකුත් කිරීම් අපේක්ෂා කෙරේ: බීටා සහ ස්ථාවර (නිෂ්පාදනය සඳහා නිල වශයෙන් සූදානම්).
අනුව ව්යාපෘතිය, සංවර්ධකයින්ට අවම වශයෙන් ඊළඟ නිකුතු දෙක තුළ රූක් සංවර්ධනය සඳහා සවිස්තරාත්මක දැක්මක් ඇත: 0.7 (එහි සූදානම GitHub ට්රැකර් හි ඇත 60% ලෙස) සහ 0.8. අපේක්ෂිත වෙනස්කම් අතර Ceph Block සහ Ceph Object සඳහා සහය බීටා අනුවාද තත්ත්වයට මාරු කිරීම, CephFS සඳහා වෙළුම්වල ගතික ප්රතිපාදන, උසස් ලොග් කිරීමේ පද්ධතියක්, ස්වයංක්රීය පොකුරු යාවත්කාලීන කිරීම්, වෙළුම් සඳහා ස්නැප්ෂොට් සඳහා සහය වේ.
රූක් අංකයට ගැනීම (මෙතෙක් මුල් අවධියේදී - "ආරම්භක මට්ටම" - සමානව и ) යනු නිෂ්පාදනයට ඇති උනන්දුව වර්ධනය වන ආකාරයේ සහතිකයකි. ස්ථාවර අනුවාද නිකුත් වූ පසු එය ක්ලවුඩ් යෙදුම් ලෝකයේ අඩිතාලමක් ලබා ගන්නේ කෙසේද යන්න පැහැදිලි වනු ඇත, එය නිසැකවම නව පරීක්ෂකයින් සහ පරිශීලකයින් Rook වෙත ගෙන එනු ඇත.
ප්රාදේශීය සභා
අපගේ බ්ලොග් අඩවියේ ද කියවන්න:
- «»;
- «»;
- «»;
- «»;
- «".
මූලාශ්රය: www.habr.com
