{"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\/nl\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","title":{"rendered":"Hoe clusters van Kubernetes in verschillende datacenters te verbinden","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Hoe clusters van Kubernetes in verschillende datacenters te verbinden\" src=\"\/wp-content\/uploads\/2019\/06\/fa408b406e31840857bbbe13e1d7ee5a.JPG\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<strong>Welkom bij de serie korte handleidingen over Kubernetes.<\/strong> Dit is een reguliere kolom met de meest interessante vragen die we online en tijdens onze trainingen ontvangen. Beantwoord door een Kubernetes-expert.<\/p>\n<p><\/p>\n<blockquote><p>De expert van vandaag is Daniele Polencic (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/danielepolencic\">Daniele Polencic<\/a><\/noindex>). Daniele werkt als instructeur en softwareontwikkelaar bij <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/\">Learnk8s<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Als u een antwoord op uw vraag wilt krijgen in de volgende post, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">neem dan contact met ons op via e-mail<\/a><\/noindex> of naar <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/learnk8s\">Twitter: @learnk8s<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Heeft u eerdere berichten gemist? <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/visualise-dependencies-kubernetes\">Zoek ze hier<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"kak-soedinit-klastery-kubernetes-v-raznyh-data-centrah\">Hoe verbindt u Kubernetes-clusters in verschillende datacentra?<\/h3>\n<p><\/p>\n<blockquote><p><strong>Kort<\/strong>: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">Kubefed v2 komt binnenkort uit<\/a><\/noindex>, en ik raad ook aan om te lezen over <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">het project multi-cluster-scheduler<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Infrastructuur wordt vaak gerepliceerd en verspreid over verschillende regio's, vooral in gecontroleerde omgevingen.<\/p><\/blockquote>\n<p><strong>Als \u00e9\u00e9n regio niet beschikbaar is, wordt het verkeer omgeleid naar een andere om onderbrekingen te voorkomen.<\/strong><\/p>\n<p><\/p>\n<p>Met Kubernetes kunt u een soortgelijke strategie gebruiken en werkbelasting over verschillende regio's verdelen.<\/p>\n<p><\/p>\n<p>U kunt \u00e9\u00e9n of meerdere clusters hebben per team, regio, omgeving of een combinatie van deze elementen.<\/p>\n<p><\/p>\n<p>Uw clusters kunnen worden gehost in verschillende clouds en op een lokale omgeving.<\/p>\n<p><\/p>\n<p><em>Maar hoe plant u de infrastructuur voor een dergelijke geografische spreiding?<br \/>\nMoet u \u00e9\u00e9n grote cluster cre\u00ebren over meerdere clouds via een enkel netwerk?<br \/>\nOf meerdere kleine clusters maken en een manier vinden om deze te beheren en te synchroniseren?<\/em><\/p>\n<p><\/p>\n<h3 id=\"odin-rukovodyaschiy-klaster\">E\u00e9n leidende cluster<\/h3>\n<p><\/p>\n<p><em>Een cluster over een enkel netwerk cre\u00ebren is niet zo eenvoudig.<\/em><\/p>\n<p><\/p>\n<p>Stel je voor dat er een storing optreedt, de connectiviteit tussen segmenten van de cluster is verloren gegaan.<\/p>\n<p><\/p>\n<p>Als u \u00e9\u00e9n masterserver heeft, kunnen de helft van de bronnen geen nieuwe opdrachten ontvangen, omdat ze geen contact kunnen opnemen met de master.<\/p>\n<p><\/p>\n<p>En ondertussen heeft u oude routetabellen (<code>kube-proxy<\/code> kan geen nieuwe laden) en geen extra pods (kubelet kan geen updates aanvragen).<\/p>\n<p><\/p>\n<p>Wat nog erger is, als Kubernetes een knooppunt niet ziet, markeert het het als verloren en verspreidt het de ontbrekende pods over de bestaande knooppunten.<\/p>\n<p><\/p>\n<p><strong>U heeft uiteindelijk dubbel zoveel pods.<\/strong><\/p>\n<p><\/p>\n<p>Als u voor elke regio een masterserver maakt, ontstaan er problemen met het consensusalgoritme in de etcd-database. (<em>op. red. \u2014 Eigenlijk hoeft de etcd-database niet per se op de masterservers te staan. Deze kan worden uitgevoerd op een aparte groep servers in dezelfde regio. Dit cre\u00ebert echter wel een enkel punt van falen in de cluster. Maar het is snel.<\/em>)<\/p>\n<p><\/p>\n<p>etcd gebruikt <noindex><a rel=\"nofollow\" href=\"http:\/\/thesecretlivesofdata.com\/raft\/\">het raft-algoritme<\/a><\/noindex>, om een waarde te bevestigen voordat deze op schijf wordt vastgelegd.<br \/>\nDat wil zeggen dat de meeste instanties consensus moeten bereiken voordat de status in etcd kan worden vastgelegd.<\/p>\n<p><\/p>\n<p>Als de vertraging tussen de etcd-instanties plotseling toeneemt, zoals bij drie etcd-instanties in verschillende regio's, duurt het lang om een waarde te bevestigen en deze op schijf vast te leggen.<br \/>\nDit heeft ook invloed op de Kubernetes-controllers.<\/p>\n<p><\/p>\n<p>De manager van de controllers heeft meer tijd nodig om op een wijziging te reageren en deze in de database vast te leggen.<\/p>\n<p><\/p>\n<p>En aangezien er niet \u00e9\u00e9n maar meerdere controllers zijn, <strong>ontstaat er een kettingreactie en begint de hele cluster erg langzaam te werken.<\/strong>.<\/p>\n<p><\/p>\n<p>etcd is zo gevoelig voor vertraging dat <noindex><a rel=\"nofollow\" href=\"https:\/\/coreos.com\/etcd\/docs\/latest\/faq.html#deployment\">in de offici\u00eble documentatie wordt aanbevolen om SSD's in plaats van gewone harde schijven te gebruiken.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Momenteel bestaan er geen goede voorbeelden van een groot netwerk voor \u00e9\u00e9n cluster.<\/strong><\/p>\n<p><\/p>\n<p>Over het algemeen proberen de ontwikkelaarsgemeenschap en de SIG-clustergroep te begrijpen hoe clusters te orkestreren, net zoals Kubernetes containers orkestreert.<\/p>\n<p><\/p>\n<h3 id=\"variant-1-federaciya-klasterov-s-kubefed\">Optie 1: federatie van clusters met kubefed<\/h3>\n<p><\/p>\n<p>Het offici\u00eble antwoord van SIG-cluster is <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">kubefed2, de nieuwe versie van de oorspronkelijke client en operator voor kube federation.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Voor het eerst werd geprobeerd een verzameling clusters als \u00e9\u00e9n object te beheren met behulp van het hulpmiddel kube federation.<\/p>\n<p><\/p>\n<p>Het begin was goed, maar uiteindelijk werd kube federation niet populair, omdat het niet alle bronnen ondersteunde.<\/p>\n<p><\/p>\n<p>Het ondersteunde gecombineerde afleveringen en services, maar bijvoorbeeld geen StatefulSets.<br \/>\nBovendien werd de configuratie van de federatie doorgegeven in de vorm van annotaties en had deze niet de noodzakelijke flexibiliteit.<\/p>\n<p><\/p>\n<p><em>Stel je voor hoe je de splitsing van replica's voor elke cluster in de federatie zou kunnen beschrijven met behulp van slechts enkele annotaties.<\/em><\/p>\n<p><\/p>\n<p><strong>Het resulteerde in totale chaos.<\/strong><\/p>\n<p><\/p>\n<p>SIG-cluster heeft veel werk verzet na kubefed v1 en besloot het probleem vanuit een andere hoek aan te pakken.<\/p>\n<p><\/p>\n<p><strong>In plaats van annotaties besloten ze een controller uit te geven die op de clusters wordt ge\u00efnstalleerd. Deze kan worden geconfigureerd met behulp van Custom Resource Definitions (CRD).<\/strong><\/p>\n<p><\/p>\n<p>Voor elke resource die deel uitmaakt van de federatie, heeft u een aangepaste definitie CRD bestaande uit drie secties:<\/p>\n<p><\/p>\n<ul>\n<li>een standaard resource-definitie, zoals een deployment;<\/li>\n<li>sectie <code>plaatsing<\/code>, waar u definieert hoe de resource in de federatie wordt verdeeld;<\/li>\n<li>sectie <code>override<\/code>, waar voor een specifieke resource het gewicht en de parameters uit de plaatsing kunnen worden overschreven.<\/li>\n<\/ul>\n<p><\/p>\n<p>Hier is een voorbeeld van een gecombineerde levering met de secties plaatsing en 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>Zoals u ziet, is de levering verdeeld over twee clusters: <code>cluster1<\/code> en <code>cluster2<\/code>.<\/p>\n<p><\/p>\n<p>De eerste cluster levert drie replicas, terwijl de tweede een waarde van 5 heeft.<\/p>\n<p><\/p>\n<p>Als u meer controle wilt over het aantal replicas, biedt kubefed2 een nieuw object ReplicaSchedulingPreference, waar replicas op gewicht kunnen worden verdeeld:<\/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>De structuur van de CRD en API is nog niet helemaal klaar, en er wordt actief aan gewerkt in de offici\u00eble projectrepository.<\/p>\n<p><\/p>\n<p><strong>Houd kubefed2 in de gaten, maar onthoud dat het nog niet geschikt is voor productie-omgevingen.<\/strong><\/p>\n<p><\/p>\n<p>Leer meer over kubefed2 uit <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/12\/12\/kubernetes-federation-evolution\/\">de offici\u00eble kubefed2-artikel<\/a><\/noindex> in de Kubernetes-blog en in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">de offici\u00eble projectrepository van kubefed<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-2-obedinenie-klasterov-v-stile-bookingcom\">Optie 2: clusters samenvoegen in de stijl van Booking.com<\/h3>\n<p><\/p>\n<p>De ontwikkelaars van Booking.com hebben zich niet beziggehouden met kubefed v2, maar hebben Shipper bedacht - een operator voor levering over meerdere clusters, in meerdere regio's en in meerdere clouds.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> het lijkt een beetje op kubefed2.<\/p>\n<p><\/p>\n<p>Beide tools stellen u in staat om de implementatiestrategie over meerdere clusters in te stellen (welke clusters worden gebruikt en hoeveel replicas ze hebben).<\/p>\n<p><\/p>\n<p>Maar <strong>de taak van Shipper is om het risico op fouten bij de levering te verkleinen.<\/strong><\/p>\n<p><\/p>\n<p>In Shipper kunt u een reeks stappen defini\u00ebren die de verdeling van replicas tussen de vorige en de huidige deployment en de hoeveelheid binnenkomend verkeer beschrijven.<\/p>\n<p><\/p>\n<p>Wanneer u een resource naar een cluster verzendt, implementeert de Shipper-controller deze wijziging stap voor stap over alle samengevoegde clusters.<\/p>\n<p><\/p>\n<p><em>Bovendien is Shipper zeer beperkt.<\/em><\/p>\n<p><\/p>\n<p>Bijvoorbeeld, <strong>het accepteert Helm-charts als invoer.<\/strong> en ondersteunt geen vanilla-resources.<br \/>\nIn het kort werkt Shipper als volgt.<\/p>\n<p><\/p>\n<p>In plaats van de standaardlevering moet je een applicatieresource maken, inclusief een 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 is een goede optie voor het beheren van meerdere clusters, maar de nauwe koppeling met Helm is alleen maar een hinder.<\/strong><\/p>\n<p><\/p>\n<p><em>Wat als we allemaal overstappen van Helm naar <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/05\/29\/introducing-kustomize-template-free-configuration-customization-for-kubernetes\/\">kustomize<\/a><\/noindex> of <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deepmind\/kapitan\">kapitan<\/a><\/noindex>?<\/em><\/p>\n<p><\/p>\n<p>Ontdek meer over Shipper en zijn filosofie in <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/booking-com-infrastructure\/introducing-shipper-daf9244e3882\">deze offici\u00eble persverklaring<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Als je in de code wilt duiken, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">ga dan naar de offici\u00eble repository van het project<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-3-magicheskoe-obedinenie-klasterov\">Optie 3: &#171;magische&#187; aggregatie van clusters<\/h3>\n<p><\/p>\n<p>Kubefed v2 en Shipper werken met clusterfederaties, waarbij nieuwe resources aan clusters worden geleverd via gebruikersgedefinieerde resources.<\/p>\n<p><\/p>\n<p><em>Maar misschien wil je niet alle leveringen, StatefulSets, DaemonSets, enz. herschrijven voor de clustering?<\/em><\/p>\n<p><\/p>\n<p><em>Hoe een bestaand cluster in de federatie in te schakelen zonder YAML te wijzigen?<\/em><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">multi-cluster-scheduler is een project van Admirality<\/a><\/noindex>, dat zich bezighoudt met planningswerkbelasting in clusters.<\/p>\n<p><\/p>\n<p>Maar in plaats van een nieuwe manier te verzinnen om met de cluster te communiceren en resources in gebruikersdefinities te wikkelen, integreert multi-cluster-scheduler in de standaard levenscyclus van Kubernetes en onderschept alle aanroepen die pods aanmaken.<\/p>\n<p><\/p>\n<p><strong>Elke aangemaakte pod wordt direct vervangen door een lege pod.<\/strong><\/p>\n<p><\/p>\n<blockquote><p>multi-cluster-scheduler gebruikt <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/extensible-admission-controllers\/\">webhooks voor het aanpassen van de toegang<\/a><\/noindex>, om de aanroep te onderscheppen en een inactieve lege pod te cre\u00ebren.<\/p><\/blockquote>\n<p>De originele pod doorloopt nog een planningscyclus, waarin na raadpleging van de hele federatie een beslissing over de plaatsing wordt genomen.<\/p>\n<p><\/p>\n<p>Uiteindelijk wordt de pod geleverd aan het doelcluster.<\/p>\n<p><\/p>\n<p>Uiteindelijk heb je een extra pod die niets doet, gewoon ruimte in beslag neemt.<\/p>\n<p><\/p>\n<p>Het voordeel is dat je geen nieuwe resources hoefde te schrijven voor de clustering van leveringen.<\/p>\n<p><\/p>\n<p><strong>Elke resource die een pod cre\u00ebert, is automatisch klaar voor clustering.<\/strong><\/p>\n<p><\/p>\n<p>Dit is interessant, want je krijgt plotseling leveringen verdeeld over verschillende regio's, en je hebt het niet eens opgemerkt. Toch is dit behoorlijk riskant, want alles hier hangt af van magie.<\/p>\n<p><\/p>\n<p>Maar als Shipper probeert voornamelijk de gevolgen van leveringen te verzachten, dan voert de multi-cluster-scheduler meer algemene taken uit en is deze mogelijk beter geschikt voor batchopdrachten.<\/p>\n<p><\/p>\n<p>Hij heeft geen geavanceerd mechanisme voor geleidelijke leveringen.<\/p>\n<p><\/p>\n<p>Meer over de multi-cluster-scheduler kun je vinden op <noindex>de pagina van het offici\u00eble repository<\/noindex>.<\/p>\n<p><\/p>\n<p>Als je wilt lezen over de multi-cluster-scheduler in actie, heeft Admiralty een <noindex><a rel=\"nofollow\" href=\"https:\/\/admiralty.io\/blog\/running-argo-workflows-across-multiple-kubernetes-clusters\/\">interessante casestudy met Argo<\/a><\/noindex> \u2014 workflows, gebeurtenissen, CI en CD van Kubernetes.<\/p>\n<p><\/p>\n<h3 id=\"drugie-instrumenty-i-resheniya\">Andere tools en oplossingen<\/h3>\n<p><\/p>\n<p>Het verbinden en beheren van meerdere clusters is een complexe taak, er bestaat geen universele oplossing.<\/p>\n<p><\/p>\n<p>Als je deze kwestie dieper wilt onderzoeken, hier zijn een paar middelen:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/submariner.io\/\">Submariner van Rancher<\/a><\/noindex> \u2014 een tool die overlay-netwerken van verschillende Kubernetes-clusters verbindt.<\/li>\n<li>Het retailnetwerk Target maakt gebruik van <noindex><a rel=\"nofollow\" href=\"https:\/\/tech.target.com\/infrastructure\/2018\/06\/20\/enter-unimatrix.html\">Unimatrix in combinatie met Spinnaker om de inzet op meerdere clusters te orkestreren.<\/a><\/noindex>.<\/li>\n<li>Probeer IPV6 te gebruiken en <noindex><a rel=\"nofollow\" href=\"https:\/\/itnext.io\/kubernetes-multi-cluster-networking-made-simple-c8f26827813\">een enkel netwerk in meerdere regio's.<\/a><\/noindex>.<\/li>\n<li>Je kunt een service mesh gebruiken, bijvoorbeeld <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/docs\/setup\/kubernetes\/install\/multicluster\/\">Istio om meerdere clusters met elkaar te verbinden.<\/a><\/noindex>.<\/li>\n<li>Cilium, een plug-in voor de containernetwerkinterface, biedt <noindex><a rel=\"nofollow\" href=\"https:\/\/cilium.io\/blog\/2019\/03\/12\/clustermesh\/\">de functie cluster mesh<\/a><\/noindex>, die het mogelijk maakt om meerdere clusters te combineren.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vot-i-vse-na-segodnya\">Dat was het voor vandaag.<\/h3>\n<p><\/p>\n<p><em>Bedankt dat je tot het einde hebt gelezen!<\/em><\/p>\n<p><\/p>\n<p>Als je weet hoe je meerdere clusters effectiever kunt verbinden, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">vertel het ons.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>We zullen jouw methode toevoegen aan de links.<\/p>\n<p><\/p>\n<p>Speciale dank aan Chris Nesbitt-Smith (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/chrisns\">Chris Nesbitt-Smith<\/a><\/noindex>) en Vincent De Smet (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/so0k\">Vincent De Smet<\/a><\/noindex>) (reliability engineer bij <noindex><a rel=\"nofollow\" href=\"https:\/\/swatmobile.io\/\">swatmobile.io<\/a><\/noindex>) voor het lezen van het artikel en het delen van nuttige informatie over hoe federatie werkt.<\/p>\n<p>Bron: <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.3 - 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\/nl\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47Hoe Kubernetes-clusters in verschillende datacentra te verbinden | ProHoster","description":"Welkom bij de serie.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/34825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=34825"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/34825\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/26226"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=34825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=34825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=34825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}