{"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\/sk\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","title":{"rendered":"Ako spoji\u0165 clustre Kubernetes v r\u00f4znych d\u00e1tov\u00fdch centr\u00e1ch","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Ako spoji\u0165 clustre Kubernetes v r\u00f4znych d\u00e1tov\u00fdch centr\u00e1ch\" src=\"\/wp-content\/uploads\/2019\/06\/fa408b406e31840857bbbe13e1d7ee5a.JPG\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<strong>Vitajte v s\u00e9rii kr\u00e1tkych pr\u00edru\u010diek o Kubernetes.<\/strong> Toto je pravideln\u00fd st\u013apec s najzauj\u00edmavej\u0161\u00edmi ot\u00e1zkami, ktor\u00e9 dost\u00e1vame online a na na\u0161ich \u0161koleniach. Odpoved\u00e1 expert na Kubernetes.<\/p>\n<p><\/p>\n<blockquote><p>Dne\u0161n\u00fd expert \u2014 Daniele Polencic (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/danielepolencic\">Daniele Polencic<\/a><\/noindex>). Daniele pracuje ako in\u0161truktor a softv\u00e9rov\u00fd v\u00fdvoj\u00e1r v <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/\">Learnk8s<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Ak chcete z\u00edska\u0165 odpove\u010f na svoju ot\u00e1zku v nasleduj\u00facom pr\u00edspevku, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">kontaktujte n\u00e1s e-mailom<\/a><\/noindex> alebo na <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/learnk8s\">Twitteri: @learnk8s<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Preme\u0161kali ste predch\u00e1dzaj\u00face pr\u00edspevky? <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/visualise-dependencies-kubernetes\">H\u013eadajte ich tu<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"kak-soedinit-klastery-kubernetes-v-raznyh-data-centrah\">Ako spoji\u0165 klastre Kubernetes v r\u00f4znych d\u00e1tov\u00fdch centr\u00e1ch?<\/h3>\n<p><\/p>\n<blockquote><p><strong>Stru\u010dne<\/strong>: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">\u010doskoro vyjde Kubefed v2<\/a><\/noindex>, a odpor\u00fa\u010dam pre\u010d\u00edta\u0165 si o <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">projekte multi-cluster-scheduler.<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\u010casto sa infra\u0161trukt\u00fara replikovan\u00fdch a distribuuje do r\u00f4znych regi\u00f3nov, najm\u00e4 v kontrolovan\u00fdch prostrediach.<\/p><\/blockquote>\n<p><strong>Ak je jeden regi\u00f3n nedostupn\u00fd, traffic sa presmeruje do in\u00e9ho, aby sa predi\u0161lo preru\u0161en\u00edm.<\/strong><\/p>\n<p><\/p>\n<p>S Kubernetes m\u00f4\u017eete pou\u017ei\u0165 podobn\u00fa strat\u00e9giu a distribuova\u0165 pracovn\u00e9 z\u00e1\u0165a\u017ee do r\u00f4znych regi\u00f3nov.<\/p>\n<p><\/p>\n<p>M\u00f4\u017eete ma\u0165 jeden alebo viac klastrov na t\u00edm, regi\u00f3n, prostredie alebo kombin\u00e1ciu t\u00fdchto prvkov.<\/p>\n<p><\/p>\n<p>Va\u0161e klastre m\u00f4\u017eu by\u0165 umiestnen\u00e9 v r\u00f4znych cloudov\u00fdch slu\u017eb\u00e1ch a v lok\u00e1lnom prostred\u00ed.<\/p>\n<p><\/p>\n<p><em>Ako napl\u00e1nova\u0165 infra\u0161trukt\u00faru pre tak\u00fa geografick\u00fa distrib\u00faciu?<br \/>\nJe potrebn\u00e9 vytvori\u0165 jeden ve\u013ek\u00fd klaster na nieko\u013ek\u00fdch cloudov\u00fdch slu\u017eb\u00e1ch cez jednu sie\u0165?<br \/>\nAlebo zriadi\u0165 mno\u017estvo mal\u00fdch klastrov a n\u00e1js\u0165 sp\u00f4sob, ako ich kontrolova\u0165 a synchronizova\u0165?<\/em><\/p>\n<p><\/p>\n<h3 id=\"odin-rukovodyaschiy-klaster\">Jeden riadiaci klaster<\/h3>\n<p><\/p>\n<p><em>Vytvori\u0165 jeden klaster cez jednu sie\u0165 nie je tak\u00e9 jednoduch\u00e9.<\/em><\/p>\n<p><\/p>\n<p>Predstavte si, \u017ee m\u00e1te hav\u00e1riu, straten\u00e9 spojenie medzi segmentmi klastru.<\/p>\n<p><\/p>\n<p>Ak m\u00e1te jeden master server, polovica zdrojov nebude schopn\u00e1 prij\u00edma\u0165 nov\u00e9 pr\u00edkazy, preto\u017ee sa nem\u00f4\u017ee spoji\u0165 s masterom.<\/p>\n<p><\/p>\n<p>A pritom m\u00e1te star\u00e9 smerovacie tabu\u013eky (<code>kube-proxy<\/code> nedok\u00e1\u017ee na\u010d\u00edta\u0165 nov\u00e9) a \u017eiadne dodato\u010dn\u00e9 pod'y (kubelet nem\u00f4\u017ee po\u017eiada\u0165 o aktualiz\u00e1cie).<\/p>\n<p><\/p>\n<p>\u010co je e\u0161te hor\u0161ie, ak Kubernetes nevid\u00ed uzol, ozna\u010d\u00ed ho ako straten\u00fd a prerozde\u013euje ch\u00fdbaj\u00face pod'y na existuj\u00face uzly.<\/p>\n<p><\/p>\n<p><strong>V d\u00f4sledku toho m\u00e1te dvakr\u00e1t viac pod'ov.<\/strong><\/p>\n<p><\/p>\n<p>Ak by ste mali jeden master server pre ka\u017ed\u00fd regi\u00f3n, vznikn\u00fa probl\u00e9my s algoritmom dosahovania konsenzu v datab\u00e1ze etcd.<em>pozn. red. \u2014 V skuto\u010dnosti nemus\u00ed by\u0165 datab\u00e1za etcd umiestnen\u00e1 na master serveroch. M\u00f4\u017ee by\u0165 spusten\u00e1 na samostatnej skupine serverov v jednom regi\u00f3ne, ale to sp\u00f4sobuje bod zlyhania klastra. Naopak, je to r\u00fdchle.<\/em>)<\/p>\n<p><\/p>\n<p>etcd pou\u017e\u00edva <noindex><a rel=\"nofollow\" href=\"http:\/\/thesecretlivesofdata.com\/raft\/\">algoritmus raft<\/a><\/noindex>, aby pred zapisovan\u00edm hodnoty na disk dosiahol konsenzus.<br \/>\nTo znamen\u00e1, \u017ee v\u00e4\u010d\u0161ina in\u0161tanci\u00ed mus\u00ed dosiahnu\u0165 konsenzus predt\u00fdm, ne\u017e sa stav zap\u00ed\u0161e do etcd.<\/p>\n<p><\/p>\n<p>Ak sa oneskorenie medzi in\u0161tanciami etcd v\u00fdrazne zv\u00fd\u0161i, ako v pr\u00edpade troch in\u0161tanci\u00ed etcd v r\u00f4znych regi\u00f3noch, trv\u00e1 dlh\u00fd \u010das, k\u00fdm sa hodnota zos\u00falad\u00ed a zap\u00ed\u0161e na disk.<br \/>\nTo sa odr\u00e1\u017ea aj na kontrol\u00e9roch Kubernetes.<\/p>\n<p><\/p>\n<p>Kontrol\u00f3rovi trv\u00e1 dlh\u0161ie, k\u00fdm sa dozvie o zmene a zap\u00ed\u0161e odpove\u010f do datab\u00e1zy.<\/p>\n<p><\/p>\n<p>A ke\u010f\u017ee kontrol\u00f3rov nie je len nieko\u013eko, <strong>vznik\u00e1 re\u0165azov\u00e1 reakcia a cel\u00fd klaster za\u010dne fungova\u0165 ve\u013emi pomaly.<\/strong>.<\/p>\n<p><\/p>\n<p>etcd je tak citliv\u00fd na oneskorenie, \u017ee <noindex><a rel=\"nofollow\" href=\"https:\/\/coreos.com\/etcd\/docs\/latest\/faq.html#deployment\">v ofici\u00e1lnej dokument\u00e1cii sa odpor\u00fa\u010da pou\u017e\u00edva\u0165 SSD namiesto be\u017en\u00fdch pevn\u00fdch diskov.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>V s\u00fa\u010dasnosti neexistuj\u00fa dobr\u00e9 pr\u00edklady ve\u013ekej siete pre jeden klaster.<\/strong><\/p>\n<p><\/p>\n<p>Hlavne komunita v\u00fdvoj\u00e1rov a skupina SIG-cluster sa sna\u017eia pochopi\u0165, ako orchestr\u00e1cie klastrov rovnako ako Kubernetes orchestruje kontajnery.<\/p>\n<p><\/p>\n<h3 id=\"variant-1-federaciya-klasterov-s-kubefed\">Mo\u017enos\u0165 1: feder\u00e1cia klastrov s kubefed.<\/h3>\n<p><\/p>\n<p>Ofici\u00e1lna odpove\u010f od SIG-cluster je, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">kubefed2, nov\u00e1 verzia p\u00f4vodn\u00e9ho klienta a oper\u00e1tora kube federation.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Prv\u00fdkr\u00e1t sa o spr\u00e1vu zbierky klastrov ako o jedinom objekte pok\u00fasili pomocou n\u00e1stroja kube federation.<\/p>\n<p><\/p>\n<p>Za\u010diatok bol dobr\u00fd, ale nakoniec sa kube federation nestal popul\u00e1rnym, preto\u017ee nepodporoval v\u0161etky zdroje.<\/p>\n<p><\/p>\n<p>Podporoval kombinovan\u00e9 dod\u00e1vky a slu\u017eby, ale napr\u00edklad nie StatefulSets.<br \/>\nA navy\u0161e, konfigur\u00e1cia feder\u00e1cie bola pren\u00e1\u0161an\u00e1 vo forme anot\u00e1ci\u00ed a bola m\u00e1lo flexibiln\u00e1.<\/p>\n<p><\/p>\n<p><em>Predstavte si, ako by sa dalo op\u00edsa\u0165 rozdelenie replik pre ka\u017ed\u00fd klaster vo feder\u00e1cii pomocou jedn\u00fdch anot\u00e1ci\u00ed.<\/em><\/p>\n<p><\/p>\n<p><strong>Vytvoril sa \u00fapln\u00fd chaos.<\/strong><\/p>\n<p><\/p>\n<p>SIG-cluster vykonali ve\u013ek\u00fa pr\u00e1cu po kube fed v1 a rozhodli sa prist\u00fapi\u0165 k probl\u00e9mu z inej strany.<\/p>\n<p><\/p>\n<p><strong>Namiesto anot\u00e1ci\u00ed sa rozhodli vyd\u00e1va\u0165 kontrol\u00e9r, ktor\u00fd sa in\u0161taluje na klastroch. M\u00f4\u017ee sa konfigurova\u0165 pomocou pou\u017e\u00edvate\u013esk\u00fdch defin\u00edci\u00ed zdrojov (Custom Resource Definition, CRD).<\/strong><\/p>\n<p><\/p>\n<p>Pre ka\u017ed\u00fd zdroj, ktor\u00fd bude s\u00fa\u010das\u0165ou feder\u00e1cie, m\u00e1te vlastn\u00e9 definovanie CRD pozost\u00e1vaj\u00face z troch \u010dast\u00ed:<\/p>\n<p><\/p>\n<ul>\n<li>\u0161tandardn\u00e1 defin\u00edcia zdroja, napr\u00edklad deployment;<\/li>\n<li>sekcia <code>placement<\/code>, kde ur\u010dujete, ako bude zdroj distribuovan\u00fd v feder\u00e1cii;<\/li>\n<li>sekcia <code>override<\/code>, kde m\u00f4\u017eete pre konkr\u00e9tny zdroj predefinova\u0165 v\u00e1hu a parametre z placement.<\/li>\n<\/ul>\n<p><\/p>\n<p>Tu je pr\u00edklad kombinovanej dod\u00e1vky s \u010das\u0165ami placement a override.<\/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>Ako vid\u00edte, dod\u00e1vka je rozdelen\u00e1 do dvoch klastrov: <code>cluster1<\/code> a <code>cluster2<\/code>.<\/p>\n<p><\/p>\n<p>Prv\u00fd klaster dod\u00e1va tri repliky, zatia\u013e \u010do druh\u00e9mu je nastaven\u00e1 hodnota 5.<\/p>\n<p><\/p>\n<p>Ak potrebujete v\u00e4\u010d\u0161iu kontrolu nad po\u010dtom replik, kubefed2 poskytuje nov\u00fd objekt ReplicaSchedulingPreference, kde je mo\u017en\u00e9 repliky rozdeli\u0165 pod\u013ea v\u00e1hy:<\/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>\u0160trukt\u00fara CRD a API e\u0161te nie s\u00fa \u00faplne pripraven\u00e9 a v ofici\u00e1lnom repozit\u00e1ri projektu sa akt\u00edvne pracuje.<\/p>\n<p><\/p>\n<p><strong>Sledujte kubefed2, ale pam\u00e4tajte, \u017ee na produk\u010dn\u00e9 prostredie zatia\u013e nie je vhodn\u00fd.<\/strong><\/p>\n<p><\/p>\n<p>Zistite viac o kubefed2 z <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/12\/12\/kubernetes-federation-evolution\/\">ofici\u00e1lneho \u010dl\u00e1nku o kubefed2<\/a><\/noindex> v blogu o Kubernetes a v <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">ofici\u00e1lnom repozit\u00e1ri projektu kubefed<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-2-obedinenie-klasterov-v-stile-bookingcom\">Varianta 2: sp\u00e1janie klastrov v \u0161t\u00fdle Booking.com<\/h3>\n<p><\/p>\n<p>V\u00fdvoj\u00e1ri Booking.com sa nezameriavali na kubefed v2, ale vymysleli Shipper \u2014 oper\u00e1tor pre dod\u00e1vky v nieko\u013ek\u00fdch klastroch, v nieko\u013ek\u00fdch regi\u00f3noch a v nieko\u013ek\u00fdch \u043e\u0431\u043b\u0430\u043a\u0430\u0445.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> s nie\u010d\u00edm podobn\u00fdm ako kubefed2.<\/p>\n<p><\/p>\n<p>Oba n\u00e1stroje umo\u017e\u0148uj\u00fa nastavi\u0165 strat\u00e9giu nasadenia v nieko\u013ek\u00fdch klastroch (ktor\u00e9 klastre sa pou\u017e\u00edvaj\u00fa a ko\u013eko maj\u00fa replik).<\/p>\n<p><\/p>\n<p>Ale <strong>\u00falohou Shipper je zn\u00ed\u017ei\u0165 riziko ch\u00fdb pri dod\u00e1vke.<\/strong><\/p>\n<p><\/p>\n<p>V Shipper m\u00f4\u017eete definova\u0165 s\u00e9riu krokov, ktor\u00e9 popisuj\u00fa rozdelenie replik medzi predch\u00e1dzaj\u00facim a aktu\u00e1lnym deploymentom a objem prich\u00e1dzaj\u00facej prev\u00e1dzky.<\/p>\n<p><\/p>\n<p>Ke\u010f odo\u0161lete zdroj do klastru, kontrol\u00e9r Shipper krok za krokom nasadzuje t\u00fato zmenu do v\u0161etk\u00fdch zl\u00fa\u010den\u00fdch klastrov.<\/p>\n<p><\/p>\n<p><em>A navy\u0161e je Shipper ve\u013emi obmedzen\u00fd.<\/em><\/p>\n<p><\/p>\n<p>Napr\u00edklad, <strong>prij\u00edma Helm chart ako vstupn\u00e9 \u00fadaje.<\/strong> a nepodporuje vanilla zdroje.<br \/>\nV skratke, Shipper funguje nasledovne.<\/p>\n<p><\/p>\n<p>Namiesto \u0161tandardnej dod\u00e1vky je potrebn\u00e9 vytvori\u0165 zdroj aplik\u00e1cie, ktor\u00fd zah\u0155\u0148a 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 je dobr\u00e1 vo\u013eba na spr\u00e1vu viacer\u00fdch klastrov, ale jeho \u00fazka v\u00e4zba na Helm to len komplikuje.<\/strong><\/p>\n<p><\/p>\n<p><em>A \u010do ak v\u0161etci prejdeme z Helm na <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/05\/29\/introducing-kustomize-template-free-configuration-customization-for-kubernetes\/\">kustomize<\/a><\/noindex> alebo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deepmind\/kapitan\">kapitan<\/a><\/noindex>?<\/em><\/p>\n<p><\/p>\n<p>Zistite viac o Shipper a jeho filozofii v <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/booking-com-infrastructure\/introducing-shipper-daf9244e3882\">tento ofici\u00e1lny tla\u010dov\u00fd materi\u00e1l<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Ak sa chcete ponori\u0165 do k\u00f3du, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">nav\u0161t\u00edvte ofici\u00e1lny repozit\u00e1r projektu<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-3-magicheskoe-obedinenie-klasterov\">Mo\u017enos\u0165 3: &#171;magick\u00e9&#187; spojenie klastrov<\/h3>\n<p><\/p>\n<p>Kubefed v2 a Shipper funguj\u00fa s feder\u00e1ciou klastrov, poskytuj\u00fac klastrom nov\u00e9 zdroje prostredn\u00edctvom pou\u017e\u00edvate\u013esky definovan\u00fdch zdrojov.<\/p>\n<p><\/p>\n<p><em>Ale \u010do ak nechcete prep\u00edsa\u0165 v\u0161etky dod\u00e1vky, StatefulSets, DaemonSets at\u010f. na zjednotenie?<\/em><\/p>\n<p><\/p>\n<p><em>Ako zapoji\u0165 existuj\u00faci klaster do feder\u00e1cie bez zmeny YAML?<\/em><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">multi-cluster-scheduler je projekt Admirality<\/a><\/noindex>, ktor\u00fd sa zaober\u00e1 pracovn\u00fdmi z\u00e1\u0165a\u017eami pl\u00e1novania v klastri.<\/p>\n<p><\/p>\n<p>Ale namiesto toho, aby sa vytv\u00e1ral nov\u00fd sp\u00f4sob interakcie s klastrom a obalil zdroje do pou\u017e\u00edvate\u013esk\u00fdch defin\u00edci\u00ed, multi-cluster-scheduler sa integruje do \u0161tandardn\u00e9ho \u017eivotn\u00e9ho cyklu Kubernetes a zachyt\u00e1va v\u0161etky volania, ktor\u00e9 vytv\u00e1raj\u00fa pod.<\/p>\n<p><\/p>\n<p><strong>Ka\u017ed\u00fd vytvoren\u00fd pod sa okam\u017eite nahr\u00e1dza pr\u00e1zdnou stub.<\/strong><\/p>\n<p><\/p>\n<blockquote><p>multi-cluster-scheduler pou\u017e\u00edva <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/extensible-admission-controllers\/\">web-hooks na modifik\u00e1ciu pr\u00edstupu<\/a><\/noindex>, aby zachytil volanie a vytvoril bezd\u00f4vodn\u00fd stub pod.<\/p><\/blockquote>\n<p>P\u00f4vodn\u00fd pod prech\u00e1dza \u010fal\u0161\u00edm pl\u00e1novac\u00edm cyklom, kde sa po vy\u017eiadaniu celej feder\u00e1cie rozhoduje o umiestnen\u00ed.<\/p>\n<p><\/p>\n<p>Nakoniec sa pod dod\u00e1va do cie\u013eov\u00e9ho klastru.<\/p>\n<p><\/p>\n<p>V kone\u010dnom d\u00f4sledku m\u00e1te nadbyto\u010dn\u00fd pod, ktor\u00fd ni\u010d nerob\u00ed, len zaber\u00e1 miesto.<\/p>\n<p><\/p>\n<p>V\u00fdhodou je, \u017ee ste nemuseli p\u00edsa\u0165 nov\u00e9 zdroje na zjednotenie dod\u00e1vok.<\/p>\n<p><\/p>\n<p><strong>Ka\u017ed\u00fd zdroj, ktor\u00fd vytv\u00e1ra pod, je automaticky pripraven\u00fd na zjednotenie.<\/strong><\/p>\n<p><\/p>\n<p>Je to zauj\u00edmav\u00e9, preto\u017ee sa v\u00e1m zrazu objavia dod\u00e1vky rozlo\u017een\u00e9 po nieko\u013ek\u00fdch regi\u00f3noch, a vy si toho ani nev\u0161imnete. Napriek tomu je to dos\u0165 riskantn\u00e9, preto\u017ee v\u0161etko tu z\u00e1vis\u00ed na m\u00e1gii.<\/p>\n<p><\/p>\n<p>Ale ak sa Shipper sna\u017e\u00ed najm\u00e4 zmierni\u0165 n\u00e1sledky dod\u00e1vok, multi-cluster-scheduler vykon\u00e1va v\u0161eobecnej\u0161ie \u00falohy a mo\u017eno je lep\u0161ie vhodn\u00fd na d\u00e1vkov\u00e9 \u00falohy.<\/p>\n<p><\/p>\n<p>Nem\u00e1 pokro\u010dil\u00fd mechanizmus postupn\u00fdch dod\u00e1vok.<\/p>\n<p><\/p>\n<p>Viac o multi-cluster-scheduler sa m\u00f4\u017eete dozvedie\u0165 na <noindex>str\u00e1nke ofici\u00e1lneho repozit\u00e1ra.<\/noindex>.<\/p>\n<p><\/p>\n<p>Ak chcete \u010d\u00edta\u0165 o multi-cluster-scheduler v praxi, Admiralty m\u00e1 <noindex><a rel=\"nofollow\" href=\"https:\/\/admiralty.io\/blog\/running-argo-workflows-across-multiple-kubernetes-clusters\/\">zauj\u00edmav\u00fd pr\u00edpad aplik\u00e1cie s Argo<\/a><\/noindex> \u2014 pracovn\u00fdmi tokmi, udalos\u0165ami, CI a CD Kubernetes.<\/p>\n<p><\/p>\n<h3 id=\"drugie-instrumenty-i-resheniya\">\u010eal\u0161ie n\u00e1stroje a rie\u0161enia<\/h3>\n<p><\/p>\n<p>Spojenie viacer\u00fdch klastrov a ich spr\u00e1va je zlo\u017eit\u00e1 \u00faloha, univerz\u00e1lne rie\u0161enie neexistuje.<\/p>\n<p><\/p>\n<p>Ak chcete podrobnej\u0161ie presk\u00fama\u0165 t\u00fato t\u00e9mu, tu je nieko\u013eko zdrojov:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/submariner.io\/\">Submariner od Rancher<\/a><\/noindex> \u2014 n\u00e1stroj, ktor\u00fd sp\u00e1ja overlay siete r\u00f4znych klastrov Kubernetes.<\/li>\n<li>Retailov\u00e1 sie\u0165 Target pou\u017e\u00edva <noindex><a rel=\"nofollow\" href=\"https:\/\/tech.target.com\/infrastructure\/2018\/06\/20\/enter-unimatrix.html\">Unimatrix v kombin\u00e1cii so Spinnakerom, aby orchestrila nasadenie na viacer\u00fdch klastroch.<\/a><\/noindex>.<\/li>\n<li>Sk\u00faste pou\u017ei\u0165 IPV6 a <noindex><a rel=\"nofollow\" href=\"https:\/\/itnext.io\/kubernetes-multi-cluster-networking-made-simple-c8f26827813\">jednu sie\u0165 v nieko\u013ek\u00fdch regi\u00f3noch.<\/a><\/noindex>.<\/li>\n<li>M\u00f4\u017eete pou\u017ei\u0165 service mesh, napr\u00edklad <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/docs\/setup\/kubernetes\/install\/multicluster\/\">Istio na prepojenie viacer\u00fdch klastrov.<\/a><\/noindex>.<\/li>\n<li>Cilium, plugin sie\u0165ov\u00e9ho rozhrania kontajnerov, pon\u00faka <noindex><a rel=\"nofollow\" href=\"https:\/\/cilium.io\/blog\/2019\/03\/12\/clustermesh\/\">funkciu cluster mesh<\/a><\/noindex>, ktor\u00e1 umo\u017e\u0148uje kombinova\u0165 nieko\u013eko klastrov.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vot-i-vse-na-segodnya\">To je v\u0161etko na dnes.<\/h3>\n<p><\/p>\n<p><em>\u010eakujem, \u017ee ste to do\u010d\u00edtali do konca!<\/em><\/p>\n<p><\/p>\n<p>Ak viete, ako efekt\u00edvnej\u0161ie spoji\u0165 viacer\u00e9 clustre, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">povedzte n\u00e1m to.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Prid\u00e1me v\u00e1\u0161 sp\u00f4sob k odkazom.<\/p>\n<p><\/p>\n<p>Osobitn\u00e1 v\u010faka Chrisovi Nesbittovi-Smithovi (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/chrisns\">Chris Nesbitt-Smith<\/a><\/noindex>) a Vincentovi De Smetovi (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/so0k\">Vincent De Smet<\/a><\/noindex>) (in\u017einierovi d\u00f4veryhodnosti na <noindex><a rel=\"nofollow\" href=\"https:\/\/swatmobile.io\/\">swatmobile.io<\/a><\/noindex>) za to, \u017ee si pre\u010d\u00edtali \u010dl\u00e1nok a podelili sa o u\u017eito\u010dn\u00e9 inform\u00e1cie o tom, ako funguje feder\u00e1cia.<\/p>\n<p>Zdroj: <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\/sk\/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=\"sk_SK\" \/>\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\/sk\/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\udd47Ako spoji\u0165 clustre Kubernetes v r\u00f4znych d\u00e1tov\u00fdch centr\u00e1ch | ProHoster","description":"Vitajte v s\u00e9rii.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/34825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=34825"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/34825\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/26226"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=34825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=34825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=34825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}