Mapulagini amtundu wa Kubernetes yosungirako: kuchokera ku Flexvolume kupita ku CSI
Kalelo Kubernetes akadali v1.0.0, panali mapulagini a voliyumu. Amafunikira kuti alumikizane ndi Kubernetes kuti asungire deta yokhazikika (yokhazikika) yachidebe. Chiwerengero chawo chinali chaching'ono, ndipo mwa oyamba anali osungira zinthu monga GCE PD, Ceph, AWS EBS ndi ena.
Mapulagini adaperekedwa limodzi ndi Kubernetes, ndichifukwa chake adapeza dzina lawo - mumtengo. Komabe, kwa ambiri, seti yomwe ilipo ya mapulagini oterowo idakhala yosakwanira. Amisiri anawonjezera mapulagini osavuta pachimake cha Kubernetes pogwiritsa ntchito zigamba, pambuyo pake adasonkhanitsa Kubernetes yawo ndikuyiyika pa maseva awo. Koma patapita nthawi, opanga Kubernetes adazindikira izi nsomba vuto silingatheke. Anthu amafunikira ndodo ya usodzi. Ndipo pakutulutsidwa kwa Kubernetes v1.2.0 zidawoneka ...
Flexvolume plugin: ndodo yaying'ono yosodza
Madivelopa a Kubernetes adapanga pulogalamu yowonjezera ya FlexVolume, yomwe inali njira yolongosoka yosinthika ndi njira zogwirira ntchito ndi madalaivala a Flexvolume omwe amakhazikitsidwa ndi opanga gulu lachitatu.
Tiyeni tiyime ndikuyang'anitsitsa zomwe dalaivala wa FlexVolume ali. Izi ndi zoona executable file (fayilo ya binary, Python script, Bash script, ndi zina zotero), zomwe, zikachitidwa, zimatengera mfundo za mzere wa malamulo monga zolowetsa ndikubweza uthenga wokhala ndi magawo odziwika kale mumtundu wa JSON. Mwachigwirizano, kutsutsana kwa mzere woyamba nthawi zonse kumakhala njira, ndipo zotsalira zotsalira ndizo magawo ake.
Chithunzi cholumikizira cha Magawo a CIFS mu OpenShift. Flexvolume Driver - Pakatikati
... ndi chitsanzo cha Bash script pakuyika dalaivala wa Flexvolume:
#!/bin/sh
set -o errexit
set -o pipefail
VENDOR=k8s.io
DRIVER=nfs
driver_dir=$VENDOR${VENDOR:+"~"}${DRIVER}
if [ ! -d "/flexmnt/$driver_dir" ]; then
mkdir "/flexmnt/$driver_dir"
fi
cp "/$DRIVER" "/flexmnt/$driver_dir/.$DRIVER"
mv -f "/flexmnt/$driver_dir/.$DRIVER" "/flexmnt/$driver_dir/$DRIVER"
while : ; do
sleep 3600
done
Chithunzi chogwira ntchito ndi Ceph mu Rook operator: Woyendetsa Flexvolume pazithunzi ali mkati mwa Rook agent.
Vuto lotsatira mukamagwiritsa ntchito madalaivala a Flexvolume ndikuti posungira zambiri pamagulu amagulu pulogalamu yofunikira ya izi iyenera kukhazikitsidwa (mwachitsanzo, phukusi la ceph-common la Ceph). Poyambirira, pulogalamu yowonjezera ya Flexvolume sinapangidwe kuti igwiritse ntchito machitidwe ovuta.
Yankho loyambirira la vutoli litha kuwoneka pakukhazikitsa kwa oyendetsa Flexvolume kwa oyendetsa Rook:
Dalaivala yekha adapangidwa ngati kasitomala wa RPC. Soketi ya IPC yolumikizirana ili mu bukhu lofanana ndi dalaivala yemweyo. Timakumbukira kuti kukopera mafayilo oyendetsa kungakhale bwino kugwiritsa ntchito DaemonSet, yomwe imagwirizanitsa chikwatu ndi dalaivala ngati voliyumu. Pambuyo kukopera mafayilo ofunikira oyendetsa rook, pod iyi siifa, koma imagwirizanitsa ndi socket ya IPC kupyolera mu voliyumu yolumikizidwa ngati seva ya RPC yodzaza. Phukusi la ceph-common layikidwa kale mkati mwa chidebe cha pod. Soketi ya IPC imawonetsetsa kuti kubelet ilumikizana ndi ndendende pod yomwe ili pamalo omwewo. Chilichonse chanzeru ndi chosavuta! ..
Chabwino, okondedwa athu ... mumtengo mapulagini!
Opanga Kubernetes adapeza kuti kuchuluka kwa mapulagini osungira mkati mwapakati ndi makumi awiri. Ndipo kusintha kwa aliyense wa iwo, mwanjira ina, kumadutsa Kubernetes kumasulidwa kwathunthu.
Zikutheka kuti kugwiritsa ntchito mtundu watsopano wa pulogalamu yowonjezera yosungirako, muyenera kusintha gulu lonse. Kuphatikiza pa izi, mungadabwe kuti mtundu watsopano wa Kubernetes mwadzidzidzi udzakhala wosagwirizana ndi Linux kernel yomwe mukugwiritsa ntchito ... Kotero mumapukuta misozi yanu ndipo, mukukuta mano, gwirizanitsani ndi oyang'anira anu ndi ogwiritsa ntchito nthawi sinthani Linux kernel ndi gulu la Kubernetes. Ndi nthawi yocheperapo pakuperekera ntchito.
Mkhalidwewu ndi wopitilira nthabwala, sichoncho? Zinadziwika kwa anthu onse ammudzi kuti njirayo sikugwira ntchito. Mwa kusankha mwadala, opanga Kubernetes alengeza kuti mapulagini atsopano ogwiritsira ntchito posungira sadzalandiridwanso mu kernel. Kuphatikiza apo, monga tikudziwira kale, zolakwika zingapo zidadziwika pakukhazikitsa pulogalamu yowonjezera ya Flexvolume...
Pulogalamu yowonjezera yaposachedwa yamavoliyumu ku Kubernetes, CSI, idapemphedwa kuti atseke nkhaniyi ndi kusungirako kosalekeza kwa data kamodzi kokha. Mtundu wake wa alpha, womwe umatchedwa Out-of-Tree CSI Volume Plugins, udalengezedwa pakutulutsidwa. Kubernetes 1.9.
Choyamba, ndikufuna kudziwa kuti CSI si pulogalamu yowonjezera, koma yeniyeni muyezo pakupanga zida zachikhalidwe zogwirira ntchito ndi malo osungiramo data. Makina oyimba ma Container monga Kubernetes ndi Mesos amayenera "kuphunzira" momwe angagwiritsire ntchito zida zomwe zakhazikitsidwa molingana ndi muyezowu. Ndipo tsopano ndaphunzira kale Kubernetes.
Kodi mawonekedwe a CSI plugin ku Kubernetes ndi chiyani? Pulogalamu yowonjezera ya CSI imagwira ntchito ndi madalaivala apadera (Madalaivala a CSI) yolembedwa ndi opanga chipani chachitatu. Dalaivala wa CSI ku Kubernetes ayenera kukhala ndi zigawo ziwiri (pods):
Mtsogoleri - Imayang'anira zosunga zokhazikika zakunja. Imakhazikitsidwa ngati seva ya gRPC, yomwe yoyambira imagwiritsidwa ntchito StatefulSet.
Node - ali ndi udindo wokweza kusungirako kosalekeza ku ma cluster node. Imakhazikitsidwanso ngati seva ya gRPC, koma yachikale imagwiritsidwa ntchito DaemonSet.
Momwe plugin ya CSI imagwirira ntchito ku Kubernetes
Mutha kudziwa zambiri za ntchito ya CSI, mwachitsanzo, kuchokera m'nkhani yakuti "Kumvetsetsa C.S.I.Β», kumasulira kwake tinasindikiza chaka chapitacho.
Ubwino wa kukhazikitsa koteroko
Pazinthu zofunika monga kulembetsa dalaivala wa node, opanga Kubernetes adakhazikitsa zida zingapo. Simufunikanso kupanga yankho la JSON ndi kuthekera kwanu, monga zidachitikira pulogalamu yowonjezera ya Flexvolume.
M'malo mwa "kutsetsereka" mafayilo omwe angathe kuchitidwa pa node, tsopano timayika ma pods pagulu. Izi ndi zomwe timayembekezera poyambira Kubernetes: njira zonse zimachitika mkati mwa zotengera zomwe zimagwiritsidwa ntchito ndi Kubernetes primitives.
Simufunikanso kupanga seva ya RPC ndi kasitomala wa RPC kuti mugwiritse ntchito madalaivala ovuta. Makasitomala adakhazikitsidwa kwa ife ndi opanga Kubernetes.
Kupereka mikangano kuti mugwire ntchito pa protocol ya gRPC ndikosavuta, kusinthika komanso kodalirika kuposa kuwadutsa pamakangano amzere. Kuti mumvetsetse momwe mungawonjezere thandizo la ma metric ogwiritsira ntchito voliyumu ku CSI powonjezera njira yokhazikika ya gRPC, mutha kuwerenga: pempho lathu kukoka kwa vsphere-csi driver.
Kodi mndandandawu ukukukumbutsani chilichonse? Ubwino wa CSI ndi kuthetsa mavuto omwewo, zomwe sizinaganizidwe popanga pulogalamu yowonjezera ya Flexvolume.
anapezazo
CSI ngati mulingo wokhazikitsa mapulagini achikhalidwe polumikizana ndi malo osungiramo data idalandiridwa mwachikondi kwambiri ndi anthu ammudzi. Komanso, chifukwa cha ubwino wawo ndi kusinthasintha, madalaivala a CSI amapangidwira ngakhale makina osungiramo zinthu monga Ceph kapena AWS EBS, mapulagini ogwirira ntchito omwe anawonjezedwa mu mtundu woyamba wa Kubernetes.
Kumayambiriro kwa 2019, mapulagini amtengo zanenedwa kuti ndi zachikale. Tikukonzekera kupitiliza kuthandizira pulogalamu yowonjezera ya Flexvolume, koma sitipanga magwiridwe antchito atsopano.
Ife tokha tadziwa kale kugwiritsa ntchito ceph-csi, vsphere-csi ndipo takonzeka kuwonjezera pamndandandawu! Pakadali pano, CSI ikulimbana ndi ntchito zomwe idapatsidwa movutikira, koma tidikirira ndikuwona.