{"id":94977,"date":"2020-09-24T07:43:00","date_gmt":"2020-09-24T05:43:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/nashi-vyvody-za-god-migraczii-gitlab-com-na-kubernetes"},"modified":"2020-09-24T07:43:00","modified_gmt":"2020-09-24T05:43:00","slug":"nashi-vyvody-za-god-migraczii-gitlab-com-na-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/nashi-vyvody-za-god-migraczii-gitlab-com-na-kubernetes","title":{"rendered":"T\u00eb dh\u00ebnat tona p\u00ebr vitin e migrimit t\u00eb GitLab.com n\u00eb Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Sh\u00ebn. p\u00ebrk.<\/b>: Adaptimi i Kubernetes n\u00eb GitLab \u00ebsht\u00eb konsideruar si nj\u00eb nga dy faktor\u00ebt kryesor\u00eb q\u00eb kontribuojn\u00eb n\u00eb rritjen e kompanis\u00eb. Megjithat\u00eb, deri para pak koh\u00ebsh, infrastruktura e sh\u00ebrbimit online GitLab.com ishte nd\u00ebrtuar mbi makina virtuale, dhe vet\u00ebm rreth nj\u00eb viti m\u00eb par\u00eb filloi migrimi i saj n\u00eb K8s, i cili ende nuk ka p\u00ebrfunduar. Jemi t\u00eb k\u00ebnaqur t\u00eb paraqesim p\u00ebrkthimin e nj\u00eb artikulli t\u00eb fundit nga inxhinieri SRE i GitLab mbi se si po zhvillohet kjo dhe cilat p\u00ebrfundime po nxjerrin inxhinier\u00ebt q\u00eb po marrin pjes\u00eb n\u00eb projekt.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"T\u00eb dh\u00ebnat tona p\u00ebr vitin e migrimit t\u00eb GitLab.com n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/09\/58429abf60cd19a49c5ce593051c2fca.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrej nj\u00eb viti, nj\u00ebsia jon\u00eb infrastrukturore ka qen\u00eb e angazhuar n\u00eb migrimin e t\u00eb gjitha sh\u00ebrbimeve q\u00eb funksionojn\u00eb n\u00eb GitLab.com n\u00eb Kubernetes. Gjat\u00eb k\u00ebsaj periudhe, ne kemi hasur probleme q\u00eb lidhen jo vet\u00ebm me zhvendosjen e sh\u00ebrbimeve n\u00eb Kubernetes, por gjithashtu me menaxhimin e nj\u00eb deploymenti hibrid gjat\u00eb kalimit. Ky artikull do t\u00eb trajtoj\u00eb m\u00ebsimet e \u00e7muara q\u00eb kemi marr\u00eb nga kjo p\u00ebrvoj\u00eb.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Q\u00eb n\u00eb fillim, serverat e GitLab.com kan\u00eb punuar n\u00eb cloud mbi makina virtuale. K\u00ebto makina virtuale menaxhohen nga Chef, dhe vendosja e tyre b\u00ebhet me ndihm\u00ebn e paket\u00ebs son\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/install\/#ubuntu\">zyrtare Linux<\/a><\/noindex>. <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/release\/docs\/-\/blob\/master\/general\/deploy\/gitlab-com-deployer.md\">Strategjia e implementimit<\/a><\/noindex> n\u00eb rast se duhet t\u00eb p\u00ebrmir\u00ebsohet aplikacioni, \u00ebsht\u00eb nj\u00eb azhurnim i thjesht\u00eb i parkut t\u00eb server\u00ebve, i organizuar n\u00eb m\u00ebnyr\u00eb t\u00eb koordinuar n\u00eb nj\u00eb rrjedh\u00eb CI. Kjo metod\u00eb \u2014 megjith\u00ebse e ngadalt\u00eb dhe pak e m\u00ebrzitshme <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/handbook\/values\/#boring-solutions\">\u2014 siguron q\u00eb GitLab.com p\u00ebrdor t\u00eb nj\u00ebjtat metoda instalimi dhe konfigurimi si p\u00ebrdoruesit e instalimeve<\/a><\/noindex> (vet\u00eb-menaxhuar) <i>t\u00eb GitLab, q\u00eb p\u00ebrdorin paketat tona p\u00ebr Linux p\u00ebr k\u00ebt\u00eb.<\/i> Ne p\u00ebrdorim k\u00ebt\u00eb metod\u00eb sepse \u00ebsht\u00eb jasht\u00ebzakonisht e r\u00ebnd\u00ebsishme t\u00eb p\u00ebrjetosh t\u00eb gjitha shqet\u00ebsimet dhe g\u00ebzimet q\u00eb ndjejn\u00eb an\u00ebtar\u00ebt e zakonsh\u00ebm t\u00eb komunitetit kur instalojn\u00eb dhe konfigur\u00ebjn\u00eb kopjet e tyre t\u00eb GitLab. Ky qasje ka funksionuar mir\u00eb p\u00ebr nj\u00eb koh\u00eb, megjithat\u00eb, kur numri i projekteve n\u00eb GitLab kaloi 10 milion, kuptuam se nuk p\u00ebrmbushte m\u00eb nevojat tona p\u00ebr shkall\u00ebzim dhe implementim.<\/p>\n<p>Hapat e par\u00eb drejt Kubernetes dhe GitLab cloud-native<\/p>\n<h2>N\u00eb vitin 2017, projekti<\/h2>\n<p>\nGitLab Charts <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/charts\">Grafik\u00ebt GitLab<\/a><\/noindex> p\u00ebr t\u00eb p\u00ebrgatitur GitLab p\u00ebr implementim n\u00eb cloud, si dhe p\u00ebr t\u00eb mund\u00ebsuar p\u00ebrdoruesve t\u00eb instalojn\u00eb GitLab n\u00eb klastera Kubernetes. At\u00ebher\u00eb ne e dinim se transferimi i GitLab n\u00eb Kubernetes do t\u00eb rris\u00eb kapacitetin e p\u00ebrmasimit t\u00eb platform\u00ebs SaaS, do t\u00eb thjeshtonte implementimet dhe do t\u00eb p\u00ebrmir\u00ebsonte efikasitetin e p\u00ebrdorimit t\u00eb burimeve kompjuterike. N\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb, shum\u00eb funksione t\u00eb aplikacionit ton\u00eb varen nga ndarjet NFS t\u00eb montuara, gj\u00eb q\u00eb ngadal\u00ebsoi kalimin nga makinat virtuale.<\/p>\n<p>D\u00ebshira p\u00ebr cloud native dhe Kubernetes i dha mund\u00ebsi inxhinier\u00ebve tan\u00eb t\u00eb planifikonin nj\u00eb kalim gradual, gjat\u00eb t\u00eb cilit ne hoq\u00ebm dor\u00eb nga disa var\u00ebsi t\u00eb aplikacionit nga ruajtjet rrjet, duke vazhduar nj\u00ebkoh\u00ebsisht zhvillimin e funksioneve t\u00eb reja. Q\u00eb kur filluam t\u00eb planifikonim migrimin ver\u00ebn e vitit 2019, shum\u00eb nga k\u00ebto kufizime jan\u00eb eliminuar, dhe procesi i kalimit t\u00eb GitLab.com n\u00eb Kubernetes tani po ec\u00ebn me rit\u00ebm t\u00eb plot\u00eb!<\/p>\n<h2>Karakteristikat e funksionimit t\u00eb GitLab.com n\u00eb Kubernetes<\/h2>\n<p>\nP\u00ebr GitLab.com ne p\u00ebrdorim nj\u00eb klaster t\u00eb vet\u00ebm rajonal GKE q\u00eb p\u00ebrpunon t\u00eb gjith\u00eb trafikun e aplikacionit. P\u00ebr t\u00eb minimizuar kompleksitetin (t\u00eb cilin e kemi pasur tashm\u00eb t\u00eb nd\u00ebrlikuar) t\u00eb migrimit, ne p\u00ebrqendrohemi n\u00eb sh\u00ebrbime q\u00eb nuk varen nga ruajtja lokale ose NFS. GitLab.com p\u00ebrdor kryesisht nj\u00eb baz\u00eb kodike monolitike n\u00eb Rails, dhe ne drejtojm\u00eb trafik n\u00eb var\u00ebsi t\u00eb karakteristikave t\u00eb ngarkes\u00ebs n\u00eb endpoint t\u00eb ndryshme, t\u00eb izoluar n\u00eb pulo t\u00eb ve\u00e7anta nodosh.<\/p>\n<p>Sa i p\u00ebrket frontend-it, k\u00ebto lloje ndahen n\u00eb k\u00ebrkesa p\u00ebr web, API, Git SSH\/HTTPS dhe Registry. P\u00ebr backend-in, ne ndajm\u00eb pun\u00ebt n\u00eb radh\u00eb sipas karakteristikave t\u00eb ndryshme n\u00eb var\u00ebsi t\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/blog\/2020\/06\/24\/scaling-our-use-of-sidekiq\/\">kufijve t\u00eb paracaktuar t\u00eb burimeve<\/a><\/noindex>, t\u00eb cilat na lejojn\u00eb t\u00eb vendosim standardet e sh\u00ebrbimit (Service-Level Objectives, SLOs) p\u00ebr ngarkesa t\u00eb ndryshme.<\/p>\n<p>T\u00eb gjitha k\u00ebto sh\u00ebrbime GitLab.com jan\u00eb konfiguruar me an\u00eb t\u00eb chart-it Helm t\u00eb pap\u00ebrmir\u00ebsuar. Konfigurimi realizohet n\u00eb subchart-e, t\u00eb cilat mund t\u00eb aktivizohen selektivisht pasi ne gradualisht i transferojm\u00eb sh\u00ebrbimet n\u00eb klaster. Edhe me vendimin p\u00ebr t\u00eb mos p\u00ebrfshir\u00eb n\u00eb migrim disa nga sh\u00ebrbimet tona stateful, si Redis, Postgres, GitLab Pages dhe Gitaly, p\u00ebrdorimi i Kubernetes-it lejon nj\u00eb reduktim radical t\u00eb numrit t\u00eb VM-ve q\u00eb aktualisht menaxhohen nga Chef.<\/p>\n<h2>Transparenca dhe menaxhimi i konfiguracionit t\u00eb Kubernetes<\/h2>\n<p>\nT\u00eb gjitha konfigurimet menaxhohen nga vet\u00eb GitLab. P\u00ebr k\u00ebt\u00eb, p\u00ebrdoren tri projekte konfigurimi t\u00eb bazuara n\u00eb Terraform dhe Helm. Ne mundohemi t'i japim p\u00ebrpar\u00ebsi p\u00ebrdorimit t\u00eb vet\u00eb GitLab p\u00ebr t\u00eb drejtuar GitLab-in, por p\u00ebr detyra operacionale kemi nj\u00eb instalim t\u00eb ve\u00e7ant\u00eb t\u00eb GitLab. Ky instalim \u00ebsht\u00eb i nevojsh\u00ebm q\u00eb t\u00eb mos varemi nga disponueshm\u00ebria e GitLab.com gjat\u00eb zhvillimeve dhe azhurnimeve t\u00eb GitLab.com.<\/p>\n<p>Megjith\u00ebse pipeline-t tona p\u00ebr klasterin Kubernetes funksionojn\u00eb n\u00eb nj\u00eb instalim t\u00eb ve\u00e7ant\u00eb GitLab, ka pasqyra p\u00ebr depozit\u00eb kodi q\u00eb jan\u00eb publikisht t\u00eb disponueshme n\u00eb adresat e m\u00ebposhtme:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-com\/gl-infra\/k8s-workloads\/gitlab-com\">k8s-workloads\/gitlab-com<\/a><\/noindex> \u2014 mb\u00ebshtetje konfigurimi p\u00ebr GitLab.com p\u00ebr chart-in Helm t\u00eb GitLab;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-com\/gl-infra\/k8s-workloads\/gitlab-helmfiles\/\">k8s-workloads\/gitlab-helmfiles<\/a><\/noindex> \u2014 p\u00ebrmban konfigurime p\u00ebr sh\u00ebrbime q\u00eb nuk jan\u00eb t\u00eb lidhura drejtp\u00ebrdrejt me aplikacionin GitLab. K\u00ebtu p\u00ebrfshihen konfigurimet p\u00ebr mbajtjen e logeve dhe monitorimin e klasterit, si dhe p\u00ebr instrumentet e integruara si PlantUML;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-com\/gitlab-com-infrastructure\">Gitlab-com-infrastructure<\/a><\/noindex> \u2014 konfigurim Terraform p\u00ebr Kubernetes dhe infrastruktur\u00ebn e vjet\u00ebr (legacy) VM. K\u00ebtu konfigurohen t\u00eb gjitha burimet e nevojshme p\u00ebr t\u00eb p\u00ebrgatitur klasterin, p\u00ebrfshir\u00eb klasterin vet\u00eb, grumbujt e node-ve, llogarit\u00eb e sh\u00ebrbimeve, rezervimin e adreseve IP.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"T\u00eb dh\u00ebnat tona p\u00ebr vitin e migrimit t\u00eb GitLab.com n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/09\/612125403171d73106a081bf4244a52b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kur b\u00ebhen ndryshime, tregohet publikisht <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-com\/gl-infra\/k8s-workloads\/gitlab-com\/-\/merge_requests\/315#note_390180361\"><i>nj\u00eb p\u00ebrmbledhje e shkurt\u00ebr<\/i><\/a><\/noindex><i> me lidhje n\u00eb nj\u00eb diferenc\u00eb t\u00eb detajuar, e cila analizohet nga SRE p\u00ebrpara se t\u00eb b\u00ebhen ndryshime n\u00eb klaster.<\/i><\/p>\n<p>P\u00ebr SRE, lidhja t\u00eb \u00e7on n\u00eb nj\u00eb diferenc\u00eb t\u00eb detajuar n\u00eb instalimin e GitLab, i cili p\u00ebrdoret p\u00ebr operacionet dhe qasja n\u00eb t\u00eb \u00ebsht\u00eb e kufizuar. Kjo u lejon stafit dhe komunitetit pa qasje n\u00eb projektin operativ (i cili \u00ebsht\u00eb i hapur vet\u00ebm p\u00ebr SRE) t\u00eb shikojn\u00eb ndryshimet e propozuara n\u00eb konfiguracion. Duke kombinuar nj\u00eb instanc\u00eb publike t\u00eb GitLab p\u00ebr kodin me nj\u00eb instanc\u00eb private p\u00ebr CI-pipeline, ne ruajm\u00eb nj\u00eb proces t\u00eb vet\u00ebm pune, duke garantuar nj\u00ebkoh\u00ebsisht pavar\u00ebsin\u00eb nga GitLab.com p\u00ebr azhurnimet e konfiguracionit.<\/p>\n<h2>\u00c7far\u00eb kemi m\u00ebsuar gjat\u00eb migruar\u00ebs<\/h2>\n<p>\nGjat\u00eb procesit t\u00eb zhvendosjes, u fitua p\u00ebrvoja q\u00eb e p\u00ebrdorim n\u00eb migrimet dhe deployment-et e reja n\u00eb Kubernetes.<\/p>\n<h3>1. Rritja e shpenzimeve p\u00ebr shkak t\u00eb trafikut midis zonave t\u00eb disponueshm\u00ebris\u00eb<\/h3>\n<p>\n<img decoding=\"async\" alt=\"T\u00eb dh\u00ebnat tona p\u00ebr vitin e migrimit t\u00eb GitLab.com n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/09\/3dce44b3f803ffcea13e0101e7343d91.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Statistika e p\u00ebrditshme e egress (byt n\u00eb dit\u00eb) p\u00ebr parkun e Git-repozitoreve n\u00eb GitLab.com<\/i><\/p>\n<p>Google ndan nj\u00eb ndarje t\u00eb rrjetit t\u00eb tij n\u00eb rajone. K\u00ebto, nga ana e tyre, ndahen n\u00eb zona disponibiliteti (AZ). Git-hostingu \u00ebsht\u00eb i lidhur me v\u00ebllime t\u00eb m\u00ebdha t\u00eb dh\u00ebnash, prandaj \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb kontrollojm\u00eb egressin e rrjetit. N\u00eb rastin e trafikut t\u00eb brendsh\u00ebm, egressi \u00ebsht\u00eb falas vet\u00ebm n\u00ebse q\u00ebndron brenda kufijve t\u00eb nj\u00eb zone disponibiliteti. N\u00eb koh\u00ebn kur po shkruaja k\u00ebt\u00eb artikull, ne po jepnim rreth 100 TB t\u00eb dh\u00ebnash n\u00eb nj\u00eb dit\u00eb t\u00eb zakonshme pune (dhe kjo \u00ebsht\u00eb vet\u00ebm p\u00ebr git-repo). Sh\u00ebrbimet q\u00eb n\u00eb topologjin\u00eb ton\u00eb t\u00eb vjet\u00ebr, e bazuar n\u00eb VM, ishin n\u00eb t\u00eb nj\u00ebjtat makina virtuale, tani funksionojn\u00eb n\u00eb pod t\u00eb ndryshme Kubernetes. Kjo do t\u00eb thot\u00eb se nj\u00eb pjes\u00eb e trafikut, e cila m\u00eb par\u00eb ishte lokale p\u00ebr VM, potencialisht mund t\u00eb kaloj\u00eb jasht\u00eb zonave t\u00eb disponibilitetit.<\/p>\n<p>Klastrat rajonal\u00eb GKE lejojn\u00eb mbulimin e disa zonave aksesibiliteti p\u00ebr rezervim. Ne po shqyrtojm\u00eb mund\u00ebsin\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-com\/gl-infra\/delivery\/-\/issues\/1175\">p\u00ebr t\u00eb ndar\u00eb klastrin rajonal GKE n\u00eb klastra nj\u00ebzonale<\/a><\/noindex> p\u00ebr sh\u00ebrbimet q\u00eb gjenerojn\u00eb sasi t\u00eb m\u00ebdha trafiku. Kjo do t\u00eb ndihmoj\u00eb n\u00eb reduktimin e kostove t\u00eb egress-it nd\u00ebrsa mbahet rezervimi n\u00eb nivelin e klastrit.<\/p>\n<h3>2. Limitet, k\u00ebrkesat p\u00ebr resurse dhe shkall\u00ebzimi<\/h3>\n<p>\n<img decoding=\"async\" alt=\"T\u00eb dh\u00ebnat tona p\u00ebr vitin e migrimit t\u00eb GitLab.com n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/09\/6e2e1ca4d37666b49358d94cd8660c56.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Numri i replikave, q\u00eb trajtojn\u00eb trafikun production n\u00eb registry.gitlab.com. Trafiku arrin kulmin e tij rreth or\u00ebs 15:00 UTC.<\/i><\/p>\n<p>Historia jon\u00eb e migrimit filloi n\u00eb gusht t\u00eb 2019, kur ne transferuam sh\u00ebrbimin e par\u00eb \u2014 regjistrin e konteiner\u00ebve GitLab (GitLab Container Registry) \u2014 n\u00eb Kubernetes. Ky sh\u00ebrbim kritik me trafik t\u00eb lart\u00eb ishte I p\u00ebrshtatsh\u00ebm p\u00ebr migrimin e par\u00eb, pasi p\u00ebrb\u00ebn nj\u00eb aplikacion stateless me pak var\u00ebsi t\u00eb jashtme. Problemi i par\u00eb me t\u00eb cilin u p\u00ebrball\u00ebm ishte numri i madh i pod-\u00ebve t\u00eb d\u00ebbuar p\u00ebr shkak t\u00eb munges\u00ebs s\u00eb memories n\u00eb nyje. Kjo na detyroi t\u00eb ndryshonim k\u00ebrkesat dhe limitet.<\/p>\n<p>U zbulua se p\u00ebr nj\u00eb aplikacion, ku konsumi i memories rritet me kalimin e koh\u00ebs, vlerat e ulta p\u00ebr k\u00ebrkesat (rezervimi i memories p\u00ebr \u00e7do pod) s\u00eb bashku me nj\u00eb limit 'bujaq' t\u00eb ngurt\u00eb p\u00ebr p\u00ebrdorim \u00e7onin n\u00eb saturim. <i>(saturation)<\/i> e nyjeve dhe nj\u00eb nivel t\u00eb lart\u00eb d\u00ebbimesh. P\u00ebr t\u00eb trajtuar k\u00ebt\u00eb problem, u <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-com\/gl-infra\/delivery\/-\/issues\/998#note_388983696\">u vendos t\u00eb rriten k\u00ebrkesat dhe t\u00eb ulen limitet.<\/a><\/noindex>. Kjo e leht\u00ebsoi presionin nga nyjet dhe siguroi nj\u00eb cik\u00ebl jet\u00ebsor t\u00eb pod-\u00ebve q\u00eb nuk ushtronte nj\u00eb presion t\u00eb tep\u00ebrt n\u00eb nyj\u00eb. Tani ne fillojm\u00eb migrimet me vlera bujare (dhe pothuajse t\u00eb nj\u00ebjta) p\u00ebr k\u00ebrkesat dhe limitet, duke i rregulluar ato sipas nevoj\u00ebs.<\/p>\n<h3>3. Metrit dhe regjistrat<\/h3>\n<p>\n<img decoding=\"async\" alt=\"T\u00eb dh\u00ebnat tona p\u00ebr vitin e migrimit t\u00eb GitLab.com n\u00eb Kubernetes\" src=\"\/wp-content\/uploads\/2020\/09\/66d1fd47b57d5826f13defa6e6a7fe3c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Nj\u00ebsia infrastrukturore p\u00ebrqendrohet n\u00eb vonesat, p\u00ebrqindjen e gabimeve dhe saturimin me objektiva t\u00eb vendosur <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Service-level_objective\"><i>p\u00ebr nivelin e sh\u00ebrbimit<\/i><\/a><\/noindex><i> (SLO), t\u00eb lidhura me <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-com\/dashboards-gitlab-com\/-\/metrics\/sla-dashboard.yml?environment=1790496&amp;duration_seconds=86400\"><i>disponueshm\u00ebrin\u00eb e p\u00ebrgjithshme t\u00eb sistemit ton\u00eb.<\/i><\/a><\/noindex><i>.<\/i><\/p>\n<p>Gjat\u00eb vitit t\u00eb kaluar, nj\u00eb nga ngjarjet kryesore n\u00eb nj\u00ebsin\u00eb infrastrukturore ishin p\u00ebrmir\u00ebsimet n\u00eb monitorimin dhe menaxhimin e SLO-ve. SLO-t\u00eb na lejuan t\u00eb vendosim objektiva p\u00ebr sh\u00ebrbime t\u00eb ndara, q\u00eb ne i ndoq\u00ebm me kujdes gjat\u00eb migrimit. Por, edhe me k\u00ebt\u00eb p\u00ebrmir\u00ebsim n\u00eb observueshm\u00ebri, nuk \u00ebsht\u00eb gjithmon\u00eb e mundur t\u00eb shihni menj\u00ebher\u00eb problemet, duke p\u00ebrdorur metrikat dhe alarmin. P\u00ebr shembull, duke u p\u00ebrqendruar n\u00eb vonesat dhe p\u00ebrqindjen e gabimeve, nuk e mbulojm\u00eb plot\u00ebsisht \u00e7do skenar p\u00ebrdorimi t\u00eb sh\u00ebrbimit q\u00eb po migron.<\/p>\n<p>Ky problemi u zbulua pothuajse menj\u00ebher\u00eb pas transferimit t\u00eb pjes\u00ebs s\u00eb ngarkesave n\u00eb klaster. Ai u shfaq ve\u00e7an\u00ebrisht ashp\u00ebr kur duhej t\u00eb kontrolloheshin funksionet, numri i k\u00ebrkesave p\u00ebr t\u00eb cilat nuk \u00ebsht\u00eb i madh, por q\u00eb kan\u00eb var\u00ebsi konfiguruese shum\u00eb specifike. Nj\u00eb nga m\u00ebsimet ky\u00e7e nga migrimi ishte nevoja p\u00ebr t\u00eb marr\u00eb parasysh gjat\u00eb monitorimit jo vet\u00ebm metrikat, por gjithashtu log-et dhe \"bishtin e gjat\u00eb\". <i>(po flasim p\u00ebr <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Long_tail\"><i>nj\u00eb shp\u00ebrndarje t\u00eb till\u00eb<\/i><\/a><\/noindex><i> n\u00eb grafik \u2014 sh\u00ebn. p\u00ebrk.)<\/i> gabimeve. Tani p\u00ebr \u00e7do migrim ne p\u00ebrfshijm\u00eb nj\u00eb list\u00eb t\u00eb detajuar t\u00eb k\u00ebrkesave n\u00eb log <i>(log queries)<\/i> dhe planifikojm\u00eb procedura t\u00eb qarta rikthimi, t\u00eb cilat n\u00eb rast se ndodhin probleme, mund t\u00eb kalohen nga nj\u00eb nd\u00ebrrim n\u00eb tjetrin.<\/p>\n<p>Sh\u00ebrbimi paralel i t\u00eb nj\u00ebjtave k\u00ebrkesa n\u00eb infrastruktur\u00ebn e vjet\u00ebr VM dhe at\u00eb t\u00eb re, t\u00eb bazuar n\u00eb Kubernetes, paraqiste nj\u00eb sfid\u00eb unike. Ndryshe nga migrimi i tipit lift-and-shift <i>(transferimi i shpejt\u00eb i aplikacioneve \"ashtu si\u00e7 jan\u00eb\" n\u00eb infrastruktur\u00ebn e re; mund t\u00eb lexoni m\u00eb shum\u00eb, p\u00ebr shembull, <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/www.ibm.com\/cloud\/learn\/lift-and-shift\"><i>k\u00ebtu<\/i><\/a><\/noindex><i> \u2014 sh\u00ebnim i p\u00ebrkthyesit.)<\/i>, puna paralel e pun\u00ebs n\u00eb VM-t\u00eb \"e vjetra\" dhe Kubernetes k\u00ebrkon q\u00eb mjetet p\u00ebr monitorimin t\u00eb jen\u00eb t\u00eb p\u00ebrputhshme me t\u00eb dyja mjediset dhe t\u00eb jen\u00eb n\u00eb gjendje t\u00eb kombinojn\u00eb metrikat n\u00eb nj\u00eb pamje. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme q\u00eb ne t\u00eb p\u00ebrdorim t\u00eb nj\u00ebjtat dashboard-e dhe k\u00ebrkesa p\u00ebr log-et p\u00ebr t\u00eb arritur nj\u00eb v\u00ebzhgim t\u00eb nj\u00ebpasnj\u00ebsh\u00ebm gjat\u00eb periudh\u00ebs kalimtare.<\/p>\n<h3>4. Kalimi i trafikut n\u00eb grumbullin e ri<\/h3>\n<p>\nP\u00ebr GitLab.com, nj\u00eb pjes\u00eb e server\u00ebve i p\u00ebrkushtohet <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/handbook\/engineering\/#canary-testing\">faz\u00ebs kanarire (canary)<\/a><\/noindex>. Parku kanarire sh\u00ebrben p\u00ebr projektet tona t\u00eb brendshme, si dhe mund <noindex><a rel=\"nofollow\" href=\"https:\/\/next.gitlab.com\/\">t\u00eb p\u00ebrfshihet nga p\u00ebrdoruesit<\/a><\/noindex>. Por n\u00eb radh\u00eb t\u00eb par\u00eb, ai \u00ebsht\u00eb menduar p\u00ebr t\u00eb testuar ndryshimet q\u00eb b\u00ebhen n\u00eb infrastruktur\u00eb dhe aplikacion. Sh\u00ebrbimi i par\u00eb i transferuar filloi duke pranuar nj\u00eb volum t\u00eb kufizuar t\u00eb trafikut t\u00eb brendsh\u00ebm, dhe ne vazhdojm\u00eb ta p\u00ebrdorim k\u00ebt\u00eb metod\u00eb p\u00ebr t\u00eb siguruar p\u00ebrmbushjen e SLO para se t\u00eb drejtojm\u00eb t\u00eb gjith\u00eb trafikun n\u00eb grumbull.<\/p>\n<p>N\u00eb rastin e migrimit, kjo do t\u00eb thot\u00eb se m\u00eb par\u00eb k\u00ebrkesat d\u00ebrgohen n\u00eb projektet e brendshme n\u00eb Kubernetes, dhe m\u00eb pas ne gradualisht kalojm\u00eb trafikun e mbetur n\u00eb klaster duke ndryshuar pesh\u00ebn p\u00ebr backend p\u00ebrmes HAProxy. Gjat\u00eb kalimit nga VM n\u00eb Kubernetes, \u00ebsht\u00eb b\u00ebr\u00eb e qart\u00eb se \u00ebsht\u00eb shum\u00eb e dobishme t\u00eb kemi nj\u00eb m\u00ebnyr\u00eb t\u00eb thjesht\u00eb p\u00ebr t\u00eb ridrejtuar trafikun midis infrastrukturave t\u00eb vjetra dhe atyre t\u00eb reja dhe, p\u00ebrkat\u00ebsisht, t\u00eb mbajm\u00eb infrastruktur\u00ebn e vjet\u00ebr gatish p\u00ebr rikthim n\u00eb dit\u00ebt e para pas migrimit.<\/p>\n<h3>5. Kapacitetet rezerv\u00eb t\u00eb pod-\u00ebve dhe p\u00ebrdorimi i tyre<\/h3>\n<p>\nGati menj\u00ebher\u00eb u identifikua problemi i ardhsh\u00ebm: pod-\u00ebt p\u00ebr sh\u00ebrbimin e Regjistrit fillonin shpejt, megjithat\u00eb nisja e pod-\u00ebve p\u00ebr Sidekiq merrte deri n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/charts\/gitlab\/-\/issues\/1775\">n\u00eb dy minuta<\/a><\/noindex>. Nisma e prolonguar e pod-\u00ebve p\u00ebr Sidekiq u b\u00eb nj\u00eb problem kur filluam migrimin n\u00eb Kubernetes t\u00eb ngarkesave p\u00ebr pun\u00ebtor\u00ebt, t\u00eb cil\u00ebve u nevojitej t\u00eb p\u00ebrpunonin shpejt pun\u00ebt dhe t\u00eb shkall\u00ebzoheshin shpejt.<\/p>\n<p>N\u00eb k\u00ebt\u00eb rast, m\u00ebsimi ishte se, megjith\u00ebse Horizontal Pod Autoscaler (HPA) n\u00eb Kubernetes e ndihmon mir\u00eb n\u00eb rritjen e trafikut, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb merren parasysh karakteristikat e ngarkesave t\u00eb pun\u00ebs dhe t\u00eb alokohen kapacitete rezerv\u00eb p\u00ebr pod&#8217;et (ve\u00e7an\u00ebrisht n\u00eb kushte t\u00eb shp\u00ebrndarjes jo t\u00eb barabart\u00eb t\u00eb k\u00ebrkes\u00ebs). N\u00eb rastin ton\u00eb, u v\u00ebrejt nj\u00eb shp\u00ebrthim t\u00eb papritur t\u00eb job&#8217;eve, duke rezultuar n\u00eb nj\u00eb shkall\u00ebzim t\u00eb shpejt\u00eb, \u00e7ka \u00e7oi n\u00eb shfryt\u00ebzimin e burimeve t\u00eb CPU deri sa ne arrit\u00ebm t\u00eb shkall\u00ebzonim grupin e node&#8217;eve.<\/p>\n<p>Gjithmon\u00eb ka tundimin p\u00ebr t\u00eb nxjerr\u00eb sa m\u00eb shum\u00eb q\u00eb \u00ebsht\u00eb e mundur nga klasteri, megjithat\u00eb, pasi fillimisht u p\u00ebrball\u00ebm me probleme t\u00eb performanc\u00ebs, tani fillojm\u00eb me nj\u00eb buxhet t\u00eb bollsh\u00ebm p\u00ebr pod&#8217;et dhe e reduktojm\u00eb at\u00eb m\u00eb von\u00eb, duke e monitoruar me kujdes SLO-n\u00eb. Aktivizimi i pod&#8217;eve p\u00ebr sh\u00ebrbimin Sidekiq \u00ebsht\u00eb b\u00ebr\u00eb ndjesh\u00ebm m\u00eb i shpejt\u00eb dhe tani zgjat mesatarisht rreth 40 sekonda. <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/charts\/gitlab\/-\/issues\/1775\">P\u00ebr t\u00eb shkurtuar koh\u00ebn e aktivizimit t\u00eb pod&#8217;eve<\/a><\/noindex> p\u00ebrfituan si GitLab.com ashtu edhe p\u00ebrdoruesit tan\u00eb t\u00eb instalimeve self-managed, duke punuar me Helm-chartin zyrtar t\u00eb GitLab.<\/p>\n<h2>P\u00ebrfundimi<\/h2>\n<p>\nPas transferimit t\u00eb \u00e7do sh\u00ebrbimi, ne u g\u00ebzuam p\u00ebr p\u00ebrfitimet e p\u00ebrdorimit t\u00eb Kubernetes n\u00eb prodhim: nj\u00eb shp\u00ebrndarje m\u00eb t\u00eb shpejt\u00eb dhe m\u00eb t\u00eb sigurt t\u00eb aplikacioneve, shkall\u00ebzim dhe nj\u00eb shp\u00ebrndarje m\u00eb efikase t\u00eb resurseve. P\u00ebr m\u00eb tep\u00ebr, p\u00ebrfitimet e migrimit tejkalojn\u00eb sh\u00ebrbimin GitLab.com. \u00c7do p\u00ebrmir\u00ebsim i Helm-chart-it zyrtar p\u00ebrfitohet edhe nga p\u00ebrdoruesit e tij.<\/p>\n<p>Shpresoj q\u00eb t'ju ket\u00eb p\u00eblqyer historia e aventurave tona me migrimin n\u00eb Kubernetes. Ne vazhdojm\u00eb t\u00eb transferojm\u00eb sh\u00ebrbime t\u00eb reja n\u00eb grup. Informacione t\u00eb tjera mund t\u00eb gjenden n\u00eb publikimet e m\u00ebposhtme:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/handbook\/engineering\/infrastructure\/production\/kubernetes\/gitlab-com\/\">Pse po migrojm\u00eb n\u00eb Kubernetes?<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/handbook\/engineering\/infrastructure\/production\/architecture\/#gitlab-com-on-kubernetes\">GitLab.com n\u00eb Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/groups\/gitlab-com\/gl-infra\/-\/epics\/112\">Epik p\u00ebr migrimin e GitLab.com n\u00eb Kubernetes<\/a><\/noindex>.<\/li>\n<\/ul>\n<p><\/p>\n<h2>P.S. nga p\u00ebrkthyesi<\/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\/519962\/\">3 vite me Kubernetes n\u00eb prodhim: ja \u00e7far\u00eb kuptuam<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/504396\/\">10 gabime tipike n\u00eb p\u00ebrdorimin e Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/335814\/\">Historit\u00eb e suksesit t\u00eb Kubernetes n\u00eb prodhim. Pjesa 3: GitHub<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/440278\/\">Kalimi i Tinder n\u00eb Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/520150\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044e Kubernetes \u0432 GitLab \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432, \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u043e\u0441\u0442\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0434\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u043d\u043b\u0430\u0439\u043d-\u0441\u0435\u0440\u0432\u0438\u0441\u0430 GitLab.com \u0431\u044b\u043b\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d\u0430\u0445, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043a\u043e\u043b\u043e \u0433\u043e\u0434\u0430 \u043d\u0430\u0437\u0430\u0434 \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0435\u0451 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0432 K8s, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430. \u0420\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 SRE-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 GitLab \u043e \u0442\u043e\u043c, \u043a\u0430\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":94978,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94977","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044e Kubernetes \u0432 GitLab \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432, \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u043e\u0441\u0442\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.\" \/>\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\/administrirovanie\/nashi-vyvody-za-god-migraczii-gitlab-com-na-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.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\u0438 \u0432\u044b\u0432\u043e\u0434\u044b \u0437\u0430 \u0433\u043e\u0434 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 GitLab.com \u043d\u0430 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044e Kubernetes \u0432 GitLab \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432, \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u043e\u0441\u0442\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/nashi-vyvody-za-god-migraczii-gitlab-com-na-kubernetes\" \/>\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-09-24T05:43:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-24T05:43:00+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\udd47Gjetjet tona p\u00ebr nj\u00eb vit migrimi t\u00eb GitLab.com n\u00eb Kubernetes | ProHoster","description":"Sh\u00ebnim. p\u00ebrkthim: adaptimi i Kubernetes n\u00eb GitLab konsiderohet si nj\u00eb nga dy faktor\u00ebt kryesor\u00eb q\u00eb kontribuojn\u00eb n\u00eb rritjen e kompanis\u00eb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/nashi-vyvody-za-god-migraczii-gitlab-com-na-kubernetes","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\u0438 \u0432\u044b\u0432\u043e\u0434\u044b \u0437\u0430 \u0433\u043e\u0434 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 GitLab.com \u043d\u0430 Kubernetes | ProHoster","og:description":"\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044e Kubernetes \u0432 GitLab \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u0434\u0432\u0443\u0445 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u0444\u0430\u043a\u0442\u043e\u0440\u043e\u0432, \u0441\u043f\u043e\u0441\u043e\u0431\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u043e\u0441\u0442\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/nashi-vyvody-za-god-migraczii-gitlab-com-na-kubernetes","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-09-24T05:43:00+00:00","article:modified_time":"2020-09-24T05:43:00+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94977","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-02-28 11:14:45","updated":"2022-10-03 07:39:43","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\/94977","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=94977"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/94977\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/94978"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=94977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=94977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=94977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}