Kubernetes pe mai multe continente: k3s și k8s cu disponibilitate ridicată în centre de date din întreaga lume

Publicat pe 14 min de citit

Kubernetes în SUA, Europa și Asia, conceput astfel încât un continent întreg să poată cădea: de ce etcd nu suportă distanțele lungi, un cluster k3s per regiune, GitOps cu Flux, failover prin Geo-DNS, datele între regiuni și diferențele față de kubeadm.

Kubernetes este standardul atunci când aplicațiile trebuie să fie tolerante la defecțiuni și să se scaleze automat. Ideea evidentă de a întinde un singur cluster Kubernetes peste servere din SUA, Europa și Asia se lovește însă de un detaliu: etcd, baza de date în care Kubernetes își păstrează întreaga stare. Acest articol arată cum funcționează totuși Kubernetes pe mai multe continente, și anume astfel încât un continent întreg să poată cădea: cu un cluster per regiune, o livrare comună prin GitOps și un Geo-DNS care trimite utilizatorii către cea mai apropiată regiune funcțională.

Construim arhitectura cu k3s, distribuția Kubernetes ușoară și complet certificată, care se instalează în câteva minute, iar la final arătăm ce se schimbă la un Kubernetes clasic instalat cu kubeadm. Noțiunile de bază despre disponibilitate, quorum și failover între mai multe locații sunt explicate pe larg în articolul Docker Swarm pe trei continente; aici ne ocupăm de ceea ce este diferit la Kubernetes.

Un cluster întins pe toate continentele sau un cluster per regiune?

Pentru Kubernetes pe mai multe continente, arhitectura corectă este un cluster per regiune, nu un singur cluster întins pe toate continentele. Fiecare cluster rulează independent, toate sunt implementate din același repository Git, iar un Geo-DNS cu health checks distribuie utilizatorii. Dacă o regiune cade, celelalte preiau sarcina, fără să fie nevoie ca o stare comună a clusterului să fie coordonată peste ocean.

De ce etcd nu suportă distanțele lungi

Kubernetes stochează fiecare stare, fiecare configurație și fiecare modificare în etcd, un depozit de tip cheie-valoare cu consens Raft. Fiecare operație de scriere are nevoie de confirmarea majorității tuturor membrilor etcd. În mod implicit, etcd lucrează cu un heartbeat de 100 de milisecunde și un timeout de alegere de o secundă; între Europa, America de Nord și Asia, latența pachetelor este între 80 și 250 de milisecunde. Valorile pot fi mărite, dar atunci fiecare scriere din cluster devine lentă, de la planificarea unui pod până la salvarea unui secret. Documentația k3s este clară în această privință: etcd-ul integrat nu este suportat în clustere distribuite pe mai multe rețele, iar toate serverele ar trebui să se afle în aceeași locație. Și Kubernetes însuși este conceput pentru ca un cluster să acopere mai multe zone din cadrul unei regiuni, nu mai multe continente.

Comparație între cele trei modele

ModelCum funcționeazăEvaluare
Un cluster întins pe toate continentelePlanul de control și etcd distribuite pe mai multe continenteNerecomandat: scrieri lente, etcd instabil, nesuportat la k3s cu etcd integrat
Planul de control într-o regiune, noduri worker în toată lumeaServerele într-o singură locație, agenții pe alte continenteFuncționează tehnic, dar dacă regiunea planului de control cade, nimic nu mai poate fi replanificat, nicăieri în lume
Un cluster per regiuneTrei clustere independente, implementate împreună prin GitOps, cu Geo-DNS în fațăRecomandat: fiecare regiune supraviețuiește căderii celorlalte, erorile rămân limitate la o singură regiune

Abordarea „un cluster per regiune” are un al doilea avantaj, adesea subestimat: o eroare în planul de control, o modificare greșită a clusterului sau un upgrade care eșuează afectează întotdeauna doar o regiune. Utilizatorii din celelalte regiuni nu observă nimic.

k3s sau k8s?

Ambele sunt Kubernetes în toată regula, cu același API, aceleași manifeste și aceleași instrumente. Diferența constă în structură și în efort:

Caracteristicăk3sk8s cu kubeadm
InstalareO comandă, un fișier binarRuntime de containere, kubeadm, kubelet, plugin de rețea, fiecare configurat separat
Resurse pentru un nod serverMinimum 2 nuclee și 2 GB RAMMult mai multe, în funcție de componente
InclusController Ingress (Traefik), rețea (Flannel), provisioner de stocare, load balancer pentru serviciiDoar componentele de bază, restul îl alegeți dumneavoastră
Disponibilitate ridicatăetcd integrat cu trei servereTrei noduri control plane, cu load balancer în fața API-ului
Potrivit pentruMajoritatea aplicațiilor, echipe mici, un singur nod per regiuneEchipe care vor să aleagă singure fiecare componentă

Pentru arhitectura cu un cluster per regiune recomandăm k3s: operarea a trei clustere este comodă doar dacă fiecare dintre ele este simplu. Cine are deja experiență cu kubeadm preia arhitectura neschimbată, iar secțiunea despre kubeadm de mai jos arată diferențele.

Arhitectura: trei regiuni, trei clustere, un singur punct de intrare

ComponentăRolÎmpotriva cărei căderi protejează
Un cluster k3s per regiuneRulează aplicația aproape de utilizatoriCăderea unei regiuni întregi
Trei servere per regiune (etapa de extindere)Menține etcd și planul de control cu disponibilitate ridicată în cadrul regiuniiCăderea unor servere individuale dintr-o regiune
Repository Git și Flux în fiecare clusterFiecare cluster își preia singur starea dorită din GitNiciun server central de livrare care să devină punct de cădere
Ingress cu certificate prin DNS challengePrimește cererile utilizatorilorCertificatele funcționează independent de comutarea DNS
Geo-DNS cu health checksTrimite utilizatorii către cea mai apropiată regiune funcționalăRegiuni inaccesibile
Stocare replicată a datelor și backup-uriPăstrează datele în mai multe regiuniPierderea datelor la căderea unei regiuni

Etapa inițială și extinderea

Etapa inițială constă în trei servere, câte unul în SUA, în Europa și în Asia, fiecare fiind un cluster separat cu un singur nod. Dacă un server cade, cade și regiunea lui, iar Geo-DNS-ul trimite utilizatorii ei în regiunea vecină. Această etapă este deja concepută să facă față căderii unui continent întreg. În etapa de extindere, fiecare regiune primește trei servere în aceeași locație; atunci și fiecare regiune în parte supraviețuiește căderii unui server, fără să fie nevoie ca utilizatorii să fie redirecționați.

Ce locații KernelHost sunt potrivite

KernelHost operează servere în centrul de date maincubes din Frankfurt am Main și oferă servere virtuale în alte locații din Europa, America de Nord și Asia-Pacific, printre care trei locații în SUA, Canada, Londra, Strasbourg, Varșovia, Helsinki, Singapore, Japonia, Sydney și Mumbai. Lista completă se află pe pagina Locațiile serverelor. Exemplul din acest articol folosește Frankfurt am Main pentru Europa, Coasta de Est a SUA pentru America de Nord și Singapore pentru Asia.

Ghid: Kubernetes cu k3s în trei regiuni

Exemplul folosește trei servere cu Debian 12 sau 13: k3s-eu, k3s-us și k3s-asia. Adresele publice provin din rețeaua de documentare 203.0.113.0/24, iar domeniul este example.com. Înlocuiți ambele cu valorile dumneavoastră.

Pasul 1: provizionarea serverelor în trei regiuni

Comandați trei servere în trei regiuni, cu cel puțin 2 vCPU și 4 GB RAM, astfel încât pe lângă k3s să aibă loc și aplicația dumneavoastră. Aplicați securizarea de bază din lista de verificare pentru servere root noi și alegeți nume de host descriptive. etcd beneficiază în mod clar de SSD-uri rapide, iar stocarea NVMe a serverelor KernelHost îndeplinește această cerință.

Pasul 2: instalarea k3s

Pe fiecare dintre cele trei servere instalați k3s cu o singură comandă. Astfel, fiecare server devine un cluster Kubernetes complet, cu un singur nod:

curl -sfL https://get.k3s.io | sh -
kubectl get nodes

După aproximativ un minut, kubectl get nodes raportează nodul ca Ready. Sunt incluse Traefik drept controller Ingress, Flannel pentru rețea și un provisioner pentru volume locale.

Pasul 3: extinderea la trei servere per regiune

Dacă doriți ca o regiune să aibă ea însăși disponibilitate ridicată, amplasați trei servere în aceeași locație. Primul server pornește etcd-ul integrat, iar celelalte două se alătură cu un token comun. etcd cere un număr impar de servere; cu trei servere, regiunea suportă căderea unui server:

curl -sfL https://get.k3s.io | K3S_TOKEN=TOKEN_SECRET sh -s - server \
    --cluster-init \
    --tls-san=api.eu.example.com
curl -sfL https://get.k3s.io | K3S_TOKEN=TOKEN_SECRET sh -s - server \
    --server https://203.0.113.21:6443 \
    --tls-san=api.eu.example.com

Toate serverele unei regiuni au nevoie de aceleași setări pentru plajele de adrese și pentru funcționalități. Între ele trebuie să fie deschise porturile de la 2379 la 2380/TCP pentru etcd, 6443/TCP pentru API, 10250/TCP pentru Kubelet și 8472/UDP pentru rețeaua Flannel; spre exterior rămân blocate. Tokenul este un secret: cine îl cunoaște poate adăuga propriile servere în cluster.

Pasul 4: configurarea accesului la toate cele trei clustere

k3s salvează datele de acces în /etc/rancher/k3s/k3s.yaml. Copiați fișierul fiecărui cluster pe stația dumneavoastră de lucru, înlocuiți în el 127.0.0.1 cu adresa serverului și denumiți contextele după regiune:

kubectl config rename-context default eu
kubectl config use-context eu
kubectl --context us get nodes

API-ul de pe portul 6443 este cea mai puternică cale de acces la cluster. Permiteți acest acces în firewall doar de la propria adresă sau printr-un VPN, niciodată pentru întregul internet. Fișierul k3s.yaml conține un certificat de administrator și trebuie păstrat cu aceeași grijă ca o parolă de root.

Pasul 5: GitOps cu Flux în fiecare cluster

Pentru ca toate cele trei regiuni să ruleze aceeași aplicație în aceeași versiune, starea dorită se află într-un repository Git, iar în fiecare cluster rulează Flux, care aduce singur clusterul în această stare. Așadar, fiecare cluster își preia singur configurația; nu există niciun server central de livrare care să poată cădea. O structură a repository-ului dovedită în practică:

apps/
  web/            manifestele comune ale aplicației
clusters/
  eu/             setări și versiune pentru Europa
  us/             setări și versiune pentru America de Nord
  asia/           setări și versiune pentru Asia
flux bootstrap git --url=ssh://git@git.example.com/infra/fleet.git --branch=main --path=clusters/eu

Rulați aceeași comandă cu --path=clusters/us și --path=clusters/asia în contextul corespunzător. Deoarece fiecare regiune are propriul director, puteți implementa o versiune nouă mai întâi într-o regiune și abia apoi în celelalte.

Pasul 6: descrierea aplicației pentru toleranță la defecțiuni

În cadrul unei regiuni, trei elemente asigură ca aplicația să supraviețuiască lucrărilor de întreținere și căderilor de servere: mai multe replici distribuite pe noduri diferite, verificări care recunosc pod-urile cu probleme și un buget care împiedică o lucrare de întreținere să elimine toate pod-urile în același timp:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      topologySpreadConstraints:
        - maxSkew: 1
          topologyKey: kubernetes.io/hostname
          whenUnsatisfiable: ScheduleAnyway
          labelSelector:
            matchLabels:
              app: web
      containers:
        - name: web
          image: registry.example.com/web:1.0
          ports:
            - containerPort: 8080
          readinessProbe:
            httpGet:
              path: /health
              port: 8080
            periodSeconds: 5
          livenessProbe:
            httpGet:
              path: /health
              port: 8080
            periodSeconds: 10
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: web
spec:
  minAvailable: 1
  selector:
    matchLabels:
      app: web

Verificarea de readiness scoate un pod din trafic cât timp acesta nu răspunde, iar verificarea de liveness îl repornește dacă se blochează. Într-un cluster cu un singur nod, distribuirea pe mai multe noduri nu are încă efect; ea intră automat în funcțiune de îndată ce regiunea are trei servere.

Pasul 7: Ingress și certificate

Punctul de intrare este asigurat de Traefik, care este deja inclus. Deoarece toate cele trei regiuni servesc același domeniu, obțineți certificatele TLS cu cert-manager prin metoda DNS challenge: aceasta funcționează în fiecare regiune, indiferent încotro indică în acel moment înregistrarea DNS. Metoda HTTP challenge, în schimb, eșuează în fiecare regiune spre care înregistrarea nu indică în acel moment. Cine lucrează fără Ingress Kubernetes găsește noțiunile de bază în articolul Configurarea nginx ca reverse proxy.

Pasul 8: configurarea Geo-DNS cu failover

Un serviciu DNS cu rutare geografică și health checks trimite utilizatorii din Europa la Frankfurt am Main, pe cei din America spre Coasta de Est a SUA și pe cei din Asia în Singapore. În plus, verifică la fiecare 30 până la 60 de secunde dacă punctul de intrare al fiecărei regiuni răspunde. Dacă o regiune cade, serviciul nu mai furnizează adresa ei. Setați TTL-ul înregistrărilor la 60 de secunde; astfel, o comutare este de regulă încheiată după unul sau două minute. Cine dorește să administreze înregistrările din interiorul clusterului poate folosi în acest scop external-dns.

Pasul 9: implementarea regiune cu regiune și testarea căderii

Introduceți o versiune nouă mai întâi în directorul unei singure regiuni, urmăriți regiunea câteva minute și abia apoi preluați versiunea și pentru celelalte. Astfel, o eroare pe care nicio verificare nu o detectează ajunge cel mult într-o singură regiune. Căderea unei regiuni o simulați oprind k3s pe serverul ei, verificând totodată dacă Geo-DNS-ul scoate regiunea din răspunsuri și dacă regiunea vecină preia sarcina:

systemctl stop k3s
systemctl start k3s

Într-o regiune cu trei servere exersați, în plus, întreținerea unui singur server. kubectl drain mută pod-urile respectând bugetul din pasul 6, iar kubectl uncordon repune serverul în funcțiune:

kubectl drain k3s-eu-2 --ignore-daemonsets --delete-emptydir-data
kubectl uncordon k3s-eu-2

Datele între regiuni

Kubernetes distribuie pod-uri, nu date. Un PersistentVolume creat de provisionerul inclus se află pe un singur nod, iar între clustere nu există implicit nicio stocare comună a datelor. Pentru tot ce ține de date se aplică așadar același lucru ca la orice cluster întins pe mai multe locații:

  • Bazele de date se replică singure. O soluție dovedită în practică este o instanță primară într-o regiune, cu replici în celelalte; operatorii de baze de date precum CloudNativePG pentru PostgreSQL suportă astfel de replici și peste granițele dintre clustere. Între continente, replicarea este asincronă, iar în caz de incident pot lipsi ultimele secunde de scrieri. Pentru scrieri fără pierderi la nivel mondial există baze de date concepute pentru mai multe regiuni, precum CockroachDB sau YugabyteDB.
  • Fișierele și upload-urile își au locul într-o stocare de obiecte compatibilă cu S3, cu replicare într-o a doua regiune.
  • Sesiunile se păstrează într-o bază de date replicată sau într-un cache replicat, ori aplicația folosește tokenuri semnate.
  • Backup-urile rămân obligatorii, deoarece replicarea distribuie erorile la fel ca datele bune. Pentru obiectele Kubernetes și volume este potrivit Velero; pentru noțiunile de bază, consultați strategia de backup pentru servere.

Kubernetes cu kubeadm în loc de k3s

Cu kubeadm, arhitectura rămâne aceeași: un cluster per regiune, GitOps, Geo-DNS. Diferă construcția fiecărui cluster. Instalați pe toate nodurile un runtime de containere cum ar fi containerd, plus kubeadm, kubelet și kubectl, puneți în fața API-ului regiunii un load balancer sau o adresă virtuală, de exemplu cu kube-vip, și inițializați primul nod control plane:

kubeadm init --control-plane-endpoint "api.eu.example.com:6443" --upload-certs

Rezultatul afișat conține două comenzi de alăturare: una cu --control-plane --certificate-key pentru celelalte două noduri control plane și una pentru nodurile worker. Apoi instalați un plugin de rețea precum Calico sau Cilium și un controller Ingress, pe care k3s îl include deja. Efortul suplimentar merită atunci când trebuie să alegeți anumite componente în mod țintit sau să rămâneți aproape de versiunea upstream.

De ce KernelHost pentru Kubernetes pe mai multe continente

CerințăDe ce conteazăLa KernelHost
Locații pe mai multe continenteUn cluster per regiune are nevoie de servere în fiecare regiuneFrankfurt am Main plus locații în Europa, America de Nord și Asia-Pacific, de la un singur furnizor
Trafic nelimitatDescărcările de imagini, replicarea bazelor de date și backup-urile generează trafic permanentVPS cu trafic nelimitat fără limită de volum
Stocare rapidăetcd este sensibil la discurile lenteSSD-uri NVMe în RAID
Protecție DDoSFiecare Ingress este accesibil publicInclusă în fiecare locație, iar în locația principală din Frankfurt am Main cu filtrare Arbor în timp real de 3,2 Tbps, fără null-routing
Acces root completk3s, firewallul și setările kernelului au nevoie de control deplinPe fiecare server root KVM și pe fiecare server dedicat
Fără obligații contractualeNodurile și clusterele de test vin și pleacăPrePaid, fără durată minimă, fără taxă de configurare
AutomatizareNodurile noi trebuie să poată fi create prin scriptComandă și administrare prin KernelHost API

Găsiți o prezentare generală a tuturor tarifelor cloud și o comparație a costurilor cu marii furnizori de cloud pe pagina Închiriere server cloud.

Greșeli frecvente și cum le evitați

  • etcd întins pe mai multe continente. Consecințele sunt scrieri lente și alegeri instabile, iar la k3s cu etcd integrat această configurație nu este suportată. Soluție: un cluster per regiune.
  • Două servere într-o regiune. etcd are nevoie de o majoritate, iar două servere nu suportă nicio cădere. Soluție: unul sau trei.
  • API deschis pentru întregul internet. Portul 6443 este cheia universală a clusterului. Soluție: acces doar de la propria adresă sau prin VPN.
  • Server central de livrare. Dacă acesta cade, nu se mai poate implementa nimic. Soluție: Flux în fiecare cluster, care se alimentează singur din Git.
  • Actualizare în toate regiunile simultan. O eroare îi afectează atunci pe toți utilizatorii. Soluție: regiune cu regiune, prin directoarele din repository.
  • Certificate prin HTTP challenge. În regiunile spre care înregistrarea DNS nu indică în acel moment, reînnoirea eșuează. Soluție: DNS challenge.
  • Bază de date pe un volum local, fără replicare. Dacă nodul cade, datele nu mai sunt accesibile. Soluție: replicare printr-un operator de baze de date.
  • Fără probe și fără buget. Pod-urile cu probleme primesc în continuare trafic, iar lucrările de întreținere scot toate pod-urile din rețea în același timp. Soluție: verificări de readiness și liveness plus PodDisruptionBudget.

Pe scurt

  • Pentru Kubernetes pe mai multe continente, soluția corectă este un cluster per regiune; un singur cluster întins pe toate continentele eșuează din cauza latenței etcd.
  • Etapa inițială constă în trei servere, câte unul în SUA, în Europa și în Asia; deja această etapă supraviețuiește căderii unui continent întreg.
  • În etapa de extindere, fiecare regiune primește trei servere în aceeași locație; atunci fiecare regiune supraviețuiește și căderii unor servere individuale.
  • Flux din fiecare cluster implementează aplicația din același repository Git, regiune cu regiune.
  • Geo-DNS cu health checks și TTL scurt trimite utilizatorii către cea mai apropiată regiune funcțională, iar certificatele se obțin prin DNS challenge.
  • Kubernetes distribuie pod-uri, nu date: bazele de date au nevoie de propria replicare, iar backup-urile rămân obligatorii.
  • Pentru această arhitectură, k3s este de obicei o alegere mai bună decât kubeadm, deoarece trei clustere simple sunt mai ușor de operat decât trei clustere complexe.

Întrebări frecvente

Poate un cluster Kubernetes să ruleze pe mai multe continente?
Tehnic, planul de control poate fi distribuit, dar nu este recomandat. Kubernetes își păstrează starea în etcd, iar fiecare scriere are nevoie de confirmarea unei majorități a tuturor membrilor etcd. Între continente, latența este de 80 până la 250 de milisecunde, în timp ce etcd lucrează implicit cu un heartbeat de 100 de milisecunde. Potrivit documentației k3s, etcd-ul integrat nu este suportat în rețele distribuite. Soluția corectă este un cluster per regiune.
Cum se construiește Kubernetes cu disponibilitate ridicată în mai multe regiuni?
Cu un cluster separat pentru fiecare regiune, de exemplu câte un cluster k3s în SUA, în Europa și în Asia. Toate clusterele sunt implementate prin GitOps din același repository Git, de pildă cu Flux în fiecare cluster, iar un Geo-DNS cu health checks trimite utilizatorii către cea mai apropiată regiune funcțională. Dacă o regiune cade, celelalte preiau sarcina, fără să fie nevoie ca o stare comună să fie coordonată peste ocean.
Care este diferența dintre k3s și k8s?
Ambele sunt Kubernetes complet, cu același API și aceleași manifeste. k3s este o distribuție ușoară și certificată, într-un singur fișier binar, care se instalează cu o comandă și include controller Ingress, rețea și provisioner de stocare; un server are nevoie de minimum 2 nuclee și 2 GB RAM. Un cluster k8s cu kubeadm se asamblează din componente individuale, oferă mai multă libertate de alegere și cere mai mult efort.
De câte servere are nevoie un cluster k3s cu disponibilitate ridicată?
Trei noduri server cu etcd integrat, în aceeași locație. etcd are nevoie de o majoritate, așa că trei servere suportă căderea unui server. Două servere nu aduc niciun câștig, deoarece căderea oricăruia dintre ele duce la pierderea majorității. Pentru Kubernetes pe mai multe continente, la început sunt suficiente trei clustere cu un singur nod, câte unul per regiune, deoarece Geo-DNS-ul compensează căderea unei regiuni întregi.
De ce porturi are nevoie k3s?
API-ul Kubernetes și supervisorul k3s rulează pe portul 6443/TCP, Kubelet pe 10250/TCP, rețeaua Flannel cu VXLAN pe 8472/UDP, iar cu WireGuard pe 51820/UDP. La mai multe servere cu etcd integrat se adaugă, între servere, porturile de la 2379 la 2380/TCP. Niciunul dintre aceste porturi nu trebuie deschis spre internet; accesul la API îl permiteți doar de la propria adresă sau prin VPN.
Cum se implementează aplicațiile în mai multe clustere Kubernetes?
Prin GitOps: starea dorită a tuturor clusterelor se află într-un repository Git, iar în fiecare cluster rulează un instrument precum Flux, care aduce singur clusterul în această stare. Fiecare regiune are propriul director, astfel că o versiune nouă poate fi implementată mai întâi într-o regiune și, după o perioadă de observare, în celelalte. În această abordare nu există niciun server central de livrare care să poată cădea.
Cum funcționează failoverul între regiunile Kubernetes?
Printr-un serviciu DNS cu rutare geografică și health checks. Acesta trimite utilizatorii către cea mai apropiată regiune și verifică la fiecare 30 până la 60 de secunde dacă Ingress-ul ei răspunde. Dacă o regiune cade, serviciul nu mai furnizează adresa ei și direcționează utilizatorii către cea mai apropiată regiune funcțională. Cu un TTL de 60 de secunde, comutarea este de regulă încheiată după unul sau două minute.
Cum se păstrează datele la căderea unei regiuni?
Kubernetes distribuie pod-uri, nu date. De aceea, bazele de date se replică singure, de exemplu PostgreSQL cu operatorul CloudNativePG, care operează replici și peste granițele dintre clustere. Între continente, replicarea este asincronă, iar în caz de incident pot lipsi ultimele secunde de scrieri. Fișierele își au locul într-o stocare de obiecte replicată, iar backup-urile regulate, de exemplu cu Velero, rămân obligatorii.
Kubernetes sau Docker Swarm pentru mai multe continente?
Docker Swarm poate fi întins ca un singur cluster pe trei continente și este mult mai simplu de operat. Kubernetes oferă mai multă automatizare și un ecosistem mai mare, dar pe mai multe continente este operat ca un cluster per regiune, iar clusterele sunt reunite prin GitOps. Pentru echipe mici cu aplicații de dimensiuni moderate, Swarm este adesea alegerea pragmatică, iar pentru platforme complexe, Kubernetes.
Ce locații KernelHost sunt potrivite pentru Kubernetes pe mai multe continente?
KernelHost oferă servere în Frankfurt am Main, precum și în alte locații din Europa, America de Nord și Asia-Pacific, printre care trei locații în SUA, Canada, Londra, Strasbourg, Varșovia, Helsinki, Singapore, Japonia, Sydney și Mumbai. O combinație dovedită în practică este Frankfurt am Main, Coasta de Est a SUA și Singapore, cu unul sau trei servere în aceeași locație pentru fiecare regiune.
Cât costă Kubernetes pe trei continente?
În etapa inițială sunt necesare trei servere, câte unul per regiune, iar în etapa de extindere nouă, plus un serviciu DNS cu health checks. k3s în sine este gratuit. Deoarece replicarea, backup-urile și descărcările de imagini generează trafic permanent, tarifele cu trafic nelimitat sunt decisive. La KernelHost, VPS-urile cu trafic nelimitat rulează fără limită de volum, PrePaid, fără durată minimă și fără taxă de configurare, astfel încât clusterele pot fi mărite sau micșorate în funcție de necesități.

Kubernetes k3s k8s kubeadm Disponibilitate ridicată Multi-regiune GitOps Flux Geo-DNS Cloud