{"id":34825,"date":"2019-10-31T22:00:35","date_gmt":"2019-10-31T19:00:35","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah\/"},"modified":"2019-10-31T22:00:35","modified_gmt":"2019-10-31T19:00:35","slug":"kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","title":{"rendered":"K\u0101 savienot Kubernetes klasterus da\u017e\u0101d\u0101s datu centros","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"K\u0101 savienot Kubernetes klasterus da\u017e\u0101d\u0101s datu centros\" src=\"\/wp-content\/uploads\/2019\/06\/fa408b406e31840857bbbe13e1d7ee5a.JPG\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<strong>Laipni l\u016bdzam Kubernetes \u012bso rokasgr\u0101matu s\u0113rij\u0101.<\/strong> \u0160\u012b ir regul\u0101ra kolonna ar interesant\u0101kajiem jaut\u0101jumiem, kurus sa\u0146emam tie\u0161saist\u0113 un m\u016bsu apm\u0101c\u012bb\u0101s. Atbild eksperts par Kubernetes.<\/p>\n<p><\/p>\n<blockquote><p>\u0160odienas eksperts ir Dani\u0113ls Polen\u010diks (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/danielepolencic\">Daniele Polencic<\/a><\/noindex>). Dani\u0113ls str\u0101d\u0101 k\u0101 instruktors un programmat\u016bras izstr\u0101d\u0113t\u0101js uz\u0146\u0113mum\u0101 <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/\">Learnk8s<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Ja v\u0113laties sa\u0146emt atbildi uz savu jaut\u0101jumu n\u0101kamaj\u0101 rakst\u0101, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">sazinieties ar mums, izmantojot e-pastu<\/a><\/noindex> vai uz <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/learnk8s\">Twitter: @learnk8s<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Palaid\u0101t iepriek\u0161\u0113jos rakstus? <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/visualise-dependencies-kubernetes\">Mekl\u0113jiet tos \u0161eit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"kak-soedinit-klastery-kubernetes-v-raznyh-data-centrah\">K\u0101 savienot Kubernetes klasterus da\u017e\u0101d\u0101s datu centr\u0101?<\/h3>\n<p><\/p>\n<blockquote><p><strong>\u012asi<\/strong>: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">dr\u012bzum\u0101 izn\u0101ks Kubefed v2<\/a><\/noindex>, un v\u0113l es iesaku izlas\u012bt par <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> un <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">multi-cluster-scheduler projekt\u0101.<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Sal\u012bdzino\u0161i bie\u017ei infrastrukt\u016bra tiek replik\u0113ta un izplat\u012bta da\u017e\u0101dos re\u0123ionos, \u012bpa\u0161i kontrol\u0113t\u0101s vid\u0113s.<\/p><\/blockquote>\n<p><strong>Ja viens re\u0123ions nav pieejams, datpl\u016bsma tiek novirz\u012bta uz citu, lai izvair\u012btos no trauc\u0113jumiem.<\/strong><\/p>\n<p><\/p>\n<p>Kubernetes var izmantot l\u012bdz\u012bgu strat\u0113\u0123iju un izplat\u012bt darba slodzes pa da\u017e\u0101diem re\u0123ioniem.<\/p>\n<p><\/p>\n<p>Jums var b\u016bt viens vai vair\u0101ki klasteri uz komandu, re\u0123ionu, vidi vai \u0161o elementu kombin\u0101ciju.<\/p>\n<p><\/p>\n<p>J\u016bsu klasteri var atrasties da\u017e\u0101d\u0101s m\u0101kon\u012b un lok\u0101laj\u0101 vid\u0113.<\/p>\n<p><\/p>\n<p><em>Bet k\u0101 pl\u0101not infrastrukt\u016bru \u0161\u0101dam \u0123eogr\u0101fiskam izklied\u0113jumam?<br \/>\nVai j\u0101izveido viens liels klasteris vair\u0101k\u0101m m\u0101ko\u0146u vid\u0113m pa vienotu t\u012bklu?<br \/>\nVai j\u0101pievieno daudzi mazi klasteri un j\u0101atrod veids, k\u0101 tos kontrol\u0113t un sinhroniz\u0113t?<\/em><\/p>\n<p><\/p>\n<h3 id=\"odin-rukovodyaschiy-klaster\">Viens vad\u012bbas klasteris<\/h3>\n<p><\/p>\n<p><em>Izveidot vienu klasteri pa vienotu t\u012bklu nav tik viegli.<\/em><\/p>\n<p><\/p>\n<p>Iedom\u0101jieties, ka jums ir av\u0101rija, un ir zaud\u0113ta savienojam\u012bba starp klastera segmentiem.<\/p>\n<p><\/p>\n<p>Ja jums ir viens galvenais serveris, puse resursu nevar\u0113s sa\u0146emt jaunas komandas, jo t\u0101s nevar\u0113s sazin\u0101ties ar galveno serveri.<\/p>\n<p><\/p>\n<p>Un \u0161aj\u0101 br\u012bd\u012b jums ir vecas mar\u0161rut\u0113\u0161anas tabulas (<code>kube-proxy<\/code> nav iesp\u0113jams iel\u0101d\u0113t jaunas) un nek\u0101du papildu podu (kubelet nevar piepras\u012bt atjaunin\u0101jumus).<\/p>\n<p><\/p>\n<p>Kas v\u0113l slikt\u0101k, ja Kubernetes neredz mezglu, tas to atz\u012bm\u0113 k\u0101 zaud\u0113tu un izplata tr\u016bksto\u0161os podus eso\u0161ajos mezglos.<\/p>\n<p><\/p>\n<p><strong>Rezult\u0101t\u0101 podu skaits jums b\u016bs divreiz liel\u0101ks.<\/strong><\/p>\n<p><\/p>\n<p>Ja katram re\u0123ionam izveidosiet vienu galveno serveri, b\u016bs probl\u0113mas ar konsensa algoritmu datu b\u0101z\u0113 etcd. (<em>piez\u012bme red. \u2014 Paties\u012bb\u0101 etcd datub\u0101ze nav oblig\u0101ti j\u0101atrodas uz master serveriem. To var palaist uz atsevi\u0161\u0137as serveru grupas vien\u0101 re\u0123ion\u0101. Ta\u010du tas rad\u012btu klastera k\u013c\u016bmes punktu. Toties \u0101tri.<\/em>)<\/p>\n<p><\/p>\n<p>etcd izmanto <noindex><a rel=\"nofollow\" href=\"http:\/\/thesecretlivesofdata.com\/raft\/\">raft algoritmu<\/a><\/noindex>, lai saska\u0146otu v\u0113rt\u012bbu pirms t\u0101s ierakst\u012b\u0161anas disk\u0101.<br \/>\nTas noz\u012bm\u0113, ka liel\u0101kajai da\u013cai eksempl\u0101ru j\u0101pan\u0101k konsenss, pirms st\u0101vokli var ierakst\u012bt etdc.<\/p>\n<p><\/p>\n<p>Ja aizture starp etdc eksempl\u0101riem pak\u0101peniski pieaug, k\u0101 tas ir ar trim etdc eksempl\u0101riem da\u017e\u0101dos re\u0123ionos, ir nepiecie\u0161ams daudz laika, lai saska\u0146otu v\u0113rt\u012bbu un ierakst\u012btu to disk\u0101.<br \/>\nTas ietekm\u0113 ar\u012b Kubernetes kontrolierus.<\/p>\n<p><\/p>\n<p>Kontrolieru mened\u017eerim nepiecie\u0161ams vair\u0101k laika, lai uzzin\u0101tu par izmai\u0146\u0101m un ierakst\u012btu atbildi datub\u0101z\u0113.<\/p>\n<p><\/p>\n<p>Un, ja kontrolieru ir vair\u0101ki, <strong>tiek rad\u012bta \u0137\u0113des reakcija, un viss klasteris s\u0101k darboties \u013coti l\u0113ni.<\/strong>.<\/p>\n<p><\/p>\n<p>etcd ir tik jut\u012bgs pret aizturi, ka <noindex><a rel=\"nofollow\" href=\"https:\/\/coreos.com\/etcd\/docs\/latest\/faq.html#deployment\">ofici\u0101laj\u0101 dokument\u0101cij\u0101 ieteicams izmantot SSD diskus, nevis parastos cietos diskus.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Pa\u0161laik nav labu piem\u0113ru liels t\u012bklam vienam klasterim.<\/strong><\/p>\n<p><\/p>\n<p>Galvenok\u0101rt izstr\u0101d\u0101t\u0101ju kopiena un SIG-cluster grupa cen\u0161as saprast, k\u0101 or\u0137estr\u0113t klasterus t\u0101pat k\u0101 Kubernetes or\u0137estr\u0113 konteinerus.<\/p>\n<p><\/p>\n<h3 id=\"variant-1-federaciya-klasterov-s-kubefed\">1. variants: klasteru feder\u0101cija ar kubefed<\/h3>\n<p><\/p>\n<p>Ofici\u0101l\u0101 atbilde no SIG-cluster \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">kubefed2, jaun\u0101 versija avota klientam un kube feder\u0101cijas operatoram.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Pirmo reizi p\u0101rvald\u012bt klasteru kopumu k\u0101 vienu objektu m\u0113\u0123in\u0101ja ar kube feder\u0101cijas r\u012bku.<\/p>\n<p><\/p>\n<p>S\u0101kums bija labs, bet galu gal\u0101 kube feder\u0101cija t\u0101 ar\u012b nek\u013cuva popul\u0101ra, jo neatbalst\u012bja visus resursus.<\/p>\n<p><\/p>\n<p>Tas atbalst\u012bja apvienot\u0101 pied\u0101v\u0101juma un pakalpojumu funkciju, ta\u010du, piem\u0113ram, ne StatefulSets.<br \/>\nUn ar\u012b feder\u0101cijas konfigur\u0101cija tika nodota k\u0101 anot\u0101cijas, un tai nebija elast\u012bbas.<\/p>\n<p><\/p>\n<p><em>Iedom\u0101jieties, k\u0101 var\u0113tu aprakst\u012bt replik\u0101ciju katram klasterim feder\u0101cij\u0101 ar vien\u0101m anot\u0101cij\u0101m.<\/em><\/p>\n<p><\/p>\n<p><strong>Tas izveidoja piln\u012bgu haosu.<\/strong><\/p>\n<p><\/p>\n<p>SIG-cluster veica lielu darbu p\u0113c kubefed v1 un nol\u0113ma piev\u0113rsties probl\u0113mai no cita skatpunkta.<\/p>\n<p><\/p>\n<p><strong>T\u0101 viet\u0101, lai izmantotu anot\u0101cijas, vi\u0146i nol\u0113ma izlaist kontrolieri, kur\u0161 tiek uzst\u0101d\u012bts klasteros. To var konfigur\u0113t, izmantojot piel\u0101gotus resursu defin\u012bcijas (Custom Resource Definition, CRD).<\/strong><\/p>\n<p><\/p>\n<p>Katram resursam, kas b\u016bs feder\u0101cijas sast\u0101vda\u013ca, jums ir piel\u0101gota CRD defin\u012bcija tr\u012bs sada\u013c\u0101s:<\/p>\n<p><\/p>\n<ul>\n<li>standarta resursa defin\u012bcija, piem\u0113ram, izvietojums;<\/li>\n<li>sada\u013c\u0101 <code>novietojums<\/code>, kur j\u016bs nosak\u0101t, k\u0101 resurss tiks sadal\u012bts feder\u0101cij\u0101;<\/li>\n<li>sada\u013c\u0101 <code>p\u0101rrakst\u012b\u0161ana<\/code>, kur konkr\u0113tam resursam var p\u0101rrakst\u012bt svarus un parametrus no novietojuma.<\/li>\n<\/ul>\n<p><\/p>\n<p>\u0160eit ir piem\u0113rs apvienot\u0101s pieg\u0101des ar sada\u013c\u0101m novietojuma un p\u0101rrakst\u012b\u0161anas.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">apiVersion: types.federation.k8s.io\/v1alpha1\nkind: FederatedDeployment\nmetadata:\n  name: test-deployment\n  namespace: test-namespace\nspec:\n  template:\n    metadata:\n      labels:\n        app: nginx\n    spec:\n      replicas: 3\n      selector:\n        matchLabels:\n          app: nginx\n      template:\n        metadata:\n          labels:\n            app: nginx\n        spec:\n          containers:\n            - image: nginx\n              name: nginx\n  placement:\n    clusterNames:\n      - cluster2\n      - cluster1\n  overrides:\n    - clusterName: cluster2\n      clusterOverrides:\n        - path: spec.replicas\n          value: 5<\/code><\/pre>\n<p><\/p>\n<p>K\u0101 redzat, pieg\u0101de ir sadal\u012bta starp diviem klastiem: <code>cluster1<\/code> un <code>cluster2<\/code>.<\/p>\n<p><\/p>\n<p>Pirmais klasteris pieg\u0101d\u0101 tr\u012bs replikas, bet otrajam nor\u0101d\u012bta v\u0113rt\u012bba 5.<\/p>\n<p><\/p>\n<p>Ja jums nepiecie\u0161ama liel\u0101ka kontrole p\u0101r replik\u0101m, kubefed2 sniedz jaunu objektu ReplicaSchedulingPreference, kur replikas var sadal\u012bt p\u0113c svara:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">apiVersion: scheduling.federation.k8s.io\/v1alpha1\nkind: ReplicaSchedulingPreference\nmetadata:\n  name: test-deployment\n  namespace: test-ns\nspec:\n  targetKind: FederatedDeployment\n  totalReplicas: 9\n  clusters:\n    A:\n      weight: 1\n    B:\n      weight: 2<\/code><\/pre>\n<p><\/p>\n<p>CRD un API strukt\u016bra v\u0113l nav piln\u012bb\u0101 gatava, un ofici\u0101laj\u0101 projekta repozitorij\u0101 tiek akt\u012bvi str\u0101d\u0101ts.<\/p>\n<p><\/p>\n<p><strong>Sekojiet l\u012bdzi kubefed2, bet atcerieties, ka tas pa\u0161laik nav piem\u0113rots ra\u017eo\u0161anas videi.<\/strong><\/p>\n<p><\/p>\n<p>Uzziniet vair\u0101k par kubefed2 no <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/12\/12\/kubernetes-federation-evolution\/\">ofici\u0101l\u0101s kubefed2 raksta<\/a><\/noindex> Kubernetes emu\u0101r\u0101 un <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">ofici\u0101l\u0101 kubefed projekta repozitorija<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-2-obedinenie-klasterov-v-stile-bookingcom\">Varianta 2: klasteru apvieno\u0161ana Booking.com stil\u0101<\/h3>\n<p><\/p>\n<p>Booking.com izstr\u0101d\u0101t\u0101ji nenodarboj\u0101s ar kubefed v2, ta\u010du izstr\u0101d\u0101ja Shipper \u2014 operatoru pieg\u0101d\u0113m vair\u0101ku klasteru, re\u0123ionu un m\u0101ko\u0146u ietvaros.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> da\u013c\u0113ji l\u012bdz\u012bgs kubefed2.<\/p>\n<p><\/p>\n<p>Abi r\u012bki \u013cauj konfigur\u0113t izvieto\u0161anas strat\u0113\u0123iju vair\u0101ku klasteru ietvaros (kuri klasteri tiek izmantoti un cik tos ir replikas).<\/p>\n<p><\/p>\n<p>Bet <strong>Shipper uzdevums ir samazin\u0101t k\u013c\u016bdu risku pieg\u0101d\u0113.<\/strong><\/p>\n<p><\/p>\n<p>Shipper var defin\u0113t virkni so\u013cu, kas apraksta replik\u0101ciju sadal\u012bjumu starp iepriek\u0161\u0113jo un pa\u0161reiz\u0113jo izvietojumu un ien\u0101ko\u0161\u0101 dat pl\u016bsmu.<\/p>\n<p><\/p>\n<p>Kad nos\u016bt\u0101t resursu klaster\u012b, Shipper kontrolieris pak\u0101peniski ieviests \u0161o izmai\u0146u visos apvienotajos klasteros.<\/p>\n<p><\/p>\n<p><em>Un v\u0113l Shipper ir \u013coti ierobe\u017eots.<\/em><\/p>\n<p><\/p>\n<p>Piem\u0113ram, <strong>tas pie\u0146em Helm sh\u0113mas k\u0101 ievades datus.<\/strong> un un atbalsta vanilla resursus.<br \/>\nVisp\u0101r\u012bgi run\u0101jot, Shipper darbojas \u0161\u0101di.<\/p>\n<p><\/p>\n<p>Viet\u0101 standarta pieg\u0101des j\u0101izveido lietojumprogrammas resurss, kas ietver Helm-chart:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">apiVersion: shipper.booking.com\/v1alpha1\nkind: Application\nmetadata:\n  name: super-server\nspec:\n  revisionHistoryLimit: 3\n  template:\n    chart:\n      name: nginx\n      repoUrl: https:\/\/storage.googleapis.com\/shipper-demo\n      version: 0.0.1\n    clusterRequirements:\n      regions:\n        - name: local\n    strategy:\n      steps:\n        - capacity:\n            contender: 1\n            incumbent: 100\n          name: staging\n          traffic:\n            contender: 0\n            incumbent: 100\n        - capacity:\n            contender: 100\n            incumbent: 0\n          name: full on\n          traffic:\n            contender: 100\n            incumbent: 0\n    values:\n      replicaCount: 3<\/code><\/pre>\n<p><\/p>\n<p><strong>Shipper ir labs variants vair\u0101ku klasteru p\u0101rvald\u012bbai, bet t\u0101 cie\u0161\u0101 saist\u012bba ar Helm tikai trauc\u0113.<\/strong><\/p>\n<p><\/p>\n<p><em>Un, ja m\u0113s visi p\u0101rie\u0161am no Helm uz <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/05\/29\/introducing-kustomize-template-free-configuration-customization-for-kubernetes\/\">Vienk\u0101r\u0161a kustomization faila izmanto\u0161ana<\/a><\/noindex> vai <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deepmind\/kapitan\">kapitan<\/a><\/noindex>?<\/em><\/p>\n<p><\/p>\n<p>Uzziniet vair\u0101k par Shipper un t\u0101 filozofiju <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/booking-com-infrastructure\/introducing-shipper-daf9244e3882\">\u0161aj\u0101 ofici\u0101laj\u0101 preses rel\u012bz\u0113<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Ja v\u0113laties p\u0113t\u012bt kodu, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">dodieties uz ofici\u0101lo projekta repozitoriju<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-3-magicheskoe-obedinenie-klasterov\">Variant 3: &#171;ma\u0123isk\u0101&#187; klasteru apvieno\u0161ana<\/h3>\n<p><\/p>\n<p>Kubefed v2 un Shipper darbojas ar klasteru feder\u0101ciju, nodro\u0161inot klasteriem jaunus resursus, izmantojot lietot\u0101ja defin\u0113tos resursus.<\/p>\n<p><\/p>\n<p><em>Bet, ja j\u016bs nev\u0113laties p\u0101rrakst\u012bt visas pieg\u0101des, StatefulSets, DaemonSets utt. apvieno\u0161anai?<\/em><\/p>\n<p><\/p>\n<p><em>K\u0101 iek\u013caut eso\u0161o klasteri feder\u0101cij\u0101, nemainot YAML?<\/em><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">multi-cluster-scheduler ir Admirality projekts<\/a><\/noindex>, kas nodarbojas ar slodzes pl\u0101no\u0161anu klasteros.<\/p>\n<p><\/p>\n<p>Bet, nevis izdom\u0101t jaunu veidu, k\u0101 mijiedarboties ar klasteri un iesai\u0146ot resursus lietot\u0101ja defin\u012bcij\u0101s, multi-cluster-scheduler integr\u0113jas standarta Kubernetes dz\u012bves cikl\u0101 un p\u0101r\u0146em visus izsaukumus, kas izveido podus.<\/p>\n<p><\/p>\n<p><strong>Katrs izveidotais pods nekav\u0113joties tiek aizst\u0101ts ar tuk\u0161u podu.<\/strong><\/p>\n<p><\/p>\n<blockquote><p>multi-cluster-scheduler izmanto <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/extensible-admission-controllers\/\">web-hookus, lai modific\u0113tu piek\u013cuvi<\/a><\/noindex>, lai p\u0101r\u0146emtu izsaukumu un izveidotu neakt\u012bvu podu - tuk\u0161u podu.<\/p><\/blockquote>\n<p>Izcelsmes pods iziet v\u0113l vienu pl\u0101no\u0161anas ciklu, kur p\u0113c visas feder\u0101cijas apseko\u0161anas tiek pie\u0146emts l\u0113mums par izvietojumu.<\/p>\n<p><\/p>\n<p>Visbeidzot, pods tiek pieg\u0101d\u0101ts m\u0113r\u0137a klasterim.<\/p>\n<p><\/p>\n<p>Galu gal\u0101 jums ir lieks pods, kas neko nedara, tikai aiz\u0146em vietu.<\/p>\n<p><\/p>\n<p>Priek\u0161roc\u012bba ir t\u0101da, ka jums nebija j\u0101raksta jauni resursi pieg\u0101des apvieno\u0161anai.<\/p>\n<p><\/p>\n<p><strong>Katrs resurss, kas izveido podu, autom\u0101tiski ir gatavs pieg\u0101des apvieno\u0161anai.<\/strong><\/p>\n<p><\/p>\n<p>Tas ir interesanti, jo p\u0113k\u0161\u0146i jums ir pieg\u0101des, kas izklied\u0113tas pa vair\u0101kiem re\u0123ioniem, bet j\u016bs pat nenojau\u0161at. Tom\u0113r tas ir diezgan riskanti, jo viss \u0161eit balst\u0101s uz burv\u012bbu.<\/p>\n<p><\/p>\n<p>Bet, ja Shipper cen\u0161as galvenok\u0101rt mazin\u0101t pieg\u0101des sekas, multi-cluster-scheduler veic visp\u0101r\u012bg\u0101kas funkcijas un, iesp\u0113jams, lab\u0101k der partiju uzdevumiem.<\/p>\n<p><\/p>\n<p>Tam nav att\u012bst\u012bta pak\u0101penisku pieg\u0101\u017eu meh\u0101nisma.<\/p>\n<p><\/p>\n<p>Vair\u0101k par multi-cluster-scheduler var uzzin\u0101t <noindex>ofici\u0101l\u0101 kr\u0101tuv\u0113<\/noindex>.<\/p>\n<p><\/p>\n<p>Ja v\u0113laties izlas\u012bt par multi-cluster-scheduler darb\u012bb\u0101, Admiralty ir <noindex><a rel=\"nofollow\" href=\"https:\/\/admiralty.io\/blog\/running-argo-workflows-across-multiple-kubernetes-clusters\/\">interesants pielietojums ar Argo<\/a><\/noindex> \u2014 darba pl\u016bsm\u0101m, notikumiem, CI un CD Kubernetes.<\/p>\n<p><\/p>\n<h3 id=\"drugie-instrumenty-i-resheniya\">Citi r\u012bki un risin\u0101jumi<\/h3>\n<p><\/p>\n<p>Daudzu klasteru savieno\u0161ana un p\u0101rvald\u012bba ir sare\u017e\u0123\u012bta uzdevums, univers\u0101las atbildes nav.<\/p>\n<p><\/p>\n<p>Ja v\u0113laties padzi\u013cin\u0101ti izp\u0113t\u012bt \u0161o t\u0113mu, l\u016bk, da\u017ei resursi:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/submariner.io\/\">Submariner no Rancher<\/a><\/noindex> \u2014 r\u012bks, kas savieno da\u017e\u0101du Kubernetes kl\u0101steru overlay t\u012bklus.<\/li>\n<li>Mazumtirdzniec\u012bbas t\u012bkls Target izmanto <noindex><a rel=\"nofollow\" href=\"https:\/\/tech.target.com\/infrastructure\/2018\/06\/20\/enter-unimatrix.html\">Unimatrix kop\u0101 ar Spinnaker, lai or\u0137estr\u0113tu izvieto\u0161anu vair\u0101kos klasteros.<\/a><\/noindex>.<\/li>\n<li>M\u0113\u0123iniet izmantot IPV6 un <noindex><a rel=\"nofollow\" href=\"https:\/\/itnext.io\/kubernetes-multi-cluster-networking-made-simple-c8f26827813\">vienotu t\u012bklu vair\u0101kos re\u0123ionos.<\/a><\/noindex>.<\/li>\n<li>Var izmantot service mesh, piem\u0113ram, <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/docs\/setup\/kubernetes\/install\/multicluster\/\">Istio, lai savienotu vair\u0101kus klasterus.<\/a><\/noindex>.<\/li>\n<li>Cilium, konteineru t\u012bkla spraudnis, pied\u0101v\u0101 <noindex><a rel=\"nofollow\" href=\"https:\/\/cilium.io\/blog\/2019\/03\/12\/clustermesh\/\">klastera mezglu funkcionalit\u0101ti<\/a><\/noindex>, kas \u013cauj apvienot vair\u0101kus klasterus.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vot-i-vse-na-segodnya\">Tas ir viss \u0161odien.<\/h3>\n<p><\/p>\n<p><em>Paldies, ka izlas\u012bj\u0101t l\u012bdz galam!<\/em><\/p>\n<p><\/p>\n<p>Ja zin\u0101t, k\u0101 efekt\u012bv\u0101k savienot vair\u0101kus klasterus, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">past\u0101stiet mums.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>M\u0113s pievienosim j\u016bsu metodi saist\u012btaj\u0101m sait\u0113m.<\/p>\n<p><\/p>\n<p>\u012apa\u0161a pateic\u012bba Krisam Nesbitam-Smitam (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/chrisns\">Chris Nesbitt-Smith<\/a><\/noindex>) un Vens\u0101nam de Smetam (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/so0k\">Vincent De Smet<\/a><\/noindex>) (uzticam\u012bbas in\u017eenierim no <noindex><a rel=\"nofollow\" href=\"https:\/\/swatmobile.io\/\">swatmobile.io<\/a><\/noindex>) par to, ka izlas\u012bj\u0101t rakstu un dal\u012bj\u0101ties noder\u012bg\u0101 inform\u0101cij\u0101 par to, k\u0101 darbojas feder\u0101cija.<\/p>\n<p>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/454056\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0435\u0440\u0438\u044e \u043a\u0440\u0430\u0442\u043a\u0438\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432 \u043f\u043e Kubernetes. \u042d\u0442\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0441 \u0441\u0430\u043c\u044b\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u043d\u043b\u0430\u0439\u043d \u0438 \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u0442\u0440\u0435\u043d\u0438\u043d\u0433\u0430\u0445. \u041e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u044d\u043a\u0441\u043f\u0435\u0440\u0442 \u043f\u043e Kubernetes. \u0421\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0438\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0442 \u2014 \u0414\u0430\u043d\u0438\u044d\u043b\u044c \u041f\u043e\u043b\u0435\u043d\u0447\u0438\u043a (Daniele Polencic). \u0414\u0430\u043d\u0438\u044d\u043b\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u043c \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u041f\u041e \u0432 Learnk8s. \u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0441\u0432\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u043e\u0441\u0442\u0435, \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26226,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-34825","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.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0435\u0440\u0438\u044e.\" \/>\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\/lv\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\u041a\u0430\u043a \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b Kubernetes \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440\u0430\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0435\u0440\u0438\u044e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah\" \/>\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=\"2019-10-31T19:00:35+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:00:35+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\udd47K\u0101 savienot Kubernetes klasterus da\u017e\u0101d\u0101s datu centr\u0101s | ProHoster","description":"Laipni l\u016bdzam s\u0113rij\u0101.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\u041a\u0430\u043a \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b Kubernetes \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440\u0430\u0445 | ProHoster","og:description":"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0435\u0440\u0438\u044e.","og:url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","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":"2019-10-31T19:00:35+00:00","article:modified_time":"2019-10-31T19:00:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34825","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":"2026-01-21 20:45:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:14:06","updated":"2026-01-21 20:45:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/34825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=34825"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/34825\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/26226"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=34825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=34825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=34825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}