{"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":"Konkluzionet tona pas nj\u00eb viti migrimi t\u00eb GitLab.com n\u00eb Kubernetes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Sh\u00ebn. p\u00ebrkth.<\/b>: 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. Megjithat\u00eb, deri p\u00ebrpara nj\u00eb kohe t\u00eb shkurt\u00ebr, infrastruktura e sh\u00ebrbimit online GitLab.com ishte nd\u00ebrtuar mbi makina virtuale, dhe vet\u00ebm rreth nj\u00eb vit m\u00eb par\u00eb filloi migrimi i saj n\u00eb K8s, q\u00eb ende nuk ka p\u00ebrfunduar. Na vjen mir\u00eb t\u00eb prezantojm\u00eb p\u00ebrkthimin e nj\u00eb artikulli t\u00eb fundit t\u00eb inxhinierit SRE n\u00eb GitLab n\u00eb lidhje me se si po ndodh kjo dhe \u00e7far\u00eb p\u00ebrfundimesh arrijn\u00eb inxhinier\u00ebt q\u00eb marrin pjes\u00eb n\u00eb projekt.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Konkluzionet tona pas nj\u00eb viti migrimi 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, departamenti yn\u00eb i infrastruktur\u00ebs ka qen\u00eb duke migruar t\u00eb gjitha sh\u00ebrbimet q\u00eb punojn\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 edhe me menaxhimin e nj\u00eb implementimi hibrid gjat\u00eb kalimit. Kjo artikulli do t\u00eb flas\u00eb p\u00ebr m\u00ebsimet e \u00e7muara q\u00eb kemi nxjerr\u00eb nga kjo p\u00ebrvoj\u00eb.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Q\u00eb n\u00eb fillim, server\u00ebt e GitLab.com kan\u00eb punuar n\u00eb cloud n\u00eb makina virtuale. K\u00ebto makina virtuale menaxhohen nga Chef, nd\u00ebrsa instalimi i tyre b\u00ebhet me ndihm\u00ebn e <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/install\/#ubuntu\">paketit zyrtar t\u00eb 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 deploy-it<\/a><\/noindex> n\u00eb rast se duhet t\u00eb p\u00ebrdit\u00ebsohet aplikacioni, konsiston n\u00eb p\u00ebrdit\u00ebsimin e parku server\u00ebve n\u00eb m\u00ebnyr\u00eb t\u00eb koordinuar dhe t\u00eb renditur p\u00ebrmes nj\u00eb pipeline CI. Ky metod\u00eb \u2014 ndonj\u00ebher\u00eb e ngadalt\u00eb dhe pak <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/handbook\/values\/#boring-solutions\">e m\u00ebrzitshme<\/a><\/noindex> \u2014 garanton q\u00eb GitLab.com p\u00ebrdor t\u00eb nj\u00ebjtat metoda instalimi dhe konfiguroje si p\u00ebrdoruesit e instalicioneve autonom\u00eb <i>(self-managed)<\/i> t\u00eb GitLab, q\u00eb p\u00ebrdorin p\u00ebr k\u00ebt\u00eb paketat tona Linux.<\/p>\n<p>Ne e p\u00ebrdorim k\u00ebt\u00eb metod\u00eb sepse \u00ebsht\u00eb jasht\u00ebzakonisht e r\u00ebnd\u00ebsishme t\u00eb ndiejm\u00eb t\u00eb gjitha shqet\u00ebsimet dhe g\u00ebzimet q\u00eb p\u00ebrjetojn\u00eb an\u00ebtar\u00ebt e zakonsh\u00ebm t\u00eb komunitetit kur instalojn\u00eb dhe konfigurojn\u00eb kopjet e tyre t\u00eb GitLab. Ky qasje ka qen\u00eb efektive p\u00ebr nj\u00eb koh\u00eb t\u00eb caktuar, megjithat\u00eb, kur numri i projekteve n\u00eb GitLab kaloi 10 milion, kuptuam se ai m\u00eb nuk p\u00ebrmbushte nevojat tona p\u00ebr zgjerim dhe nd\u00ebrrim.<\/p>\n<h2>Hapat e par\u00eb drejt Kubernetes dhe GitLab cloud-native<\/h2>\n<p>\nN\u00eb vitin 2017, u krijua projekti <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/charts\">GitLab Charts<\/a><\/noindex> p\u00ebrgatitjen e GitLab p\u00ebr p\u00ebrdorim n\u00eb re, si dhe p\u00ebr t'u ofruar p\u00ebrdoruesve mund\u00ebsin\u00eb p\u00ebr t\u00eb instaluar GitLab n\u00eb klaster\u00eb Kubernetes. At\u00ebher\u00eb ne e dinim se kalimi i GitLab n\u00eb Kubernetes do t\u00eb rris\u00eb kapacitetin e shkall\u00ebzimit t\u00eb platform\u00ebs SaaS, do ta thjeshtoj\u00eb vendosjen dhe do t\u00eb p\u00ebrmir\u00ebsoj\u00eb 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 ishin t\u00eb varura nga ndarje 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 heq\u00ebm dor\u00eb nga disa var\u00ebsi t\u00eb aplikacionit nga magazinat rrjet, duke vazhduar t\u00eb zhvillojm\u00eb funksione t\u00eb reja. Q\u00eb nga momenti kur filluam t\u00eb planifikojm\u00eb 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 trajton t\u00eb gjith\u00eb trafikun e aplikacionit. P\u00ebr t\u00eb minimizuar kompleksitetin e migrimit (q\u00eb ka qen\u00eb tashm\u00eb mjaft i nd\u00ebrlikuar), ne p\u00ebrqendrohemi te sh\u00ebrbimet q\u00eb nuk varen nga ruajtja lokale ose NFS. GitLab.com p\u00ebrdor kryesisht nj\u00eb baz\u00eb t\u00eb madhe kodesh n\u00eb Rails, dhe ne orientojm\u00eb trafikun n\u00eb var\u00ebsi t\u00eb karakteristikave t\u00eb ngarkes\u00ebs n\u00eb endpoint t\u00eb ndrysh\u00ebm, t\u00eb izoluara n\u00eb grupet e tyre t\u00eb nod\u00ebve.<\/p>\n<p>N\u00eb rastin e frontend-it, k\u00ebto lloje ndahen n\u00eb k\u00ebrkesa p\u00ebr web, API, Git SSH\/HTTPS dhe Registry. N\u00eb rastin e backend-it, ne i ndajm\u00eb pun\u00ebt n\u00eb radh\u00eb sipas karakteristikave t\u00eb ndryshme t\u00eb bazuara n\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>, q\u00eb na lejon t\u00eb vendosim treguesit e nivelit t\u00eb sh\u00ebrbimit (Service-Level Objectives, SLOs) p\u00ebr ngarkesa t\u00eb ndryshme.<\/p>\n<p>T\u00eb gjith\u00eb k\u00ebta sh\u00ebrbime GitLab.com jan\u00eb konfiguruar me nj\u00eb Helm-chart t\u00eb Mt\u00eb pa modifikime. Konfigurimi b\u00ebhet n\u00eb subchart-e, t\u00eb cilat mund t\u00eb p\u00ebrfshihen selektivisht nd\u00ebrsa ne gradualisht kalojm\u00eb sh\u00ebrbimet n\u00eb klaster. Edhe pse \u00ebsht\u00eb vendosur q\u00eb t\u00eb mos p\u00ebrfshihen disa nga sh\u00ebrbimet tona me gjendje, si Redis, Postgres, GitLab Pages dhe Gitaly, p\u00ebrdorimi i Kubernetes lejon nj\u00eb reduktim radikal t\u00eb numrit t\u00eb VM-ve q\u00eb aktualisht menaxhohen nga Chef.<\/p>\n<h2>Transparent\u00ebsia dhe menaxhimi i konfigurimit n\u00eb Kubernetes<\/h2>\n<p>\nT\u00eb gjitha cil\u00ebsimet menaxhohen nga vet\u00eb GitLab. P\u00ebr k\u00ebt\u00eb, p\u00ebrdoren tre projekte konfigurimi t\u00eb bazuara n\u00eb Terraform dhe Helm. Ne p\u00ebrpiqemi t\u00eb p\u00ebrdorim GitLab p\u00ebr t\u00eb drejtuar GitLab vet\u00eb sa m\u00eb shum\u00eb q\u00eb t\u00eb jet\u00eb e mundur, por p\u00ebr detyrat operacionale, ne kemi nj\u00eb instalim t\u00eb ve\u00e7ant\u00eb GitLab. Kjo \u00ebsht\u00eb e nevojshme p\u00ebr t\u00eb mos v\u00ebn\u00eb n\u00eb rrezik disponueshm\u00ebrin\u00eb e GitLab.com gjat\u00eb kryerjes s\u00eb implementimeve dhe p\u00ebrdit\u00ebsimeve.<\/p>\n<p>Megjith\u00ebse pipeline-t tona p\u00ebr klasterin Kubernetes funksionojn\u00eb n\u00eb nj\u00eb instalim t\u00eb ve\u00e7ant\u00eb t\u00eb GitLab-it, repository-t e kodit kan\u00eb pasqyrat, t\u00eb cilat jan\u00eb publikisht t\u00eb aksesueshme 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 lidhja konfiguruese e GitLab.com p\u00ebr chart-in e Helm;<\/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. N\u00eb to p\u00ebrfshihen konfigurimet p\u00ebr regjistrimin dhe monitorimin e klasterit, si dhe p\u00ebr mjetet 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 konfigurimi 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 v\u00ebn\u00eb n\u00eb operim klasterin, p\u00ebrfshir\u00eb vet\u00eb klasterin, grupet e node-ve, llogarit\u00eb e sh\u00ebrbimeve, rezervimin e adresave IP.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Konkluzionet tona pas nj\u00eb viti migrimi 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, shfaqet nj\u00eb <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-com\/gl-infra\/k8s-workloads\/gitlab-com\/-\/merge_requests\/315#note_390180361\"><i>p\u00ebrmbledhje e aksesueshme publikisht<\/i><\/a><\/noindex><i> me nj\u00eb lidhje n\u00eb ndryshimin e detajuar, i cili analizohet nga SRE para se t\u00eb b\u00ebhen ndryshime n\u00eb klaster.<\/i><\/p>\n<p>P\u00ebr SRE, lidhja \u00e7on n\u00eb nj\u00eb diferenc\u00eb t\u00eb detajuar n\u00eb instalimin e GitLab q\u00eb p\u00ebrdoret p\u00ebr operacione, i cili ka qasje t\u00eb kufizuar. Kjo u lejon punonj\u00ebsve dhe komunitetit pa qasje n\u00eb projektin operativ (i cili \u00ebsht\u00eb e hapur vet\u00ebm p\u00ebr SRE) t\u00eb shikojn\u00eb ndryshimet e propozuara n\u00eb konfigurim. Duke kombinuar nj\u00eb instanc\u00eb publike t\u00eb GitLab p\u00ebr kodin me nj\u00eb instanc\u00eb private p\u00ebr CI-pipelina, ruajm\u00eb nj\u00eb proces t\u00eb vet\u00ebm pune, duke garantuar nj\u00ebkoh\u00ebsisht pavar\u00ebsi nga GitLab.com gjat\u00eb p\u00ebrdit\u00ebsimeve t\u00eb konfigurimit.<\/p>\n<h2>\u00c7far\u00eb kemi zbuluar gjat\u00eb migrimit<\/h2>\n<p>\nGjat\u00eb procesit t\u00eb zhvendosjes, \u00ebsht\u00eb akumuluar p\u00ebrvoja q\u00eb e aplikojm\u00eb n\u00eb migrimet dhe shp\u00ebrndarjet 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=\"Konkluzionet tona pas nj\u00eb viti migrimi 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-it (byte n\u00eb dit\u00eb) p\u00ebr grupin e depozitave Git n\u00eb GitLab.com<\/i><\/p>\n<p>Google ndan nj\u00eb rrjet t\u00eb tij n\u00eb rajone. Ato, nga ana tjet\u00ebr, ndahen n\u00eb zona aksesibiliteti (AZ). Git-hosting lidhet me volume t\u00eb m\u00ebdha t\u00eb dh\u00ebnash, prandaj \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb kontrollojm\u00eb egress-in rrjetor. N\u00eb rastin e trafikut t\u00eb brendsh\u00ebm, egress \u00ebsht\u00eb falas vet\u00ebm n\u00ebse mbetet brenda kufijve t\u00eb nj\u00eb zone aksesibiliteti. N\u00eb momentin e shkruar t\u00eb k\u00ebtij artikulli, ne transferojm\u00eb rreth 100 TB t\u00eb dh\u00ebnash n\u00eb nj\u00eb dit\u00eb mesatare pune (dhe kjo \u00ebsht\u00eb vet\u00ebm p\u00ebr Git-repozitor\u00ebt). Sh\u00ebrbimet, t\u00eb cilat n\u00eb topologjin\u00eb ton\u00eb t\u00eb vjet\u00ebr, t\u00eb bazuar n\u00eb VM, ndodheshin n\u00eb t\u00eb nj\u00ebjtat makineri virtuale, tani funksionojn\u00eb n\u00eb pod-e 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 dal\u00eb jasht\u00eb zonave t\u00eb aksesibilitetit.<\/p>\n<p>Klaster\u00ebt rajonal\u00eb GKE lejojn\u00eb mbulimin e disa zonave t\u00eb aksesibilitetit 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 klasterin rajonal GKE n\u00eb klaster\u00eb nj\u00ebzonor\u00eb<\/a><\/noindex> p\u00ebr sh\u00ebrbimet q\u00eb gjenerojn\u00eb volume t\u00eb m\u00ebdha trafiku. Kjo do t\u00eb ul\u00eb shpenzimet p\u00ebr egress duke mbajtur rezervimin n\u00eb nivel klasteri.<\/p>\n<h3>2. Limit\u00ebt, k\u00ebrkesat e burimeve dhe shkall\u00ebzimi<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Konkluzionet tona pas nj\u00eb viti migrimi 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 kopjeve q\u00eb p\u00ebrpunojn\u00eb trafikun e prodhimit n\u00eb registry.gitlab.com. Trafiku arrin kulmin n\u00eb ~15:00 UTC.<\/i><\/p>\n<p>Historia jon\u00eb e migrimit filloi n\u00eb gusht t\u00eb vitit 2019, kur ne transferuam sh\u00ebrbimin e par\u00eb - regjistrin e konteiner\u00ebve GitLab (GitLab Container Registry) - 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\u00ebrfaq\u00ebson nj\u00eb aplikacion stateless me pak var\u00ebsi ekstern. Problemi i par\u00eb me t\u00eb cilin u ballafaquam ishte numri i madh i pod-eve t\u00eb d\u00ebbuara p\u00ebr shkak t\u00eb munges\u00ebs s\u00eb memories n\u00eb nyje. P\u00ebr k\u00ebt\u00eb, na duhej t\u00eb ndryshonim k\u00ebrkesat dhe limit\u00ebt.<\/p>\n<p>U zbulua se n\u00eb rastin e nj\u00eb aplikacioni, ku konsumimi i memories rritet me kalimin e koh\u00ebs, vlerat e ul\u00ebta p\u00ebr k\u00ebrkesat (rezervimi i memories p\u00ebr \u00e7do pod) s\u00eb bashku me nj\u00eb limit t\u00eb \u2018bujsh\u00ebm\u2019 p\u00ebr p\u00ebrdorim, \u00e7onin n\u00eb ngopje. <i>(saturation)<\/i> t\u00eb nyjeve dhe nj\u00eb nivel t\u00eb lart\u00eb t\u00eb d\u00ebbimeve. P\u00ebr t\u00eb p\u00ebrballuar 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 limit\u00ebt.<\/a><\/noindex>. Kjo reduktoi presionin mbi nyjet dhe siguroi nj\u00eb cik\u00ebl jet\u00ebsor t\u00eb pod-eve q\u00eb nuk ushtroi presion t\u00eb tepruar mbi nyjen. Tani ne fillojm\u00eb migrimet me vlera t\u00eb bujshme (dhe pothuajse t\u00eb nj\u00ebjta) k\u00ebrkesash dhe limit\u00ebsh, duke i korrigjuar ato sipas nevoj\u00ebs.<\/p>\n<h3>3. Metrika dhe regjistrat<\/h3>\n<p>\n<img decoding=\"async\" alt=\"Konkluzionet tona pas nj\u00eb viti migrimi 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 fokusohet n\u00eb vonesat, p\u00ebrqindjen e gabimeve dhe saturimin me q\u00ebllimet e vendosura <\/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 pun\u00ebn me SLO. SLO na lejuan t\u00eb vendosim q\u00ebllime p\u00ebr sh\u00ebrbime t\u00eb ve\u00e7anta, t\u00eb cilat ne i ndjekim me kujdes gjat\u00eb migrimit. Por edhe me nj\u00eb p\u00ebrmir\u00ebsim t\u00eb till\u00eb n\u00eb v\u00ebzhgim, nuk \u00ebsht\u00eb gjithmon\u00eb e mundur t\u00eb shohim menj\u00ebher\u00eb problemet, duke p\u00ebrdorur metrikat dhe alarmin. P\u00ebr shembull, duke u fokusuar n\u00eb vonesat dhe p\u00ebrqindjen e gabimeve, ne nuk e p\u00ebrfshijm\u00eb plot\u00ebsisht t\u00eb gjitha skenar\u00ebt e p\u00ebrdorimit t\u00eb sh\u00ebrbimit q\u00eb \u00ebsht\u00eb n\u00eb migrim.<\/p>\n<p>Ky problem u zbulua pothuajse menj\u00ebher\u00eb pas transferimit t\u00eb nj\u00eb pjese t\u00eb ngarkesave n\u00eb klaster. Ai u shfaq ve\u00e7an\u00ebrisht kur duhej t\u00eb kontrolloheshin funksionet p\u00ebr t\u00eb cilat numri i k\u00ebrkesave \u00ebsht\u00eb i vog\u00ebl, por q\u00eb kan\u00eb var\u00ebsi konfigurimesh shum\u00eb specifike. Nj\u00eb nga m\u00ebsimet e r\u00ebnd\u00ebsishme nga migrimi ishte nevoja p\u00ebr t\u00eb marr\u00eb parasysh gjat\u00eb monitorimit jo vet\u00ebm metrikat, por edhe regjistrat dhe \"bishtin e gjat\u00eb\" <i>(n\u00eb nj\u00eb kuptim t\u00eb shp\u00ebrndarjes s\u00eb till\u00eb <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Long_tail\"><i>n\u00eb grafik - sh\u00ebn. p\u00ebrkth.<\/i><\/a><\/noindex><i> t\u00eb gabimeve. Tani p\u00ebr \u00e7do migrim ne p\u00ebrfshijm\u00eb nj\u00eb list\u00eb t\u00eb detajuar t\u00eb k\u00ebrkesave p\u00ebr regjistra<\/i> (log queries) <i>dhe planifikojm\u00eb procedura t\u00eb qarta rikthimi, t\u00eb cilat n\u00eb rast se ndodhin probleme, mund t\u00eb kalojn\u00eb nga nj\u00eb nd\u00ebrrim n\u00eb tjetrin.<\/i> Sh\u00ebrbimi paralel i t\u00eb nj\u00ebjtave k\u00ebrkesa n\u00eb infrastruktur\u00ebn e vjet\u00ebr VM dhe n\u00eb t\u00eb re, e bazuar n\u00eb Kubernetes, p\u00ebrb\u00ebnte nj\u00eb sfid\u00eb unike. Ndryshe nga migrimi i tipit lift-and-shift<\/p>\n<p>(transfer 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>\u2013 sh\u00ebn. p\u00ebrkth.) <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/www.ibm.com\/cloud\/learn\/lift-and-shift\"><i>k\u00ebtu<\/i><\/a><\/noindex><i> \u2014 sh\u00ebn. p\u00ebrkth.)<\/i>, puna e pun\u00ebs paralel me VM-t\u00eb e \"vjetra\" dhe Kubernetes k\u00ebrkon q\u00eb mjetet p\u00ebr monitorim t\u00eb jen\u00eb t\u00eb pajtueshme me t\u00eb dyja mjediset dhe t\u00eb jen\u00eb n\u00eb gjendje t\u00eb bashkojn\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 dhe k\u00ebrkesa p\u00ebr log-et, p\u00ebr t\u00eb arritur nj\u00eb v\u00ebzhgim t\u00eb konsoliduar gjat\u00eb periudh\u00ebs s\u00eb kalimit.<\/p>\n<h3>4. Kalimi i trafikut n\u00eb klasterin e ri<\/h3>\n<p>\nP\u00ebr GitLab.com, nj\u00eb pjes\u00eb e server\u00ebve i dedikohet <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/handbook\/engineering\/#canary-testing\">faz\u00ebs kanarin\u00eb (canary)<\/a><\/noindex>. Parku kanarin\u00eb sh\u00ebrben p\u00ebr projektet tona t\u00eb brendshme, si dhe mund <noindex><a rel=\"nofollow\" href=\"https:\/\/next.gitlab.com\/\">t\u00eb aktivizohet nga p\u00ebrdoruesit<\/a><\/noindex>. Por, n\u00eb radh\u00eb t\u00eb par\u00eb ai \u00ebsht\u00eb i destinuar p\u00ebr t\u00eb verifikuar ndryshimet e b\u00ebra n\u00eb infrastruktur\u00eb dhe aplikacion. Sh\u00ebrbimi i par\u00eb i migruar filloi me pranimin e nj\u00eb volume t\u00eb kufizuar t\u00eb trafikut t\u00eb brendsh\u00ebm, dhe ne vazhdojm\u00eb t\u00eb 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 klaster.<\/p>\n<p>N\u00eb rastin e migrimit, kjo do t\u00eb thot\u00eb q\u00eb fillimisht k\u00ebrkesat p\u00ebr projektet e brendshme drejtohen n\u00eb Kubernetes, dhe pastaj ne gradualisht kalojm\u00eb trafikun e mbetur n\u00eb klaster duke ndryshuar pesh\u00ebn p\u00ebr backendin p\u00ebrmes HAProxy. Gjat\u00eb kalimit nga VM n\u00eb Kubernetes u b\u00eb e qart\u00eb se ishte shum\u00eb e dobishme t\u00eb kishim nj\u00eb m\u00ebnyr\u00eb t\u00eb thjesht\u00eb p\u00ebr t\u00eb drejtuar trafikun mes infrastruktur\u00ebs s\u00eb vjet\u00ebr dhe t\u00eb re, dhe p\u00ebrkat\u00ebsisht, t\u00eb mbajm\u00eb infrastruktur\u00ebn e vjet\u00ebr gati p\u00ebr nj\u00eb rikthim n\u00eb dit\u00ebt e para pas migrimit.<\/p>\n<h3>5. Kapacitetet rezerv\u00eb t\u00eb pod-eve dhe p\u00ebrdorimi i tyre<\/h3>\n<p>\nGati menj\u00ebher\u00eb u identifikua problemi i ardhsh\u00ebm: pod-et p\u00ebr sh\u00ebrbimin Registry filluan shpejt, megjithat\u00eb nisja e pod-eve p\u00ebr Sidekiq merrte deri n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/charts\/gitlab\/-\/issues\/1775\">dy minuta<\/a><\/noindex>. Nisja e zgjatur e pod-eve p\u00ebr Sidekiq u b\u00eb nj\u00eb problem kur filluam migrimin e ngarkesave t\u00eb pun\u00ebs n\u00eb Kubernetes p\u00ebr pun\u00ebtor\u00ebt q\u00eb duan t\u00eb procesojn\u00eb shpejt job-e dhe t\u00eb shkall\u00ebzohen shpejt.<\/p>\n<p>N\u00eb k\u00ebt\u00eb rast, m\u00ebsimi ishte se, megjith\u00ebse Horizontal Pod Autoscaler (HPA) n\u00eb Kubernetes i menaxhon mir\u00eb rritjen e trafikut, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb merret parasysh karakteristikat e ngarkesave t\u00eb pun\u00ebs dhe t\u00eb siguroni kapacitete rezerv\u00eb p\u00ebr pod-\u00ebt (sidomos n\u00eb kushtet e shp\u00ebrndarjes jo t\u00eb barabart\u00eb t\u00eb k\u00ebrkes\u00ebs). N\u00eb rastin ton\u00eb, kishte nj\u00eb shp\u00ebrthim t\u00eb papritur t\u00eb pun\u00ebve, q\u00eb i jepte impuls nj\u00eb shkall\u00ebzimi t\u00eb shpejt\u00eb, duke \u00e7uar n\u00eb saturimin e burimeve CPU para se t\u00eb arrinim t\u00eb shkall\u00ebzonim grupin e nod\u00ebve.<\/p>\n<p>Ka gjithmon\u00eb tundimin p\u00ebr t\u00eb nxjerr\u00eb sa m\u00eb shum\u00eb \"shpirt\" nga klasteri, megjithat\u00eb, pasi e p\u00ebrball\u00ebm fillimisht me probleme n\u00eb performanc\u00eb, tani fillojm\u00eb me nj\u00eb buxhet t\u00eb p\u00ebrgj generous pod-\u00ebsh dhe e paksojm\u00eb at\u00eb m\u00eb von\u00eb, duke e monitoruar ngusht\u00eb SLO-n\u00eb. Aktivizimi i pod-\u00ebve p\u00ebr sh\u00ebrbimin Sidekiq \u00ebsht\u00eb p\u00ebrshpejtuar ndjesh\u00ebm dhe tani zgjat rreth 40 sekonda n\u00eb mesatare. <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/charts\/gitlab\/-\/issues\/1775\">Nga shkurtimi i koh\u00ebs s\u00eb aktivizimit t\u00eb pod-\u00ebve<\/a><\/noindex> fituan si GitLab.com, ashtu edhe p\u00ebrdoruesit tan\u00eb t\u00eb instalimeve self-managed, q\u00eb punojn\u00eb me Helm chartin zyrtar t\u00eb GitLab.<\/p>\n<h2>P\u00ebrfundim<\/h2>\n<p>\nPasi transferuam \u00e7do sh\u00ebrbim, ne g\u00ebzuam p\u00ebrfitimet e p\u00ebrdorimit t\u00eb Kubernetes n\u00eb prodhim: nj\u00eb deploy m\u00eb t\u00eb shpejt\u00eb dhe m\u00eb t\u00eb sigurt t\u00eb aplikacionit, p\u00ebrmasim dhe nj\u00eb shp\u00ebrndarje m\u00eb efektive t\u00eb burimeve. P\u00ebr m\u00eb tep\u00ebr, p\u00ebrfitimet e migrimit shkojn\u00eb p\u00ebrtej sh\u00ebrbimit GitLab.com. \u00c7do p\u00ebrmir\u00ebsim n\u00eb chartin zyrtar t\u00eb Helm p\u00ebrfiton edhe p\u00ebrdoruesit e tij.<\/p>\n<p>Shpresoj t'ju ket\u00eb p\u00eblqyer historia mbi aventurat tona me migrimin n\u00eb Kubernetes. Ne vazhdojm\u00eb t\u00eb transferojm\u00eb gjithnj\u00eb e m\u00eb shum\u00eb sh\u00ebrbime n\u00eb klaster. Informacione shtes\u00eb mund t\u00eb merrni nga 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\">Epick 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 vjet 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 gabimet tipike gjat\u00eb p\u00ebrdorimit t\u00eb Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/335814\/\">Histori suksesi 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.2 - 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.2\" \/>\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\udd47P\u00ebrfundimet tona pas nj\u00eb viti migrimi t\u00eb GitLab.com n\u00eb Kubernetes | ProHoster","description":"Sh\u00ebn. red.: adaptimi i Kubernetes n\u00eb GitLab konsiderohet 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}]}}