{"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\/et\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","title":{"rendered":"Kuidas \u00fchendada Kubernetes'e klustreid erinevates andmekeskustes","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kuidas \u00fchendada Kubernetes&#039;e klustreid erinevates andmekeskustes\" src=\"\/wp-content\/uploads\/2019\/06\/fa408b406e31840857bbbe13e1d7ee5a.JPG\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<strong>Tere tulemast Kubernetes'i l\u00fchijuhendite seeriasse.<\/strong> See on regulaarne rubriik k\u00f5ige huvitavamate k\u00fcsimustega, mida me saame veebis ja meie koolitustel. Vastab Kubernetes'i ekspert.<\/p>\n<p><\/p>\n<blockquote><p>T\u00e4na on ekspert \u2014 Daniele Polencic (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/danielepolencic\">Daniele Polencic<\/a><\/noindex>). Daniele t\u00f6\u00f6tab \u00f5ppej\u00f5u ja tarkvaraarendajana ettev\u00f5ttes <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/\">Learnk8s<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Kui soovite, et teie k\u00fcsimusele vastataks j\u00e4rgmises postituses, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">v\u00f5tke meiega \u00fchendust e-posti teel<\/a><\/noindex> v\u00f5i <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/learnk8s\">Twitteris: @learnk8s<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Kas j\u00e4ite eelnenud postitustest ilma? <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/visualise-dependencies-kubernetes\">Otsige neid siit<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"kak-soedinit-klastery-kubernetes-v-raznyh-data-centrah\">Kuidas \u00fchendada Kubernetes'i klastreid erinevates andmekeskustes?<\/h3>\n<p><\/p>\n<blockquote><p><strong>L\u00fchidalt<\/strong>: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">varsti ilmub Kubefed v2<\/a><\/noindex>, samuti soovitan lugeda <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">projektist multi-cluster-scheduler<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Infrastruktuuri dubleerimine ja jaotamine erinevatesse piirkondadesse on \u00fcsna tavaline, eriti kontrollitavates keskkondades.<\/p><\/blockquote>\n<p><strong>Kui \u00fcks piirkond pole k\u00e4ttesaadav, suunatakse liiklus teise piirkonda, et v\u00e4ltida katkestusi.<\/strong><\/p>\n<p><\/p>\n<p>Kubernetes'i abil saab kasutada sarnast strateegiat ning jaotada koormusi erinevatesse piirkondadesse.<\/p>\n<p><\/p>\n<p>Teie meeskonnal v\u00f5ib olla \u00fcks v\u00f5i mitu klastrit piirkonna, keskkonna v\u00f5i nende kombinatsiooni kaupa.<\/p>\n<p><\/p>\n<p>Teie klastrid v\u00f5ivad olla erinevates pilvedes ja kohalikus keskkonnas.<\/p>\n<p><\/p>\n<p><em>Kuidas planeerida infrastruktuuri nii laialdaselt hajutatud geograafiliselt?<br \/>\nKas peaks looma \u00fche suure klaster mitu pilvekeskkonda \u00fchisv\u00f5rgus?<br \/>\nV\u00f5i tuleks m\u00f5jutada palju v\u00e4ikseid klastreid ja leida viis nende kontrollimiseks ja s\u00fcnkroniseerimiseks?<\/em><\/p>\n<p><\/p>\n<h3 id=\"odin-rukovodyaschiy-klaster\">\u00dcks juhtiv klaster<\/h3>\n<p><\/p>\n<p><em>\u00dche \u00fchisv\u00f5rku kuuluva klastrite loomine ei ole nii lihtne.<\/em><\/p>\n<p><\/p>\n<p>Kujutage ette, et teil on \u00f5nnetus ja \u00fchendus klastrite segmentide vahel on kadunud.<\/p>\n<p><\/p>\n<p>Kui teil on \u00fcks meesterver, ei saa pool ressursse uusi k\u00e4ske vastu v\u00f5tta, sest nad ei saa meesterverega \u00fchendust.<\/p>\n<p><\/p>\n<p>Ja sel juhul on teil vanad marsruudimis tabelid (<code>kube-proxy<\/code> ei saa laadida uusi) ja mingeid lisapod'e (kubelet ei saa uuendusi k\u00fcsida).<\/p>\n<p><\/p>\n<p>Mis veelgi hullem, kui Kubernetes ei n\u00e4e s\u00f5lme, t\u00e4histab ta seda kadunuks ja jaotab puuduvad pod'id olemasolevatele s\u00f5lmedele.<\/p>\n<p><\/p>\n<p><strong>Kokku on teil pod'e kaks korda rohkem.<\/strong><\/p>\n<p><\/p>\n<p>Kui teete igasse piirkonda \u00fche meesterveri, tekivad probleemid etcd andmebaasi konsensuse saavutamise algoritmiga.<em>m\u00e4rkus toimetajalt \u2014 Tegelikult ei pea etcd andmebaas olema tingimata meister-serverites. Seda saab k\u00e4ivitada eraldi serverigruppides \u00fches regioonis. T\u00f5si, see loob ka klastrile rikke punkti. Kuid see on kiire.<\/em>)<\/p>\n<p><\/p>\n<p>etcd kasutab <noindex><a rel=\"nofollow\" href=\"http:\/\/thesecretlivesofdata.com\/raft\/\">rafti algoritmi<\/a><\/noindex>, et kokku leppida v\u00e4\u00e4rtuses, enne kui see kirjutatakse kettale.<br \/>\nSee t\u00e4hendab, et enamus eksemplare peab konsensuseni j\u00f5udma, enne kui olek saab kirjutada etcd-sse.<\/p>\n<p><\/p>\n<p>Kui viivitus eksemplaride vahel j\u00e4rsult suureneb, nagu kolme etcd eksemplariga eri piirkondades, kulub v\u00e4\u00e4rtuse kokku leppimiseks ja kettale kirjutamiseks palju aega.<br \/>\nSee kajastub ka Kubernetes'i kontrollerites.<\/p>\n<p><\/p>\n<p>Kontrolleri haldur vajab rohkem aega, et teada saada muutusest ja kirjutada vastus andmebaasi.<\/p>\n<p><\/p>\n<p>Ja kuna kontrollerid ei ole \u00fcks, vaid mitu, <strong>tekib ahelreaktsioon ja kogu klaster hakkab t\u00f6\u00f6tama v\u00e4ga aeglaselt.<\/strong>.<\/p>\n<p><\/p>\n<p>etcd on viivituse suhtes nii tundlik, et <noindex><a rel=\"nofollow\" href=\"https:\/\/coreos.com\/etcd\/docs\/latest\/faq.html#deployment\">ametlikus dokumentatsioonis soovitatakse kasutada SSD-sid tavaliste k\u00f5vaketaste asemel.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Hetkel ei ole \u00fchtegi head n\u00e4idet suurest v\u00f5rgust \u00fchele klastrile.<\/strong><\/p>\n<p><\/p>\n<p>Peamiselt p\u00fc\u00fcavad arendajate kogukond ja SIG-cluster r\u00fchm m\u00f5ista, kuidas orkestreerida klastreid just nagu Kubernetes orkestreerib konteinerite haldamist.<\/p>\n<p><\/p>\n<h3 id=\"variant-1-federaciya-klasterov-s-kubefed\">Variant 1: klastrite f\u00f6deratsioon kubefed'iga<\/h3>\n<p><\/p>\n<p>SIG-cluster ametlik vastus \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">kubefed2, uus versioon kube f\u00f6deratsiooni algsest kliendist ja operaatorist<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Esmakordselt prooviti kogu klastrite kogumit \u00fchtse objektina hallata kube f\u00f6deratsiooni t\u00f6\u00f6riistaga.<\/p>\n<p><\/p>\n<p>Algus oli hea, kuid l\u00f5puks ei saavutanud kube f\u00f6deratsioon kunagi populaarsust, kuna see ei toetanud k\u00f5iki ressursse.<\/p>\n<p><\/p>\n<p>See toetas \u00fchendatud pakkumist ja teenuseid, kuid n\u00e4iteks ei toetanud StatefulSets'i.<br \/>\nLisaks edastati f\u00f6deratsiooni konfiguratsioon annotatsioonidena ja see ei olnud paindlik.<\/p>\n<p><\/p>\n<p><em>Kujutage ette, kuidas v\u00f5iks f\u00f6deratsioonis iga klastrite koopiate jagamist kirjeldada ainult annotatsioonide abil.<\/em><\/p>\n<p><\/p>\n<p><strong>Saime t\u00e4ieliku segaduse.<\/strong><\/p>\n<p><\/p>\n<p>SIG-cluster tegi p\u00e4rast kubefed v1 suurep\u00e4rast t\u00f6\u00f6d ja otsustas probleemile l\u00e4heneda teisiti.<\/p>\n<p><\/p>\n<p><strong>Annotatsioonide asemel otsustasid nad v\u00e4lja anda kontrolleri, mis installitakse klastritele. Selle saab konfigureerida kohandatud ressursi definitsioonide (Custom Resource Definition, CRD) abil.<\/strong><\/p>\n<p><\/p>\n<p>Iga ressursi jaoks, mis kuulub f\u00f6deratsiooni, on teil kohandatud CRD, mis koosneb kolmest osast:<\/p>\n<p><\/p>\n<ul>\n<li>standardne ressursim\u00e4\u00e4ratlus, n\u00e4iteks deployment;<\/li>\n<li>osa <code>placement<\/code>, kus m\u00e4\u00e4rate, kuidas ressurss jaotatakse f\u00f6deratsioonis;<\/li>\n<li>osa <code>override<\/code>, kus saab konkreetse ressursi jaoks m\u00e4\u00e4rata \u00fcmber kaalu ja parameetrid placementist.<\/li>\n<\/ul>\n<p><\/p>\n<p>Siin on n\u00e4ide \u00fchest pakkumisest koos placementi ja override'i osadega.<\/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>Nagu n\u00e4ete, on pakkumine jagatud kahe klastrisse: <code>cluster1<\/code> ja <code>cluster2<\/code>.<\/p>\n<p><\/p>\n<p>Esimene klaster tarnib kolm replikat, samas kui teisel on m\u00e4\u00e4ratud v\u00e4\u00e4rtus 5.<\/p>\n<p><\/p>\n<p>Kui vajate rohkem kontrolli replikate arvu \u00fcle, pakub kubefed2 uut objekti ReplicaSchedulingPreference, kus replikad saab jagada kaalu alusel:<\/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 ja API struktuur ei ole veel t\u00e4iesti valmis ning projekti ametlikus hoidlas on aktiivne t\u00f6\u00f6 k\u00e4imas.<\/p>\n<p><\/p>\n<p><strong>J\u00e4lgige kubefed2, kuid pidage meeles, et see ei sobi veel t\u00f6\u00f6 keskkonda.<\/strong><\/p>\n<p><\/p>\n<p>Learn more about kubefed2 from <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/12\/12\/kubernetes-federation-evolution\/\">the official kubefed2 article<\/a><\/noindex> in the Kubernetes blog and in the <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">official kubefed project repository<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-2-obedinenie-klasterov-v-stile-bookingcom\">Variant 2: clusterite \u00fchendamine Booking.com stiilis<\/h3>\n<p><\/p>\n<p>Booking.com arendajad ei tegelenud kubefed v2-ga, kuid nad l\u00f5id Shipperi \u2014 operaatori, mis hoolitseb kohaletoimetamise eest mitmes klastris, mitmes regioonis ja mitmes pilves.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> see meenutab midagi kubefed2-le.<\/p>\n<p><\/p>\n<p>M\u00f5lemad t\u00f6\u00f6riistad v\u00f5imaldavad seadistada mitme klastri juurutusstrateegiat (milliseid klastriid kasutatakse ja kui palju neil replikaid on).<\/p>\n<p><\/p>\n<p>Aga <strong>Shipperi \u00fclesanne on v\u00e4hendada kohaletoimetamisega seotud vigade riski.<\/strong><\/p>\n<p><\/p>\n<p>Shipperis saab m\u00e4\u00e4ratleda rida samme, mis kirjeldavad replikate jaotumist eelneva ja praeguse juurutuse vahel ning sissetuleva liikluse mahtu.<\/p>\n<p><\/p>\n<p>Kui saadate ressursi klastrisse, paigaldab Shipper selle muudatuse j\u00e4rk-j\u00e4rgult k\u00f5ikidesse \u00fchendatud klastritesse.<\/p>\n<p><\/p>\n<p><em>Ja veel, Shipper on v\u00e4ga piiratud.<\/em><\/p>\n<p><\/p>\n<p>N\u00e4iteks, <strong>see v\u00f5tab sisendina vastu Helm-graafikud<\/strong> ja ei toeta vanilje ressursse.<br \/>\n\u00dcldiselt t\u00f6\u00f6tab Shipper j\u00e4rgmiselt.<\/p>\n<p><\/p>\n<p>Standardse tarnimise asemel tuleb luua rakenduse resurss, mis sisaldab Helm-graafikut:<\/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 on hea valik mitme klastriga haldamiseks, kuid selle tihe seos Helmiga takistab ainult.<\/strong><\/p>\n<p><\/p>\n<p><em>Aga mis, kui k\u00f5ik v\u00f5tame Helmilt \u00fcle <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/05\/29\/introducing-kustomize-template-free-configuration-customization-for-kubernetes\/\">kustomize<\/a><\/noindex> v\u00f5i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deepmind\/kapitan\">kapitan<\/a><\/noindex>?<\/em><\/p>\n<p><\/p>\n<p>Tutvuge Shipperiga ja selle filosoofiaga <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/booking-com-infrastructure\/introducing-shipper-daf9244e3882\">selles ametlikus pressiteates<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Kui soovite koodi uurida, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">suunduge projekti ametlikku repo<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-3-magicheskoe-obedinenie-klasterov\">Valik 3: &#171;maagiline&#187; klastrite \u00fchendamine<\/h3>\n<p><\/p>\n<p>Kubefed v2 ja Shipper t\u00f6\u00f6tavad klastrite f\u00f6deratsiooniga, pakkudes klastritele uusi ressursse kasutaja m\u00e4\u00e4ratud ressursside kaudu.<\/p>\n<p><\/p>\n<p><em>Aga \u00e4kki ei soovi te k\u00f5ikide tarnet\u00fc\u00fcpide, StatefulSetide, DaemonSetide jne kirjutamist \u00fcmber teha, et \u00fchendada?<\/em><\/p>\n<p><\/p>\n<p><em>Kuidas liita olemasolev klaster f\u00f6deratsiooni, muutmata YAML-i?<\/em><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">multi-cluster-scheduler on Admirality projekt<\/a><\/noindex>, mis tegeleb klastrite t\u00f6\u00f6koormuste planeerimisega.<\/p>\n<p><\/p>\n<p>Kuid selle asemel, et v\u00e4lja m\u00f5elda uus viis klastriga suhtlemiseks ja ressursse kasutaja m\u00e4\u00e4ratud m\u00e4\u00e4ratlustesse m\u00e4hkida, rakendatakse multi-cluster-scheduler Kubernetes'i standardse elu ts\u00fcklisse ja p\u00fc\u00fcab kinni k\u00f5ik k\u00f5ned, mis loovad pod'e.<\/p>\n<p><\/p>\n<p><strong>Iga loodud pod vahetatakse kohe v\u00e4lja t\u00fchja maketi vastu.<\/strong><\/p>\n<p><\/p>\n<blockquote><p>multi-cluster-scheduler kasutab <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/extensible-admission-controllers\/\">veebiknuseid juurdep\u00e4\u00e4su modifitseerimiseks<\/a><\/noindex>, et interceptida k\u00f5ne ja luua mitteaktiivne pod-maket.<\/p><\/blockquote>\n<p>Algne pod l\u00e4bib veel \u00fche planeerimisringi, kus p\u00e4rast kogu f\u00f6deratsiooni k\u00fcsitlemist tehakse otsus paigutuse kohta.<\/p>\n<p><\/p>\n<p>L\u00f5puks toimetatakse pod sihtklastrisse.<\/p>\n<p><\/p>\n<p>Tulemusena on teil \u00fcleliigne pod, mis ei tee midagi, lihtsalt v\u00f5tab ruumi.<\/p>\n<p><\/p>\n<p>Eeliseks on see, et teil ei pidanud olema uusi ressursse tarnete integreerimiseks kirjutama.<\/p>\n<p><\/p>\n<p><strong>Iga pod'i loomise ressurss on automaatselt tarneteks valmis.<\/strong><\/p>\n<p><\/p>\n<p>See on huvitav, sest teil v\u00f5ivad \u00fchel hetkel olla tarned, mis on jaotatud mitmesse piirkonda, kuid te ei m\u00e4rganudki. Sellegipoolest on see \u00fcsna riskantne, kuna k\u00f5ik toetub siin maagiale.<\/p>\n<p><\/p>\n<p>Aga kui Shipper p\u00fc\u00fcab peamiselt tarnete tagaj\u00e4rgi leevendada, siis multi-cluster-scheduler t\u00e4idab \u00fcldisemaid \u00fclesandeid ja on v\u00f5ib-olla paremini sobiv partii \u00fclesannete jaoks.<\/p>\n<p><\/p>\n<p>Tal ei ole arenenud j\u00e4rkj\u00e4rguliste tarnete mehhanismi.<\/p>\n<p><\/p>\n<p>Rohkem multi-cluster-schedulerist saad lugeda <noindex>ametlikest hoidlatest<\/noindex>.<\/p>\n<p><\/p>\n<p>Kui soovite lugeda multi-cluster-schedulerist tegutsemise k\u00e4igus, on Admiraltyl olemas <noindex><a rel=\"nofollow\" href=\"https:\/\/admiralty.io\/blog\/running-argo-workflows-across-multiple-kubernetes-clusters\/\">huvitav rakenduse n\u00e4ide koos Argoga<\/a><\/noindex> \u2014 t\u00f6\u00f6voogude, s\u00fcndmuste, CI ja CD Kubernetesega.<\/p>\n<p><\/p>\n<h3 id=\"drugie-instrumenty-i-resheniya\">Teised t\u00f6\u00f6riistad ja lahendused<\/h3>\n<p><\/p>\n<p>Mitme klastri \u00fchendamine ja haldamine on keeruline \u00fclesanne, universaalset lahendust ei eksisteeri.<\/p>\n<p><\/p>\n<p>Kui soovite selle teema kohta p\u00f5hjalikumalt uurida, siis siin on m\u00f5ned ressursid:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/submariner.io\/\">Submariner Rancherilt<\/a><\/noindex> \u2014 t\u00f6\u00f6riist, mis \u00fchendab erinevate Kubernetes klasside \u00fclekattesid.<\/li>\n<li>Jaepood Target kasutab <noindex><a rel=\"nofollow\" href=\"https:\/\/tech.target.com\/infrastructure\/2018\/06\/20\/enter-unimatrix.html\">Unimatrix koos Spinnakeriga, et orkestreerida juurutamist mitmetes klastrites<\/a><\/noindex>.<\/li>\n<li>Proovige kasutada IPV6 ja <noindex><a rel=\"nofollow\" href=\"https:\/\/itnext.io\/kubernetes-multi-cluster-networking-made-simple-c8f26827813\">\u00fchendatud v\u00f5rku mitmes piirkonnas<\/a><\/noindex>.<\/li>\n<li>V\u00f5ib kasutada teenusete v\u00f5rgustikku, n\u00e4iteks <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/docs\/setup\/kubernetes\/install\/multicluster\/\">Istio mitme klastrite \u00fchendamiseks<\/a><\/noindex>.<\/li>\n<li>Cilium, konteinerite v\u00f5rgu liidese plug-in, pakub <noindex><a rel=\"nofollow\" href=\"https:\/\/cilium.io\/blog\/2019\/03\/12\/clustermesh\/\">klastrite v\u00f5rku \u00fchendamise funktsiooni<\/a><\/noindex>, mis v\u00f5imaldab mitme klastrit \u00fchendada<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vot-i-vse-na-segodnya\">Sellega ongi t\u00e4na k\u00f5ik<\/h3>\n<p><\/p>\n<p><em>Ait\u00e4h, et lugesite l\u00f5puni!<\/em><\/p>\n<p><\/p>\n<p>Kui teate, kuidas mitmeid klastreid efektiivsemalt \u00fchendada, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">palun jagage seda meiega<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Lisame teie meetodi linkidele.<\/p>\n<p><\/p>\n<p>Eriti t\u00e4nud Chris Nesbitt-Smithile (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/chrisns\">Chris Nesbitt-Smith<\/a><\/noindex>) ja Vincent De Smetile (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/so0k\">Vincent De Smet<\/a><\/noindex>) (ennustatav insener <noindex><a rel=\"nofollow\" href=\"https:\/\/swatmobile.io\/\">swatmobile.io<\/a><\/noindex>) selle eest, et lugesite artiklit ja jagasite kasulikku teavet selle kohta, kuidas f\u00f6deratsioon t\u00f6\u00f6tab.<\/p>\n<p>Allikas: <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 4.9.10 - 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 \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 \u043d\u0430\u043c\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\/et\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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 \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 \u043d\u0430\u043c\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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\udd47Kuidas \u00fchendada Kubernetes\u2019i klastrid erinevates andmekeskustes | ProHoster","description":"Tere tulemast Kubernetes'e l\u00fchijuhendite seeriasse. See on regulaarne veerg k\u00f5ige huvitavamate k\u00fcsimustega, mida me saame veebis ja meie koosolekutel. Vastab Kubernetes'i ekspert. T\u00e4nane ekspert on Daniele Polencic. Daniele t\u00f6\u00f6tab \u00f5petajana ja tarkvaraarendajana Learnk8s. Kui soovite, et teie k\u00fcsimusele vastataks j\u00e4rgmises postituses, v\u00f5tke meiega \u00fchendust.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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 \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 \u043d\u0430\u043c\u0438","og:url":"https:\/\/prohoster.info\/et\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/34825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=34825"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/34825\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/26226"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=34825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=34825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=34825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}