{"id":40721,"date":"2020-02-03T14:41:59","date_gmt":"2020-02-03T11:41:59","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/nash-opyt-razrabotki-csi-drajvera-v-kubernetes-dlya-yandeks-oblaka"},"modified":"2020-02-03T14:41:59","modified_gmt":"2020-02-03T11:41:59","slug":"nash-opyt-razrabotki-csi-drajvera-v-kubernetes-dlya-yandeks-oblaka","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/nash-opyt-razrabotki-csi-drajvera-v-kubernetes-dlya-yandeks-oblaka","title":{"rendered":"Eksperienca jon\u00eb e zhvillimit t\u00eb driver-it CSI n\u00eb Kubernetes p\u00ebr Yandex.Cloud","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Eksperienca jon\u00eb e zhvillimit t\u00eb driver-it CSI n\u00eb Kubernetes p\u00ebr Yandex.Cloud\" src=\"\/wp-content\/uploads\/2020\/02\/86adf77b2ee08c426bf79c5b9b2d3d1e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJemi t\u00eb lumtur t\u00eb njoftojm\u00eb se kompania \u00abFlant\u00bb po kontribuon edhe m\u00eb shum\u00eb n\u00eb mjetet Open Source p\u00ebr Kubernetes duke l\u00ebshuar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/yandex-csi-driver\">versionin alfa t\u00eb driver-it CSI<\/a><\/noindex> (Container Storage Interface) p\u00ebr Yandex.Cloud.<\/p>\n<p>Por para se t\u00eb kalojm\u00eb te detajet e realizimit, le t\u00eb p\u00ebrgjigjemi n\u00eb pyetjen se pse \u00ebsht\u00eb e nevojshme kjo, kur Yandex tashm\u00eb ka sh\u00ebrbimin <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/docs\/managed-kubernetes\/\">Managed Service for Kubernetes<\/a><\/noindex>.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Hyrje<\/h2>\n<p><\/p>\n<h3>Pse \u00ebsht\u00eb kjo?<\/h3>\n<p>\nBrenda kompanis\u00eb son\u00eb, q\u00eb nga fillimi i p\u00ebrdorimit t\u00eb Kubernetes n\u00eb prodhim (dmth. p\u00ebr disa vite), ka zhvilluar nj\u00eb mjet t\u00eb vetin (deckhouse), i cili, p\u00ebr fat t\u00eb mir\u00eb, po planifikojm\u00eb gjithashtu ta b\u00ebjm\u00eb t\u00eb disponuesh\u00ebm si projekt Open Source s\u00eb shpejti. Me ndihm\u00ebn e tij ne konfiguroni dhe iniciativat tona n\u00eb m\u00ebnyr\u00eb uniform p\u00ebr t\u00eb gjitha klastra tona, t\u00eb cilat aktualisht jan\u00eb m\u00eb shum\u00eb se 100, dhe p\u00ebrs\u00ebri jan\u00eb n\u00eb konfiguracione t\u00eb ndryshme harduerike dhe n\u00eb t\u00eb gjitha sh\u00ebrbimet e disponueshme t\u00eb cloud.<\/p>\n<p>Klastrat q\u00eb p\u00ebrdorin deckhouse kan\u00eb t\u00eb gjitha komponent\u00ebt e nevojsh\u00ebm p\u00ebr funksionimin: balancuesit, monitorimin me grafika, metrika dhe alerte t\u00eb p\u00ebrshtatshme, autentifikimin e p\u00ebrdoruesve p\u00ebrmes ofruesve t\u00eb jasht\u00ebm p\u00ebr akses n\u00eb t\u00eb gjitha dashboard-et dhe k\u00ebshtu me radh\u00eb. Nj\u00eb klaster i till\u00eb i \u2018p\u00ebrmir\u00ebsuar\u2019 nuk ka kuptim t\u00eb vendoset n\u00eb nj\u00eb zgjidhje t\u00eb menaxhuar, pasi shpeshher\u00eb \u00ebsht\u00eb e pamundur, ose do t\u00eb \u00e7onte n\u00eb nevoj\u00ebn p\u00ebr t\u00eb \u00e7aktivizuar gjysm\u00ebn e komponenteve.<\/p>\n<p><i><b>NB<\/b>: Kjo \u00ebsht\u00eb p\u00ebrvoja jon\u00eb, dhe ajo \u00ebsht\u00eb mjaft e ve\u00e7ant\u00eb. Ne aspak nuk po sigurojm\u00eb se gjithkush duhet t\u00eb merret vet\u00eb me vendosjen e klastra Kubernetes n\u00eb vend q\u00eb t\u00eb p\u00ebrdor\u00eb zgjidhjet e gatshme. Sidoqoft\u00eb, nuk kemi p\u00ebrvoj\u00eb reale t\u00eb p\u00ebrdorimit t\u00eb Kubernetes nga Yandex dhe nuk do ta vler\u00ebsojm\u00eb k\u00ebt\u00eb sh\u00ebrbim n\u00eb artikullin e tanish\u00ebm.<\/i><\/p>\n<h3>\u00c7far\u00eb \u00ebsht\u00eb kjo dhe p\u00ebr k\u00eb?<\/h3>\n<p>\nK\u00ebshtu, ne tashm\u00eb kemi folur p\u00ebr qasjen moderne ndaj ruajtjes n\u00eb Kubernetes: <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424211\/\">si funksionon CSI<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/465417\/\">si arriti komuniteti<\/a><\/noindex> n\u00eb k\u00ebt\u00eb qasje.<\/p>\n<p>Aktualisht, shum\u00eb ofrues t\u00eb m\u00ebdhenj t\u00eb sh\u00ebrbimeve t\u00eb cloud kan\u00eb zhvilluar driver-a p\u00ebr t\u00eb p\u00ebrdorur disk\u00ebt e tyre \u2018cloud\u2019 si Volume t\u00eb P\u00ebrhersh\u00ebm n\u00eb Kubernetes. N\u00ebse nj\u00eb ofrues nuk ka nj\u00eb driver t\u00eb till\u00eb, por t\u00eb gjitha funksionet e nevojshme ofrohen p\u00ebrmes API-s\u00eb, at\u00ebher\u00eb nuk ka asgj\u00eb q\u00eb ndalon realizimin e driver-it me forcat tona. K\u00ebshtu ndodhi edhe me Yandex.Cloud.<\/p>\n<p>P\u00ebr baz\u00ebn e zhvillimit ne e mor\u00ebm <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/digitalocean\/csi-digitalocean\">CSI-driver-in p\u00ebr cloud-in DigitalOcean<\/a><\/noindex> dhe disa ide nga <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/gcp-compute-persistent-disk-csi-driver\">driver-i p\u00ebr GCP<\/a><\/noindex>, pasi nd\u00ebrveprimi me API-n\u00eb e k\u00ebtyre cloud-\u00ebve (Google dhe Yandex) ka disa ngjashm\u00ebri. N\u00eb ve\u00e7anti, API jan\u00eb si\u00e7 jan\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.google.com\/compute\/docs\/api\/how-tos\/api-requests-responses#handling_api_responses\">GCP<\/a><\/noindex>, dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/docs\/api-design-guide\/concepts\/about-async\">Yandex<\/a><\/noindex> kthen objekti <code>Operacioni<\/code> p\u00ebr t\u00eb ndjekur statusin e operacioneve t\u00eb gjat\u00eb (p.sh., krijimi i nj\u00eb disku t\u00eb ri). P\u00ebr t'u bashk\u00ebvepruar me API-n\u00eb e Yandex.Cloud p\u00ebrdoret <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/yandex-cloud\/go-sdk\">Yandex.Cloud Go SDK<\/a><\/noindex>.<\/p>\n<p>Rezultati i pun\u00ebs s\u00eb kryer <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/yandex-csi-driver\">\u00ebsht\u00eb publikuar n\u00eb GitHub<\/a><\/noindex> dhe mund t\u00eb jet\u00eb i dobish\u00ebm p\u00ebr ata q\u00eb p\u00ebr nj\u00eb arsye apo tjet\u00ebr p\u00ebrdorin nj\u00eb instalim t\u00eb vetin t\u00eb Kubernetes n\u00eb makinat virtuale t\u00eb Yandex.Cloud (por jo nj\u00eb klaster t\u00eb menaxhuar) dhe do t\u00eb d\u00ebshironin t\u00eb p\u00ebrdornin (porosinin) disqet p\u00ebrmes CSI.<\/p>\n<h2>Implementimi<\/h2>\n<p><\/p>\n<h3>Ve\u00e7orit\u00eb kryesore<\/h3>\n<p>\nN\u00eb k\u00ebt\u00eb moment, driveri mb\u00ebshtet funksionet e m\u00ebposhtme:<\/p>\n<ul>\n<li> Porosin\u00eb e disqeve n\u00eb t\u00eb gjitha zonat e klasterit sipas topologjis\u00eb s\u00eb nyjave t\u00eb disponueshme n\u00eb klaster;<\/li>\n<li> Fshirjen e disqeve t\u00eb porositura m\u00eb par\u00eb;<\/li>\n<li> Rritjen offline p\u00ebr disqet (Yandex.Cloud <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/docs\/compute\/operations\/disk-control\/update#change-disk-size\">nuk mb\u00ebshtet<\/a><\/noindex> rritja e disqeve q\u00eb jan\u00eb t\u00eb montuara n\u00eb makin\u00ebn virtuale). P\u00ebr m\u00ebnyr\u00ebn se si duhej t\u00eb rib\u00ebhej driveri q\u00eb t\u00eb realizohej sa m\u00eb pa dhembje rritja, shih m\u00eb posht\u00eb.<\/li>\n<\/ul>\n<p>\nN\u00eb t\u00eb ardhmen planifikohet t\u00eb implementohet mb\u00ebshtetje p\u00ebr krijimin dhe fshirjen e snapshot-eve t\u00eb disqeve.<\/p>\n<h3>Sfidat kryesore dhe kap\u00ebrcimi i tyre<\/h3>\n<p>\nMungesa n\u00eb API-n\u00eb e Yandex.Cloud e mund\u00ebsis\u00eb p\u00ebr t\u00eb rritur disqet n\u00eb koh\u00eb reale \u2014 nj\u00eb kufizim q\u00eb e v\u00ebshtir\u00ebson operacionin e rritjes p\u00ebr PV (V\u00ebllimi i P\u00ebrhersh\u00ebm): sepse n\u00eb at\u00eb rast \u00ebsht\u00eb e nevojshme q\u00eb pod-i i aplikacionit q\u00eb p\u00ebrdor disku t\u00eb ndalet, gj\u00eb q\u00eb mund t\u00eb shkaktoj\u00eb ndalimin e aplikacionit.<\/p>\n<p>Sipas <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/container-storage-interface\/spec\">specifikimeve CSI<\/a><\/noindex>, n\u00ebse CSI-kontrollori raporton se di t\u00eb b\u00ebj\u00eb rritjen e disqeve vet\u00ebm \"n\u00eb offline\" (<code>VolumeExpansion.OFFLINE<\/code>), procesi i rritjes s\u00eb disku duhet t\u00eb kaloj\u00eb k\u00ebshtu:<\/p>\n<blockquote><p>N\u00ebse plugin-i ka vet\u00ebm <code>VolumeExpansion.OFFLINE<\/code> kapacitetin e rritjes dhe v\u00ebllimi aktualisht \u00ebsht\u00eb i publikuar ose i disponuesh\u00ebm n\u00eb nj\u00eb nyje at\u00ebher\u00eb <code>ControllerExpandVolume<\/code> DUHET t\u00eb thirret VET\u00cbM pasi:<\/p>\n<ul>\n<li> Plugin-i ka <code>PUBLISH_UNPUBLISH_VOLUME<\/code> kapacitetin dhe <code>ControllerUnpublishVolume<\/code> \u00ebsht\u00eb thirrur me sukses.<\/li>\n<\/ul>\n<p>\nOSE PAS<\/p>\n<ul>\n<li> Plugin-i NUK ka <code>PUBLISH_UNPUBLISH_VOLUME<\/code> kapacitetin e kontrollit, plugin-i ka nyje <code>STAGE_UNSTAGE_VOLUME<\/code> kapacitetin, dhe <code>NodeUnstageVolume<\/code> \u00ebsht\u00eb p\u00ebrfunduar me sukses.<\/li>\n<\/ul>\n<p>\nOSE PAS<\/p>\n<ul>\n<li>Plugin-i NUK ka <code>PUBLISH_UNPUBLISH_VOLUME<\/code> kapacitetin, as nyja <code>STAGE_UNSTAGE_VOLUME<\/code> kapacitetin, dhe <code>NodeUnpublishVolume<\/code> nuk \u00ebsht\u00eb p\u00ebrfunduar me sukses.<\/li>\n<\/ul>\n<\/blockquote>\n<p>\nN\u00eb thelb, kjo do t\u00eb thot\u00eb se \u00ebsht\u00eb e nevojshme t\u00eb shk\u00ebputet disku nga makina virtuale p\u00ebrpara se ta rrisim.<\/p>\n<p>Megjithat\u00eb, fatkeq\u00ebsisht, <b>implementim<\/b> specifikimet e CSI p\u00ebrmes sidecar-ve nuk i p\u00ebrmbushin k\u00ebto k\u00ebrkesa:<\/p>\n<ul>\n<li> N\u00eb konteinerin sidecar <code>csi-attacher<\/code>, i cili duhet t\u00eb jet\u00eb p\u00ebrgjegj\u00ebs p\u00ebr sigurimin e hap\u00ebsir\u00ebs s\u00eb nevojshme midis montimeve, gjat\u00eb rritjes offline thjesht nuk \u00ebsht\u00eb implementuar ky funksionalitet. Diskutimin p\u00ebr k\u00ebt\u00eb e iniciuan <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-csi\/external-attacher\/issues\/207\">k\u00ebtu<\/a><\/noindex>.<\/li>\n<li> \u00c7far\u00eb \u00ebsht\u00eb n\u00eb t\u00eb v\u00ebrtet\u00eb nj\u00eb kontenier sidecar n\u00eb k\u00ebt\u00eb kontekst? Vet\u00eb plugini CSI nuk merret me nd\u00ebrveprimin me API-n\u00eb e Kubernetes, por thjesht reagon ndaj thirrjeve gRPC q\u00eb i d\u00ebrgojn\u00eb kontenier\u00ebt sidecar. <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes-csi.github.io\/docs\/sidecar-containers.html\">zhvillohen<\/a><\/noindex> Komuniteti Kubernetes.<\/li>\n<\/ul>\n<p>\nN\u00eb rastin ton\u00eb (plugini CSI) operacioni i rritjes s\u00eb diskut duket si m\u00eb posht\u00eb:<\/p>\n<ol>\n<li> Merrni thirrjen gRPC. <code>ControllerExpandVolume<\/code>;<\/li>\n<li> P\u00ebrpiqemi t\u00eb rrisim diskun n\u00eb API, por marrim nj\u00eb gabim p\u00ebr pamund\u00ebsin\u00eb e kryerjes s\u00eb operacionit, pasi disku \u00ebsht\u00eb i montuar;<\/li>\n<li> Ruajm\u00eb identifikuesin e diskut n\u00eb nj\u00eb hart\u00eb q\u00eb p\u00ebrmban disk\u00ebt p\u00ebr t\u00eb cil\u00ebt duhet t\u00eb kryhet operacioni i rritjes. M\u00eb pas, p\u00ebr shkak t\u00eb shkurt\u00ebsis\u00eb, do ta quajm\u00eb k\u00ebt\u00eb hart\u00eb si <code>volumeResizeRequired.<\/code>;<\/li>\n<li> Dorezoni manualisht pod-in q\u00eb p\u00ebrdor disku. Kubernetes do ta ri-startoj\u00eb at\u00eb. P\u00ebr t\u00eb parandaluar q\u00eb disku t\u00eb montoj\u00eb p\u00ebrpara p\u00ebrfundimit t\u00eb operacionit t\u00eb rritjes gjat\u00eb p\u00ebrpjekjes p\u00ebr t\u00eb montuar, kontrollojm\u00eb q\u00eb ky disk t\u00eb jet\u00eb akoma n\u00eb<code>ControllerPublishVolume<\/code>) e t\u00eb kthejm\u00eb nj\u00eb gabim; <code>volumeResizeRequired.<\/code> Driver-i CSI p\u00ebrpiqet t\u00eb rris\u00eb p\u00ebrs\u00ebri operacionin. N\u00ebse operacioni kalon, at\u00ebher\u00eb e hiqni diskun nga<\/li>\n<li> Pasi identifikuesi i diskut mungon n\u00eb <code>volumeResizeRequired.<\/code>;<\/li>\n<li> kalon me sukses, disku monton, pod-i startohet. <code>volumeResizeRequired.<\/code>, <code>ControllerPublishVolume<\/code> E gjith\u00eb kjo duket mjaft e thjesht\u00eb, por si gjithmon\u00eb ka pengesat e veta. Rritja e disk\u00ebve \u00ebsht\u00eb p\u00ebrgjegj\u00ebsia e<\/li>\n<\/ol>\n<p>\nexternal-resizer, <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes-csi.github.io\/docs\/external-resizer.html\">i cili n\u00eb rast gabimi gjat\u00eb kryerjes s\u00eb operacionit p\u00ebrdor nj\u00eb radh\u00eb<\/a><\/noindex>me rritje eksponenciale t\u00eb koh\u00ebs s\u00eb skadimit deri n\u00eb 1000 sekonda: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-csi\/external-resizer\/blob\/master\/vendor\/k8s.io\/client-go\/util\/workqueue\/default_rate_limiters.go#L41\">func DefaultControllerRateLimiter() RateLimiter {\n  return NewMaxOfRateLimiter(\n  NewItemExponentialFailureRateLimiter(5*time.Millisecond, 1000*time.Second),\n  \n  &amp;BucketRateLimiter{Limiter: rate.NewLimiter(rate.Limit(10), 100)},\n  )\n}<\/a><\/noindex> Kjo mund t\u00eb \u00e7oj\u00eb p\u00ebrher\u00eb n\u00eb rritjen e operacionit t\u00eb diskut t\u00eb zgjas\u00eb 15+ minuta dhe, k\u00ebshtu, t\u00eb shkaktoj\u00eb munges\u00eb t\u00eb p\u00ebrkat\u00ebs pod-i.<\/p>\n<pre><code class=\"go\">Opcioni i vet\u00ebm q\u00eb na lejoj\u00eb t\u00eb reduktojm\u00eb koh\u00ebn e mundshme t\u00eb nd\u00ebrprerjes ishte p\u00ebrdorimi i versionit ton\u00eb t\u00eb external-resizer me kufizim maksimal t\u00eb skadimit<\/code><\/pre>\n<p>\nn\u00eb 5 sekonda.<\/p>\n<p>workqueue.NewItemExponentialFailureRateLimiter(5*time.Millisecond, 5*time.Second) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/external-resizer\/blob\/faster-workqueue\/pkg\/controller\/controller.go#L81\">Nuk e konsideruam t\u00eb nevojshme t\u00eb nisim nj\u00eb diskutim urgjent dhe t\u00eb patch-ojm\u00eb external-resizer, sepse rritja offline e disk\u00ebve \u00ebsht\u00eb nj\u00eb relikt q\u00eb s\u00eb shpejti do t\u00eb humbas\u00eb tek t\u00eb gjith\u00eb ofruesit e sh\u00ebrbimeve n\u00eb cloud.<\/a><\/noindex>:<\/p>\n<pre><code class=\"go\">Si mund t\u00eb filloni p\u00ebrdorimin?<\/code><\/pre>\n<p>\nDriver-i mb\u00ebshtetet n\u00eb Kubernetes versionin 1.15 dhe m\u00eb lart. P\u00ebr t\u00eb funksionuar, duhet t\u00eb p\u00ebrmbushen k\u00ebrkesat e m\u00ebposhtme:<\/p>\n<h2>Si si filloni ta p\u00ebrdorni?<\/h2>\n<p>\nDrejtuesi mb\u00ebshtetet n\u00eb Kubernetes versionin 1.15 dhe m\u00eb lart. P\u00ebr t\u00eb punuar me drejtuesin duhet t\u00eb plot\u00ebsohen k\u00ebrkesat e m\u00ebposhtme:<\/p>\n<ul>\n<li> Flamuri <code>--allow-privileged<\/code> i vendosur n\u00eb vler\u00ebn <code>true<\/code> p\u00ebr API-n\u00eb e serverit dhe kubelet;<\/li>\n<li> Aktivizuar <code>--feature-gates=VolumeSnapshotDataSource=true,KubeletPluginsWatcher=true,CSINodeInfo=true,CSIDriverRegistry=true<\/code> p\u00ebr API-n\u00eb e serverit dhe kubelet;<\/li>\n<li> P\u00ebrhapja e montimit (<noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#mount-propagation\">montimi i p\u00ebrhapjes<\/a><\/noindex>) duhet t\u00eb aktivizohet n\u00eb klaster. Kur p\u00ebrdoret Docker, demoni duhet t\u00eb konfigurohet n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb lejoj\u00eb objektet e p\u00ebrbashk\u00ebta t\u00eb montimit (montime t\u00eb ndara).<\/li>\n<\/ul>\n<p>\nT\u00eb gjitha hapat e nevojsh\u00ebm p\u00ebr instalimin e tij <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/yandex-csi-driver#installing-driver\">jan\u00eb p\u00ebrshkruar n\u00eb README<\/a><\/noindex>. Instalimi p\u00ebrb\u00ebn krijimin e objekteve n\u00eb Kubernetes nga manifestet.<\/p>\n<p>P\u00ebr t\u00eb punuar me drejtuesin do t'ju nevojitet:<\/p>\n<ul>\n<li> T\u00eb specifikoni n\u00eb manifest identifikuesin e direktoriumit (<code>folder-id<\/code>) t\u00eb Yandex.Cloud (<noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/docs\/resource-manager\/operations\/folder\/get-id\">shih dokumentacionin<\/a><\/noindex>);<\/li>\n<li> P\u00ebr t\u00eb nd\u00ebrvepruar me API-n\u00eb e Yandex.Cloud n\u00eb drejtuesin CSI p\u00ebrdoret nj\u00eb llogari sh\u00ebrbimi. N\u00eb manifestin Secret duhet t\u00eb kaloni <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.com\/docs\/iam\/concepts\/authorization\/key\">\u00e7el\u00ebsat e autorizuar<\/a><\/noindex> t\u00eb llogaris\u00eb s\u00eb sh\u00ebrbimit. N\u00eb dokumentacionin <noindex><a rel=\"nofollow\" href=\"https:\/\/cloud.yandex.ru\/docs\/iam\/quickstart-sa\">p\u00ebrshkruhet<\/a><\/noindex>, si t\u00eb krijoni nj\u00eb llogari sh\u00ebrbimi dhe t\u00eb merrni \u00e7el\u00ebsat.<\/li>\n<\/ul>\n<p>\nN\u00eb p\u00ebrgjith\u00ebsi \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/yandex-csi-driver\">provoni<\/a><\/noindex>, dhe ne do t\u00eb jemi t\u00eb lumtur p\u00ebr feedbackun dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/yandex-csi-driver\/issues\">probleme t\u00eb reja<\/a><\/noindex>, n\u00ebse ndoni ndonj\u00eb problem!<\/p>\n<h2>Mb\u00ebshtetje e m\u00ebtejshme<\/h2>\n<p>\nSi p\u00ebrfundim, do t\u00eb d\u00ebshironim t\u00eb theksonim se k\u00ebt\u00eb drejtues CSI e kemi zhvilluar jo nga d\u00ebshira p\u00ebr t\u00eb luajtur me shkrimin e aplikacioneve n\u00eb Go, por p\u00ebr nj\u00eb nevoj\u00eb t\u00eb ngutshme brenda kompanis\u00eb. T\u00eb mbash nj\u00eb realizim t\u00eb till\u00eb t\u00eb vetin nuk na duket e arsyeshme, prandaj, n\u00ebse Yandex shfaq interes dhe vendos t\u00eb vazhdoj\u00eb mb\u00ebshtetje p\u00ebr drejtuesin, at\u00ebher\u00eb ne me k\u00ebnaq\u00ebsi do ta transferojm\u00eb depozit\u00ebn n\u00eb dispozitat e tyre.<\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, ndoshta Yandex n\u00eb klasterin e menaxhuar Kubernetes ka nj\u00eb realizim t\u00eb vetin t\u00eb drejtuesit CSI, t\u00eb cilin mund ta l\u00ebshoj\u00eb n\u00eb Open Source. Ky variant i zhvillimit gjithashtu na duket i favorsh\u00ebm \u2014 komuniteti do t\u00eb jet\u00eb n\u00eb gjendje t\u00eb p\u00ebrdor\u00eb nj\u00eb drejtues t\u00eb provuar nga ofruesi i sh\u00ebrbimeve, jo nga nj\u00eb kompani e jashtme.<\/p>\n<h2>P.S.<\/h2>\n<p>\nLexoni gjithashtu n\u00eb blogun ton\u00eb:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/465417\/\">Plugin\u00ebt e volumeve t\u00eb ruajtjes n\u00eb Kubernetes: nga Flexvolume te CSI<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424211\/\">Kuptojm\u00eb Container Storage Interface (n\u00eb Kubernetes dhe jo vet\u00ebm)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/455543\/\">T\u00eb krijosh nj\u00eb Kubernetes-klaster \u00ebsht\u00eb e thjesht\u00eb dhe e p\u00ebrshtatshme? Anoncojm\u00eb addon-operatorin<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/455543\/\">Zgjerimi dhe plot\u00ebsimi i Kubernetes (p\u00ebrmbledhje dhe video e prezantimit)<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/486190\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0434\u044b \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u00ab\u0424\u043b\u0430\u043d\u0442\u00bb \u043f\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432 Open Source-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f Kubernetes, \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0432 \u0430\u043b\u044c\u0444\u0430-\u0432\u0435\u0440\u0441\u0438\u044e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 CSI (Container Storage Interface) \u0434\u043b\u044f \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0430. \u041d\u043e \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0434\u0435\u0442\u0430\u043b\u044f\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043e\u0442\u0432\u0435\u0442\u0438\u043c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u0437\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0443\u0436\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0443 \u042f\u043d\u0434\u0435\u043a\u0441\u0430 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0430 Managed Service for Kubernetes. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e? \u0412\u043d\u0443\u0442\u0440\u0438 \u043d\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0435\u0449\u0451 \u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":40722,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-40721","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0434\u044b \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/nash-opyt-razrabotki-csi-drajvera-v-kubernetes-dlya-yandeks-oblaka\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u0430\u0448 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 CSI-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0432 Kubernetes \u0434\u043b\u044f \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0434\u044b \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/nash-opyt-razrabotki-csi-drajvera-v-kubernetes-dlya-yandeks-oblaka\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-03T11:41:59+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-03T11:41:59+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Eksperienca jon\u00eb e zhvillimit t\u00eb drejtuesit CSI n\u00eb Kubernetes p\u00ebr Yandex.Cloud | ProHoster","description":"Jemi t\u00eb lumtur t\u00eb njoftojm\u00eb se kompania.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/nash-opyt-razrabotki-csi-drajvera-v-kubernetes-dlya-yandeks-oblaka","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u0430\u0448 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 CSI-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0432 Kubernetes \u0434\u043b\u044f \u042f\u043d\u0434\u0435\u043a\u0441.\u041e\u0431\u043b\u0430\u043a\u0430 | ProHoster","og:description":"\u0420\u0430\u0434\u044b \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/sq\/blog\/nash-opyt-razrabotki-csi-drajvera-v-kubernetes-dlya-yandeks-oblaka","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-03T11:41:59+00:00","article:modified_time":"2020-02-03T11:41:59+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"40721","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:32:40","updated":"2022-09-30 15:42:14","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/40721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=40721"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/40721\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/40722"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=40721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=40721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=40721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}