{"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\/de\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","title":{"rendered":"Wie man Kubernetes-Cluster in verschiedenen Rechenzentren verbindet","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wie man Kubernetes-Cluster in verschiedenen Rechenzentren verbindet\" src=\"\/wp-content\/uploads\/2019\/06\/fa408b406e31840857bbbe13e1d7ee5a.JPG\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<strong>Willkommen zu unserer Reihe kurzer Leitf\u00e4den zu Kubernetes.<\/strong> Das ist eine regelm\u00e4\u00dfige Kolonne mit den interessantesten Fragen, die wir online und in unseren Schulungen erhalten. Beantwortet von einem Kubernetes-Experten.<\/p>\n<p><\/p>\n<blockquote><p>Der heutige Experte ist Daniele Polencic (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/danielepolencic\">Daniele Polencic<\/a><\/noindex>). Daniele ist Ausbilder und Softwareentwickler bei <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/\">Learnk8s<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Wenn Sie eine Antwort auf Ihre Frage im n\u00e4chsten Beitrag erhalten m\u00f6chten, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">kontaktieren Sie uns per E-Mail<\/a><\/noindex> oder auf <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/learnk8s\">Twitter: @learnk8s<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Haben Sie die vorherigen Beitr\u00e4ge verpasst? <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/visualise-dependencies-kubernetes\">Suchen Sie sie hier<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"kak-soedinit-klastery-kubernetes-v-raznyh-data-centrah\">Wie man Kubernetes-Cluster in verschiedenen Rechenzentren verbindet?<\/h3>\n<p><\/p>\n<blockquote><p><strong>Kurz<\/strong>: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">bald erscheint Kubefed v2<\/a><\/noindex>, und ich empfehle auch, \u00fcber das <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">Projekt multi-cluster-scheduler zu lesen.<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Infrastrukturen werden ziemlich h\u00e4ufig repliziert und \u00fcber verschiedene Regionen verteilt, besonders in kontrollierten Umgebungen.<\/p><\/blockquote>\n<p><strong>Wenn eine Region nicht verf\u00fcgbar ist, wird der Verkehr in eine andere umgeleitet, um Ausf\u00e4lle zu vermeiden.<\/strong><\/p>\n<p><\/p>\n<p>Mit Kubernetes kann man eine \u00e4hnliche Strategie verwenden und Arbeitslasten \u00fcber verschiedene Regionen verteilen.<\/p>\n<p><\/p>\n<p>Sie k\u00f6nnen ein oder mehrere Cluster pro Team, Region, Umgebung oder eine Kombination dieser Elemente haben.<\/p>\n<p><\/p>\n<p>Ihre Cluster k\u00f6nnen in verschiedenen Clouds und vor Ort gehostet werden.<\/p>\n<p><\/p>\n<p><em>Aber wie plant man die Infrastruktur f\u00fcr eine solche geografische Verteilung?<br \/>\nSoll man ein gro\u00dfes Cluster \u00fcber mehrere Clouds in einem einheitlichen Netzwerk erstellen?<br \/>\nOder viele kleine Cluster einrichten und einen Weg finden, diese zu steuern und zu synchronisieren?<\/em><\/p>\n<p><\/p>\n<h3 id=\"odin-rukovodyaschiy-klaster\">Ein zentrales Cluster<\/h3>\n<p><\/p>\n<p><em>Es ist nicht so einfach, ein Cluster \u00fcber ein einheitliches Netzwerk zu erstellen.<\/em><\/p>\n<p><\/p>\n<p>Stellen Sie sich vor, Sie haben einen Ausfall, und die Konnektivit\u00e4t zwischen den Segmenten des Clusters geht verloren.<\/p>\n<p><\/p>\n<p>Wenn Sie einen Master-Server haben, k\u00f6nnen die H\u00e4lfte der Ressourcen keine neuen Befehle erhalten, da sie nicht in der Lage sind, Kontakt mit dem Master aufzunehmen.<\/p>\n<p><\/p>\n<p>Und dabei haben Sie alte Routing-Tabellen (<code>kube-proxy<\/code> kann die neuen nicht laden) und keine zus\u00e4tzlichen Pods (kubelet kann keine Updates anfordern).<\/p>\n<p><\/p>\n<p>Was noch schlimmer ist, wenn Kubernetes einen Knoten nicht sieht, markiert er ihn als verloren und verteilt die fehlenden Pods auf existierende Knoten.<\/p>\n<p><\/p>\n<p><strong>Am Ende haben Sie doppelt so viele Pods.<\/strong><\/p>\n<p><\/p>\n<p>Wenn Sie f\u00fcr jede Region einen Master-Server einrichten, gibt es Probleme mit dem Konsensalgorithmus in der etcd-Datenbank. (<em>Hinweis des Redakteurs \u2014 Tats\u00e4chlich muss die etcd-Datenbank nicht unbedingt auf den Master-Servern laufen. Sie kann in einer separaten Gruppe von Servern in einer Region gestartet werden. Allerdings erh\u00e4lt man dabei einen einzelnen Ausfallpunkt f\u00fcr das Cluster. Daf\u00fcr geht es schnell.<\/em>)<\/p>\n<p><\/p>\n<p>etcd verwendet <noindex><a rel=\"nofollow\" href=\"http:\/\/thesecretlivesofdata.com\/raft\/\">den Raft-Algorithmus<\/a><\/noindex>, um den Wert zu vereinbaren, bevor er auf der Festplatte gespeichert wird.<br \/>\nDas bedeutet, dass die meisten Instanzen einen Konsens erreichen m\u00fcssen, bevor der Zustand in etcd gespeichert werden kann.<\/p>\n<p><\/p>\n<p>Wenn die Verz\u00f6gerung zwischen den etcd-Instanzen stark ansteigt, wie im Fall von drei etcd-Instanzen in verschiedenen Regionen, dauert es lange, um einen Wert zu vereinbaren und auf die Festplatte zu schreiben.<br \/>\nDas wirkt sich auch auf die Kubernetes-Controller aus.<\/p>\n<p><\/p>\n<p>Der Controller-Manager ben\u00f6tigt mehr Zeit, um \u00fcber \u00c4nderungen informiert zu werden und die Antwort in die Datenbank zu schreiben.<\/p>\n<p><\/p>\n<p>Da es nicht nur einen Controller, sondern mehrere gibt, <strong>entsteht eine Kettenreaktion, und das gesamte Cluster beginnt, sehr langsam zu arbeiten.<\/strong>.<\/p>\n<p><\/p>\n<p>etcd ist so empfindlich gegen\u00fcber Verz\u00f6gerungen, dass <noindex><a rel=\"nofollow\" href=\"https:\/\/coreos.com\/etcd\/docs\/latest\/faq.html#deployment\">in der offiziellen Dokumentation empfohlen wird, SSDs anstelle von herk\u00f6mmlichen Festplatten zu verwenden.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Derzeit gibt es keine guten Beispiele f\u00fcr ein gro\u00dfes Netzwerk mit einem einzigen Cluster.<\/strong><\/p>\n<p><\/p>\n<p>Im Wesentlichen versuchen die Entwicklergemeinschaft und die SIG-cluster-Gruppe herauszufinden, wie man Cluster orchestrieren kann, \u00e4hnlich wie Kubernetes Container orchestriert.<\/p>\n<p><\/p>\n<h3 id=\"variant-1-federaciya-klasterov-s-kubefed\">Option 1: Cluster-F\u00f6deration mit kubefed<\/h3>\n<p><\/p>\n<p>Die offizielle Antwort der SIG-cluster lautet \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">kubefed2, die neue Version des urspr\u00fcnglichen Clients und Operators f\u00fcr die Kube-F\u00f6deration.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Zum ersten Mal versuchte man mit dem Kube-F\u00f6deration-Tool, eine Sammlung von Clustern als ein einziges Objekt zu verwalten.<\/p>\n<p><\/p>\n<p>Der Anfang war vielversprechend, aber letztendlich wurde Kube-F\u00f6deration nicht popul\u00e4r, weil nicht alle Ressourcen unterst\u00fctzt wurden.<\/p>\n<p><\/p>\n<p>Es unterst\u00fctzte zusammengef\u00fchrte Bereitstellungen und Dienste, aber zum Beispiel keine StatefulSets.<br \/>\nZudem wurde die Konfiguration der F\u00f6deration in Form von Anmerkungen \u00fcbermittelt und war nicht besonders flexibel.<\/p>\n<p><\/p>\n<p><em>Stellen Sie sich vor, wie man die Replikation f\u00fcr jeden Cluster in der F\u00f6deration mithilfe von Anmerkungen beschreiben kann.<\/em><\/p>\n<p><\/p>\n<p><strong>Das f\u00fchrte zu einem v\u00f6lligen Durcheinander.<\/strong><\/p>\n<p><\/p>\n<p>Die SIG-cluster hat nach kubefed v1 viel Arbeit geleistet und beschlossen, das Problem von einer anderen Seite anzugehen.<\/p>\n<p><\/p>\n<p><strong>Anstatt Anmerkungen zu verwenden, entschieden sie sich, einen Controller zu ver\u00f6ffentlichen, der in den Clustern installiert wird. Dieser kann mit benutzerdefinierten Ressourcendefinitionen (Custom Resource Definition, CRD) konfiguriert werden.<\/strong><\/p>\n<p><\/p>\n<p>F\u00fcr jede Ressource, die in die F\u00f6deration aufgenommen wird, haben Sie eine benutzerdefinierte CRD-Definition, die aus drei Abschnitten besteht:<\/p>\n<p><\/p>\n<ul>\n<li>eine Standardressourcendefinition, zum Beispiel ein Deployment;<\/li>\n<li>Abschnitt <code>placement<\/code>, in dem Sie definieren, wie die Ressource in der F\u00f6deration verteilt wird;<\/li>\n<li>Abschnitt <code>override<\/code>, in dem f\u00fcr eine bestimmte Ressource Gewicht und Parameter aus dem Placement \u00fcberschrieben werden k\u00f6nnen.<\/li>\n<\/ul>\n<p><\/p>\n<p>Hier ist ein Beispiel f\u00fcr eine kombinierte Bereitstellung mit den Abschnitten Placement und 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>Wie Sie sehen, ist die Bereitstellung \u00fcber zwei Cluster verteilt: <code>cluster1<\/code> und <code>cluster2<\/code>.<\/p>\n<p><\/p>\n<p>Der erste Cluster stellt drei Replikate bereit, w\u00e4hrend beim zweiten der Wert 5 angegeben ist.<\/p>\n<p><\/p>\n<p>Wenn Sie mehr Kontrolle \u00fcber die Anzahl der Replikate ben\u00f6tigen, bietet kubefed2 ein neues Objekt ReplicaSchedulingPreference, bei dem die Replikate nach Gewicht verteilt werden k\u00f6nnen:<\/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>Die Struktur von CRD und API ist noch nicht ganz bereit, und im offiziellen Repository des Projekts wird aktiv daran gearbeitet.<\/p>\n<p><\/p>\n<p><strong>Behalten Sie kubefed2 im Auge, aber denken Sie daran, dass es f\u00fcr Produktionsumgebungen bisher nicht geeignet ist.<\/strong><\/p>\n<p><\/p>\n<p>Erfahren Sie mehr \u00fcber kubefed2 aus <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/12\/12\/kubernetes-federation-evolution\/\">dem offiziellen Artikel \u00fcber kubefed2<\/a><\/noindex> im Kubernetes-Blog und im <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">offiziellen Repository des Projekts kubefed<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-2-obedinenie-klasterov-v-stile-bookingcom\">Variante 2: Cluster zusammenf\u00fchren im Stil von Booking.com<\/h3>\n<p><\/p>\n<p>Die Entwickler von Booking.com haben sich zwar nicht mit kubefed v2 besch\u00e4ftigt, haben jedoch Shipper entwickelt \u2013 einen Operator f\u00fcr Bereitstellungen in mehreren Clustern, in mehreren Regionen und in mehreren Clouds.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> es ist in gewisser Weise \u00e4hnlich wie kubefed2.<\/p>\n<p><\/p>\n<p>Beide Tools erm\u00f6glichen es, eine Bereitstellungsstrategie \u00fcber mehrere Cluster hinweg festzulegen (welche Cluster verwendet werden und wie viele Replikate sie haben).<\/p>\n<p><\/p>\n<p>Aber <strong>das Ziel von Shipper ist es, das Risiko von Fehlern bei der Bereitstellung zu verringern.<\/strong><\/p>\n<p><\/p>\n<p>In Shipper k\u00f6nnen eine Reihe von Schritten definiert werden, die die Verteilung der Replikate zwischen dem vorherigen und dem aktuellen Deployment sowie das gesamte eingehende Trafficvolumen beschreiben.<\/p>\n<p><\/p>\n<p>Wenn Sie eine Ressource in einen Cluster senden, wird diese \u00c4nderung schrittweise durch alle zusammengeschlossenen Cluster von dem Shipper-Controller bereitgestellt.<\/p>\n<p><\/p>\n<p><em>Au\u00dferdem ist Shipper sehr eingeschr\u00e4nkt.<\/em><\/p>\n<p><\/p>\n<p>Zum Beispiel, <strong>er akzeptiert Helm-Charts als Eingabedaten.<\/strong> und unterst\u00fctzt keine Vanilla-Ressourcen.<br \/>\nIm Allgemeinen funktioniert Shipper wie folgt.<\/p>\n<p><\/p>\n<p>Anstelle der Standardlieferung m\u00fcssen Sie eine Anwendungsressource erstellen, die ein Helm-Chart umfasst:<\/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 ist eine gute Option zur Verwaltung mehrerer Cluster, aber die enge Verbindung zu Helm ist hinderlich.<\/strong><\/p>\n<p><\/p>\n<p><em>Was ist, wenn wir alle von Helm auf <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/05\/29\/introducing-kustomize-template-free-configuration-customization-for-kubernetes\/\">kustomize<\/a><\/noindex> oder <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deepmind\/kapitan\">kapitan<\/a><\/noindex>?<\/em><\/p>\n<p><\/p>\n<p>Erfahren Sie mehr \u00fcber Shipper und seine Philosophie in <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/booking-com-infrastructure\/introducing-shipper-daf9244e3882\">dieser offiziellen Pressemitteilung<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Wenn Sie im Code st\u00f6bern m\u00f6chten, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">gehen Sie zum offiziellen Repository des Projekts<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-3-magicheskoe-obedinenie-klasterov\">Option 3: &#171;magische&#187; Clusterzusammenf\u00fchrung<\/h3>\n<p><\/p>\n<p>Kubefed v2 und Shipper arbeiten mit der Federation von Clustern, indem sie den Clustern neue Ressourcen \u00fcber benutzerdefinierte Ressourcendefinitionen bereitstellen.<\/p>\n<p><\/p>\n<p><em>Aber was ist, wenn Sie nicht alle Deployments, StatefulSets, DaemonSets usw. f\u00fcr die Zusammenlegung umschreiben m\u00f6chten?<\/em><\/p>\n<p><\/p>\n<p><em>Wie k\u00f6nnen Sie einen bestehenden Cluster in die F\u00f6deration einbeziehen, ohne YAML zu \u00e4ndern?<\/em><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">multi-cluster-scheduler ist ein Projekt von Admirality<\/a><\/noindex>, das sich mit der Planungs-Workload in Clustern befasst.<\/p>\n<p><\/p>\n<p>Aber anstatt einen neuen Weg zu finden, um mit dem Cluster zu interagieren und Ressourcen in benutzerdefinierte Definitionen zu verpacken, integriert sich der multi-cluster-scheduler in den Standardlebenszyklus von Kubernetes und f\u00e4ngt alle Aufrufe ab, die Pods erstellen.<\/p>\n<p><\/p>\n<p><strong>Jeder erstellte Pod wird sofort durch einen Dummy ersetzt.<\/strong><\/p>\n<p><\/p>\n<blockquote><p>multi-cluster-scheduler verwendet <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/extensible-admission-controllers\/\">Webhooks zur Modifikation des Zugriffs<\/a><\/noindex>, um den Aufruf abzufangen und einen inaktiven Dummy-Pod zu erstellen.<\/p><\/blockquote>\n<p>Der urspr\u00fcngliche Pod durchl\u00e4uft einen weiteren Planungszyklus, in dem nach der Abfrage der gesamten F\u00f6deration eine Entscheidung \u00fcber die Platzierung getroffen wird.<\/p>\n<p><\/p>\n<p>Schlie\u00dflich wird der Pod in den Ziel-Cluster geliefert.<\/p>\n<p><\/p>\n<p>Insgesamt haben Sie einen zus\u00e4tzlichen Pod, der nichts tut, sondern nur Platz einnimmt.<\/p>\n<p><\/p>\n<p>Der Vorteil besteht darin, dass Sie keine neuen Ressourcen f\u00fcr die Zusammenlegung von Deployments schreiben mussten.<\/p>\n<p><\/p>\n<p><strong>Jede Ressource, die einen Pod erstellt, ist automatisch bereit zur Zusammenlegung.<\/strong><\/p>\n<p><\/p>\n<p>Das ist interessant, denn auf einmal haben Sie Lieferungen, die \u00fcber mehrere Regionen verteilt sind, und Sie haben es nicht einmal bemerkt. Allerdings ist das ziemlich riskant, denn alles hier beruht auf Magie.<\/p>\n<p><\/p>\n<p>Aber wenn der Shipper versucht, haupts\u00e4chlich die Folgen der Lieferungen zu mildern, f\u00fchrt der Multi-Cluster-Scheduler allgemeinere Aufgaben aus und ist m\u00f6glicherweise besser f\u00fcr Batch-Jobs geeignet.<\/p>\n<p><\/p>\n<p>Er hat keinen ausgekl\u00fcgelten Mechanismus f\u00fcr schrittweise Lieferungen.<\/p>\n<p><\/p>\n<p>Mehr \u00fcber den Multi-Cluster-Scheduler erfahren Sie auf <noindex>der Seite des offiziellen Repositories.<\/noindex>.<\/p>\n<p><\/p>\n<p>Wenn Sie sehen m\u00f6chten, wie der Multi-Cluster-Scheduler in Aktion funktioniert, hat Admiralty einen <noindex><a rel=\"nofollow\" href=\"https:\/\/admiralty.io\/blog\/running-argo-workflows-across-multiple-kubernetes-clusters\/\">interessanten Anwendungsfall mit Argo<\/a><\/noindex> \u2013 Workflows, Ereignissen, CI und CD in Kubernetes.<\/p>\n<p><\/p>\n<h3 id=\"drugie-instrumenty-i-resheniya\">Andere Werkzeuge und L\u00f6sungen<\/h3>\n<p><\/p>\n<p>Die Verbindung mehrerer Cluster und deren Verwaltung ist eine komplexe Aufgabe; eine universelle L\u00f6sung gibt es nicht.<\/p>\n<p><\/p>\n<p>Wenn Sie dieses Thema n\u00e4her untersuchen m\u00f6chten, hier sind einige Ressourcen:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/submariner.io\/\">Submariner von Rancher<\/a><\/noindex> \u2013 ein Tool, das Overlay-Netzwerke verschiedener Kubernetes-Cluster verbindet.<\/li>\n<li>Die Einzelhandelsgruppe Target verwendet <noindex><a rel=\"nofollow\" href=\"https:\/\/tech.target.com\/infrastructure\/2018\/06\/20\/enter-unimatrix.html\">Unimatrix in Kombination mit Spinnaker, um Deployments \u00fcber mehrere Cluster zu orchestrieren.<\/a><\/noindex>.<\/li>\n<li>Versuchen Sie, IPV6 zu verwenden und <noindex><a rel=\"nofollow\" href=\"https:\/\/itnext.io\/kubernetes-multi-cluster-networking-made-simple-c8f26827813\">ein einheitliches Netzwerk in mehreren Regionen einzurichten.<\/a><\/noindex>.<\/li>\n<li>Sie k\u00f6nnen eine Service Mesh verwenden, wie beispielsweise <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/docs\/setup\/kubernetes\/install\/multicluster\/\">Istio, um mehrere Cluster zu verbinden.<\/a><\/noindex>.<\/li>\n<li>Cilium, ein Plugin f\u00fcr Container-Netzwerkschnittstellen, bietet <noindex><a rel=\"nofollow\" href=\"https:\/\/cilium.io\/blog\/2019\/03\/12\/clustermesh\/\">die Funktion Cluster Mesh<\/a><\/noindex>, die es erm\u00f6glicht, mehrere Cluster zu kombinieren.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vot-i-vse-na-segodnya\">Das ist alles f\u00fcr heute.<\/h3>\n<p><\/p>\n<p><em>Vielen Dank, dass Sie bis zum Ende gelesen haben!<\/em><\/p>\n<p><\/p>\n<p>Wenn Sie wissen, wie man mehrere Cluster effizient miteinander verbindet, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">teilen Sie uns das mit.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Wir werden Ihre Methode in die Links aufnehmen.<\/p>\n<p><\/p>\n<p>Besonderer Dank geht an Chris Nesbitt-Smith (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/chrisns\">Chris Nesbitt-Smith<\/a><\/noindex>) und Vincent De Smet (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/so0k\">Vincent De Smet<\/a><\/noindex>) (Reliability Engineer bei <noindex><a rel=\"nofollow\" href=\"https:\/\/swatmobile.io\/\">swatmobile.io<\/a><\/noindex>) daf\u00fcr, dass sie den Artikel gelesen haben und n\u00fctzliche Informationen dar\u00fcber geteilt haben, wie die F\u00f6deration funktioniert.<\/p>\n<p>Quelle: <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.1.1 - 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\/de\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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\udd47Wie man Kubernetes-Cluster in verschiedenen Rechenzentren verbindet | ProHoster","description":"Willkommen in der Serie.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/34825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=34825"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/34825\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/26226"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=34825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=34825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=34825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}