{"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\/ro\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","title":{"rendered":"Cum s\u0103 conecta\u021bi clustere Kubernetes \u00een centre de date diferite","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Cum s\u0103 conecta\u021bi clustere Kubernetes \u00een centre de date diferite\" src=\"\/wp-content\/uploads\/2019\/06\/fa408b406e31840857bbbe13e1d7ee5a.JPG\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<strong>Bine a\u021bi venit la seria de ghiduri scurte despre Kubernetes.<\/strong> Aceasta este o coloan\u0103 regulat\u0103 cu cele mai interesante \u00eentreb\u0103ri pe care le primim online \u0219i la cursurile noastre. R\u0103spunde un expert \u00een Kubernetes.<\/p>\n<p><\/p>\n<blockquote><p>Expertul de ast\u0103zi este Daniele Polencic (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/danielepolencic\">Daniele Polencic<\/a><\/noindex>). Daniele este instructor \u0219i dezvoltator de software la <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/\">Learnk8s<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Dac\u0103 dori\u021bi s\u0103 primi\u021bi un r\u0103spuns la \u00eentrebarea dvs. \u00een urm\u0103toarea postare, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">contacta\u021bi-ne prin e-mail<\/a><\/noindex> sau pe <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/learnk8s\">Twitter: @learnk8s<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>A\u021bi ratat post\u0103rile anterioare? <noindex><a rel=\"nofollow\" href=\"https:\/\/learnk8s.io\/visualise-dependencies-kubernetes\">Le c\u0103uta\u021bi aici<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"kak-soedinit-klastery-kubernetes-v-raznyh-data-centrah\">Cum s\u0103 conecta\u021bi clustere Kubernetes \u00een diferite centre de date?<\/h3>\n<p><\/p>\n<blockquote><p><strong>Pe scurt<\/strong>: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">Kubefed v2 va fi disponibil \u00een cur\u00e2nd<\/a><\/noindex>, de asemenea, v\u0103 recomand s\u0103 citi\u021bi despre <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">proiectul multi-cluster-scheduler<\/a><\/noindex>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Destul de frecvent, infrastructura este replicat\u0103 \u0219i distribuit\u0103 \u00een diferite regiuni, \u00een special \u00een medii controlate.<\/p><\/blockquote>\n<p><strong>Dac\u0103 o regiune devine indisponibil\u0103, traficul este redirec\u021bionat c\u0103tre alta pentru a evita \u00eentreruperile.<\/strong><\/p>\n<p><\/p>\n<p>Cu Kubernetes, se poate folosi o strategie similar\u0103 \u0219i distribuirea sarcinilor de lucru \u00een diferite regiuni.<\/p>\n<p><\/p>\n<p>Pute\u021bi avea un singur cluster sau mai multe pentru echip\u0103, regiune, mediu sau o combina\u021bie a acestor elemente.<\/p>\n<p><\/p>\n<p>Clusterele dvs. pot fi g\u0103zduite \u00een diferite cloud-uri \u0219i \u00een medii locale.<\/p>\n<p><\/p>\n<p><em>Dar cum s\u0103 planifica\u021bi infrastructura pentru o astfel de dispersie geografic\u0103?<br \/>\nEste necesar s\u0103 crea\u021bi un singur cluster mare pe mai multe cloud-uri printr-o re\u021bea unitar\u0103?<br \/>\nSau s\u0103 crea\u021bi multe clustere mici \u0219i s\u0103 g\u0103si\u021bi o modalitate de a le controla \u0219i sincroniza?<\/em><\/p>\n<p><\/p>\n<h3 id=\"odin-rukovodyaschiy-klaster\">Un cluster de conducere<\/h3>\n<p><\/p>\n<p><em>Crearea unui singur cluster pe o re\u021bea unitar\u0103 nu este at\u00e2t de simpl\u0103.<\/em><\/p>\n<p><\/p>\n<p>Imagina\u021bi-v\u0103 c\u0103 ave\u021bi o defec\u021biune, pierderea conectivit\u0103\u021bii \u00eentre segmentele cluster-ului.<\/p>\n<p><\/p>\n<p>Dac\u0103 ave\u021bi un singur server master, jum\u0103tate din resurse nu vor putea primi comenzi noi, deoarece nu pot comunica cu masterul.<\/p>\n<p><\/p>\n<p>\u0218i \u00een acest caz, ave\u021bi vechile tabele de rutare (<code>kube-proxy<\/code> nu poate \u00eenc\u0103rca altele noi) \u0219i f\u0103r\u0103 pod-uri suplimentare (kubelet nu poate solicita actualiz\u0103ri).<\/p>\n<p><\/p>\n<p>Ce este \u0219i mai r\u0103u, dac\u0103 Kubernetes nu vede un nod, \u00eel marcheaz\u0103 ca fiind pierdut \u0219i redistribuie pod-urile lips\u0103 pe nodurile existente.<\/p>\n<p><\/p>\n<p><strong>\u00cen cele din urm\u0103, ve\u021bi avea de dou\u0103 ori mai multe pod-uri.<\/strong><\/p>\n<p><\/p>\n<p>Dac\u0103 face\u021bi c\u00e2te un server master pentru fiecare regiune, vor ap\u0103rea probleme cu algoritmul de atingere a consensului \u00een baza de date etcd. (<em>editorial note \u2014 De fapt, baza de date etcd nu trebuie s\u0103 fie neap\u0103rat pe serverele master. Poate fi lansat\u0103 pe un grup separat de servere \u00eentr-o singur\u0103 regiune. Totu\u0219i, acest lucru va crea un punct de e\u0219ec al clusterei. \u00cen schimb, va fi rapid.<\/em>)<\/p>\n<p><\/p>\n<p>etcd folose\u0219te <noindex><a rel=\"nofollow\" href=\"http:\/\/thesecretlivesofdata.com\/raft\/\">algoritmul raft<\/a><\/noindex>, pentru a conveni asupra unei valori \u00eenainte de a o scrie pe disc.<br \/>\nAsta \u00eenseamn\u0103 c\u0103 majoritatea instan\u021belor trebuie s\u0103 ajung\u0103 la un consens \u00eenainte ca starea s\u0103 poat\u0103 fi scris\u0103 \u00een etcd.<\/p>\n<p><\/p>\n<p>Dac\u0103 \u00eent\u00e2rzierile \u00eentre instan\u021bele etcd cresc brusc, cum ar fi \u00een cazul a trei instan\u021be etcd \u00een regiuni diferite, este nevoie de mult timp pentru a consensualiza valoarea \u0219i a o scrie pe disc.<br \/>\nAcest lucru se reflect\u0103 \u0219i \u00een controlerele Kubernetes.<\/p>\n<p><\/p>\n<p>Managerul de controlere are nevoie de mai mult timp pentru a r\u0103spunde la modific\u0103ri \u0219i a scrie r\u0103spunsul \u00een baza de date.<\/p>\n<p><\/p>\n<p>\u0218i, av\u00e2nd \u00een vedere c\u0103 nu este un singur controler, ci mai multe, <strong>se produce un efect de reac\u021bie \u00een lan\u021b, iar \u00eentreaga cluster devine foarte lent\u0103<\/strong>.<\/p>\n<p><\/p>\n<p>etcd este at\u00e2t de sensibil la \u00eent\u00e2rzieri \u00eenc\u00e2t <noindex><a rel=\"nofollow\" href=\"https:\/\/coreos.com\/etcd\/docs\/latest\/faq.html#deployment\">\u00een documenta\u021bia oficial\u0103 se recomand\u0103 utilizarea SSD-urilor \u00een loc de hard disk-uri obi\u0219nuite.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>\u00cen prezent, nu exist\u0103 exemple bune de re\u021bea mare pentru un singur cluster.<\/strong><\/p>\n<p><\/p>\n<p>\u00cen principal, comunitatea de dezvoltatori \u0219i grupul SIG-cluster \u00eencearc\u0103 s\u0103 \u00een\u021beleag\u0103 cum s\u0103 orchestreze clusterele a\u0219a cum Kubernetes orchestreaz\u0103 containerele.<\/p>\n<p><\/p>\n<h3 id=\"variant-1-federaciya-klasterov-s-kubefed\">Varianta 1: federa\u021bia clusterelor cu kubefed<\/h3>\n<p><\/p>\n<p>R\u0103spunsul oficial din partea SIG-cluster este <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">kubefed2, noua versiune a clientului surs\u0103 \u0219i operatorului kube federation<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Pentru prima dat\u0103, gestionarea unei colec\u021bii de clustere ca un singur obiect a fost \u00eencercat\u0103 cu ajutorul instrumentului kube federation.<\/p>\n<p><\/p>\n<p>\u00cenceputul a fost promi\u021b\u0103tor, dar \u00een cele din urm\u0103 kube federation nu a devenit popular, deoarece nu suporta toate resursele.<\/p>\n<p><\/p>\n<p>Sus\u021binea livr\u0103rile \u0219i serviciile combinate, dar, de exemplu, nu suporta StatefulSets.<br \/>\n\u00cen plus, configura\u021bia federa\u021biei era transmis\u0103 sub form\u0103 de anot\u0103ri \u0219i nu era flexibil\u0103.<\/p>\n<p><\/p>\n<p><em>Imagina\u021bi-v\u0103 cum s-ar putea descrie separarea replicilor pentru fiecare cluster \u00een federa\u021bie folosind doar anot\u0103ri.<\/em><\/p>\n<p><\/p>\n<p><strong>A rezultat un haos total.<\/strong><\/p>\n<p><\/p>\n<p>SIG-cluster a depus mult efort dup\u0103 kubefed v1 \u0219i a decis s\u0103 abordeze problema dintr-o alt\u0103 direc\u021bie.<\/p>\n<p><\/p>\n<p><strong>\u00cen loc de anot\u0103ri, au decis s\u0103 lanseze un controller care se instaleaz\u0103 pe clustere. Acesta poate fi configurat folosind defini\u021bii de resurse personalizate (Custom Resource Definition, CRD).<\/strong><\/p>\n<p><\/p>\n<p>Pentru fiecare resurs\u0103 care va face parte din federa\u021bie, ave\u021bi o defini\u021bie CRD personalizat\u0103 din trei sec\u021biuni:<\/p>\n<p><\/p>\n<ul>\n<li>defini\u021bia standard a resursei, de exemplu, o desf\u0103\u0219urare;<\/li>\n<li>sec\u021biunea <code>placement<\/code>, unde defini\u021bi cum va fi distribuit\u0103 resursa \u00een federa\u021bie;<\/li>\n<li>sec\u021biunea <code>override<\/code>, unde pentru o resurs\u0103 specific\u0103 se pot suprascrie greutatea \u0219i parametrii din placement.<\/li>\n<\/ul>\n<p><\/p>\n<p>Iat\u0103 un exemplu de desf\u0103\u0219urare combinat\u0103 cu sec\u021biunile placement \u0219i 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>Dup\u0103 cum pute\u021bi observa, desf\u0103\u0219urarea este distribuit\u0103 \u00eentre dou\u0103 clustere: <code>cluster1<\/code> \u0219i <code>cluster2<\/code>.<\/p>\n<p><\/p>\n<p>Primul cluster furnizeaz\u0103 trei replici, iar pentru al doilea este specificat\u0103 valoarea 5.<\/p>\n<p><\/p>\n<p>Dac\u0103 ave\u021bi nevoie de mai mult control asupra num\u0103rului de replici, kubefed2 ofer\u0103 un nou obiect ReplicaSchedulingPreference, unde replicile pot fi distribuite pe baza greut\u0103\u021bii:<\/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>Structura CRD \u0219i API-ul nu sunt \u00eenc\u0103 complet gata, iar \u00een depozitul oficial al proiectului se lucreaz\u0103 activ.<\/p>\n<p><\/p>\n<p><strong>Urm\u0103ri\u021bi kubefed2, dar aminti\u021bi-v\u0103 c\u0103 momentan nu este potrivit pentru medii de produc\u021bie.<\/strong><\/p>\n<p><\/p>\n<p>Afla\u021bi mai multe despre kubefed2 din <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/12\/12\/kubernetes-federation-evolution\/\">articolul oficial despre kubefed2<\/a><\/noindex> de pe blogul Kubernetes \u0219i din <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/federation-v2\">depozitul oficial al proiectului kubefed<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-2-obedinenie-klasterov-v-stile-bookingcom\">Varianta 2: combinarea clusterei \u00een stilul Booking.com<\/h3>\n<p><\/p>\n<p>Dezvoltatorii de la Booking.com nu s-au ocupat de kubefed v2, dar au inventat Shipper - un operator pentru desf\u0103\u0219ur\u0103ri pe mai multe clustere, \u00een mai multe regiuni \u0219i \u00een mai multe cloud-uri.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">Shipper<\/a><\/noindex> este oarecum similar cu kubefed2.<\/p>\n<p><\/p>\n<p>Ambele instrumente permit configurarea strategiei de desf\u0103\u0219urare pe mai multe clustere (care clustere sunt folosite \u0219i c\u00e2te replici au).<\/p>\n<p><\/p>\n<p>Dar <strong>scopul Shipper este de a reduce riscul erorilor \u00een desf\u0103\u0219urare.<\/strong><\/p>\n<p><\/p>\n<p>\u00cen Shipper, se poate defini un set de pa\u0219i care descriu \u00eemp\u0103r\u021birea replicilor \u00eentre desf\u0103\u0219urarea anterioar\u0103 \u0219i cea curent\u0103 \u0219i volumul de trafic care intr\u0103.<\/p>\n<p><\/p>\n<p>C\u00e2nd trimite\u021bi o resurs\u0103 \u00eentr-un cluster, controlerul Shipper desf\u0103\u0219oar\u0103 treptat aceast\u0103 modificare \u00een toate clusterele unite.<\/p>\n<p><\/p>\n<p><em>\u00cen plus, Shipper este foarte limitat.<\/em><\/p>\n<p><\/p>\n<p>De exemplu, <strong>acesta accept\u0103 grafice Helm ca date de intrare.<\/strong> \u0219i nu suport\u0103 resursele vanilla.<br \/>\n\u00cen general, Shipper func\u021bioneaz\u0103 astfel.<\/p>\n<p><\/p>\n<p>\u00cen loc de livrarea standard, trebuie s\u0103 crea\u021bi un resource al aplica\u021biei care s\u0103 includ\u0103 graficul Helm:<\/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 este o op\u021biune bun\u0103 pentru gestionarea mai multor clustere, dar conexiunea sa str\u00e2ns\u0103 cu Helm este un dezavantaj.<\/strong><\/p>\n<p><\/p>\n<p><em>Dar, dac\u0103 am face to\u021bi tranzi\u021bia de la Helm la <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2018\/05\/29\/introducing-kustomize-template-free-configuration-customization-for-kubernetes\/\">kustomize<\/a><\/noindex> sau <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/deepmind\/kapitan\">kapitan<\/a><\/noindex>?<\/em><\/p>\n<p><\/p>\n<p>Afla\u021bi mai multe despre Shipper \u0219i filosofia sa \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/booking-com-infrastructure\/introducing-shipper-daf9244e3882\">acest comunicat oficial de pres\u0103<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Dac\u0103 dori\u021bi s\u0103 explora\u021bi codul, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bookingcom\/shipper\">merge\u021bi la depozitul oficial al proiectului<\/a><\/noindex>.<\/p>\n<p><\/p>\n<h3 id=\"variant-3-magicheskoe-obedinenie-klasterov\">Op\u021biunea 3: &#171;magica&#187; unire a clustelor<\/h3>\n<p><\/p>\n<p>Kubefed v2 \u0219i Shipper lucreaz\u0103 cu federa\u021bia clusterelor, oferind clusterelor resurse noi prin defini\u021bia personalizat\u0103 a resurselor.<\/p>\n<p><\/p>\n<p><em>Dar, dac\u0103 nu dori\u021bi s\u0103 rescrie\u021bi toate livr\u0103rile, StatefulSets, DaemonSets etc. pentru unire?<\/em><\/p>\n<p><\/p>\n<p><em>Cum s\u0103 include\u021bi un cluster existent \u00een federa\u021bie f\u0103r\u0103 a schimba YAML?<\/em><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/admiraltyio\/multicluster-scheduler\">multi-cluster-scheduler este un proiect Admirality<\/a><\/noindex>, care se ocup\u0103 de sarcini de planificare \u00een clustere.<\/p>\n<p><\/p>\n<p>Dar \u00een loc s\u0103 inventeze o nou\u0103 modalitate de interac\u021biune cu clusterul \u0219i s\u0103 \u00eenveleasc\u0103 resursele \u00een defini\u021bii personalizate, multi-cluster-scheduler se integreaz\u0103 \u00een ciclul de via\u021b\u0103 standard al Kubernetes \u0219i intercepta toate apelurile care creeaz\u0103 poduri.<\/p>\n<p><\/p>\n<p><strong>Fiecare pod creat este \u00eenlocuit imediat cu un dummy.<\/strong><\/p>\n<p><\/p>\n<blockquote><p>multi-cluster-scheduler folose\u0219te <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/reference\/access-authn-authz\/extensible-admission-controllers\/\">web-hooks pentru a modifica accesul<\/a><\/noindex>, pentru a intercepta apelul \u0219i a crea un pod dummy inactiv.<\/p><\/blockquote>\n<p>Podul original trece printr-un alt ciclu de planificare, unde, dup\u0103 sondarea \u00eentregii federa\u021bii, se ia o decizie privind plasamentul.<\/p>\n<p><\/p>\n<p>\u00cen cele din urm\u0103, podul este livrat \u00een clusterul \u021bint\u0103.<\/p>\n<p><\/p>\n<p>Ca urmare, ave\u021bi un pod suplimentar, care nu face nimic, ci ocup\u0103 loc.<\/p>\n<p><\/p>\n<p>Avantajul este c\u0103 nu a trebuit s\u0103 scrie\u021bi noi resurse pentru unirea livr\u0103rilor.<\/p>\n<p><\/p>\n<p><strong>Fiecare resurs\u0103 care creeaz\u0103 un pod este automat preg\u0103tit\u0103 pentru unire.<\/strong><\/p>\n<p><\/p>\n<p>Este interesant, deoarece livr\u0103rile \u00eencepeau brusc s\u0103 fie distribuite pe mai multe regiuni, iar tu nici nu ai observat. Totu\u0219i, acest lucru este destul de riscant, deoarece totul se bazeaz\u0103 pe magie aici.<\/p>\n<p><\/p>\n<p>Dar dac\u0103 Shipper face eforturi, \u00een principal, pentru a atenua consecin\u021bele livr\u0103rilor, multi-cluster-scheduler \u00eendepline\u0219te sarcini mai generale \u0219i, probabil, se potrive\u0219te mai bine pentru lucr\u0103rile de lot.<\/p>\n<p><\/p>\n<p>Nu are un mecanism avansat de livrare treptat\u0103.<\/p>\n<p><\/p>\n<p>Mai multe despre multi-cluster-scheduler pute\u021bi afla pe <noindex>pagina oficial\u0103 a depozitului<\/noindex>.<\/p>\n<p><\/p>\n<p>Dac\u0103 vrei s\u0103 cite\u0219ti despre multi-cluster-scheduler \u00een ac\u021biune, Admiralty are <noindex><a rel=\"nofollow\" href=\"https:\/\/admiralty.io\/blog\/running-argo-workflows-across-multiple-kubernetes-clusters\/\">un caz interesant de utilizare cu Argo<\/a><\/noindex> \u2014 fluxuri de lucru, evenimente, CI \u0219i CD Kubernetes.<\/p>\n<p><\/p>\n<h3 id=\"drugie-instrumenty-i-resheniya\">Alte instrumente \u0219i solu\u021bii<\/h3>\n<p><\/p>\n<p>Conectarea \u0219i gestionarea mai multor clustere este o sarcin\u0103 complex\u0103, nu exist\u0103 o solu\u021bie universal\u0103.<\/p>\n<p><\/p>\n<p>Dac\u0103 vrei s\u0103 studiezi mai \u00een detaliu acest subiect, iat\u0103 c\u00e2teva resurse:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/submariner.io\/\">Submariner de la Rancher<\/a><\/noindex> \u2014 un instrument care conecteaz\u0103 re\u021belele overlay ale diferitelor clustere Kubernetes.<\/li>\n<li>Re\u021beaua de retail Target folose\u0219te <noindex><a rel=\"nofollow\" href=\"https:\/\/tech.target.com\/infrastructure\/2018\/06\/20\/enter-unimatrix.html\">Unimatrix \u00eempreun\u0103 cu Spinnaker pentru a orchestra desf\u0103\u0219urarea pe mai multe clustere<\/a><\/noindex>.<\/li>\n<li>\u00cencerca\u021bi s\u0103 utiliza\u021bi IPV6 \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/itnext.io\/kubernetes-multi-cluster-networking-made-simple-c8f26827813\">o re\u021bea unic\u0103 \u00een mai multe regiuni<\/a><\/noindex>.<\/li>\n<li>Pute\u021bi folosi service mesh, de exemplu <noindex><a rel=\"nofollow\" href=\"https:\/\/istio.io\/docs\/setup\/kubernetes\/install\/multicluster\/\">Istio pentru a conecta mai multe clustere<\/a><\/noindex>.<\/li>\n<li>Cilium, un plugin pentru interfa\u021ba de re\u021bea a containerelor, ofer\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/cilium.io\/blog\/2019\/03\/12\/clustermesh\/\">func\u021bia cluster mesh<\/a><\/noindex>, care permite combinarea mai multor clustere<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vot-i-vse-na-segodnya\">Asta e tot pentru ast\u0103zi<\/h3>\n<p><\/p>\n<p><em>Mul\u021bumim c\u0103 ai citit p\u00e2n\u0103 la cap\u0103t!<\/em><\/p>\n<p><\/p>\n<p>Dac\u0103 \u0219tii o modalitate mai eficient\u0103 de a conecta mai multe clustere, <noindex><a rel=\"nofollow\" href=\"http:\/\/hello@learnk8s.io\">spune-ne<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Vom ad\u0103uga metoda ta la resurse.<\/p>\n<p><\/p>\n<p>O mul\u021bumire special\u0103 lui Chris Nesbitt-Smith (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/chrisns\">Chris Nesbitt-Smith<\/a><\/noindex>) \u0219i lui Vincent De Smet (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/so0k\">Vincent De Smet<\/a><\/noindex>) (inginer de fiabilitate la <noindex><a rel=\"nofollow\" href=\"https:\/\/swatmobile.io\/\">swatmobile.io<\/a><\/noindex>) pentru c\u0103 au citit articolul \u0219i au \u00eemp\u0103rt\u0103\u0219it informa\u021bii utile despre cum func\u021bioneaz\u0103 federa\u021bia.<\/p>\n<p>Sursa: <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.2.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\/ro\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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\udd47Cum s\u0103 conectezi clustere Kubernetes \u00een diferite centre de date | ProHoster","description":"Bine ai venit \u00een seria.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/kak-soedinit-klastery-kubernetes-v-raznyh-data-tsentrah","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/34825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=34825"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/34825\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/26226"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=34825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=34825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=34825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}