Pagdesinyo sa Kubernetes Clusters: Pila ang Kinahanglan?

Nota. transl.: kini nga materyal gikan sa usa ka proyekto sa edukasyon pagkat-on8s mao ang tubag sa usa ka popular nga pangutana sa dihang nagdesinyo sa Kubernetes-based nga imprastraktura. Kami nanghinaut nga ang patas nga detalyado nga mga paghubit sa mga bentaha ug disbentaha sa matag kapilian makatabang kanimo sa paghimo sa labing kaayo nga kapilian alang sa imong proyekto.

Pagdesinyo sa Kubernetes Clusters: Pila ang Kinahanglan?

TL; DR: ang parehas nga set sa mga workloads mahimong ipadagan sa daghang dagkong clusters (matag cluster adunay daghan nga workloads) o sa daghang gagmay (nga adunay gamay nga gidaghanon sa mga load sa matag cluster).

Sa ubos usa ka lamesa nga nagtimbang-timbang sa mga bentaha ug disbentaha sa matag pamaagi:

Pagdesinyo sa Kubernetes Clusters: Pila ang Kinahanglan?

Kung gigamit ang Kubernetes isip usa ka plataporma sa pagpadagan sa mga aplikasyon, daghang sukaranang mga pangutana ang kanunay nga motumaw bahin sa mga kakuti sa pag-set up sa mga cluster:

  • Pila ka cluster ang akong gamiton?
  • Unsa ka dako ang akong buhaton kanila?
  • Unsa ang kinahanglan iapil sa matag cluster?

Niini nga artikulo, sulayan nako nga tubagon ang tanan niini nga mga pangutana pinaagi sa pag-analisar sa mga bentaha ug disbentaha sa matag pamaagi.

Pamahayag sa usa ka pangutana

Ingon usa ka developer sa software, lagmit nga nag-develop ug nag-operate ka daghang mga aplikasyon sa parehas nga oras.

Dugang pa, daghang mga higayon sa kini nga mga aplikasyon lagmit nga modagan sa lainlaing mga palibot - pananglitan, mahimo kini dev, pagsulay ΠΈ prod.

Ang resulta usa ka tibuok nga matrix sa mga aplikasyon ug palibot:

Pagdesinyo sa Kubernetes Clusters: Pila ang Kinahanglan?
Mga Aplikasyon ug Kalibutan

Ang panig-ingnan sa ibabaw nagrepresentar sa 3 nga mga aplikasyon ug 3 nga mga palibot, nga nagresulta sa usa ka kinatibuk-an nga 9 nga posible nga mga kapilian.

Ang matag instance sa aplikasyon kay usa ka self-contained nga deployment unit nga mahimong magamit nga independente sa uban.

timan-i nga pananglitan sa aplikasyon mahimong naglangkob sa daghan mga sangkap, sama sa frontend, backend, database, ug uban pa. Sa kaso sa usa ka aplikasyon sa microservice, ang pananglitan maglakip sa tanan nga mga microservice.

Ingon usa ka sangputanan, ang mga tiggamit sa Kubernetes adunay daghang mga pangutana:

  • Kinahanglan ba nga ang tanan nga mga kaso sa aplikasyon ibutang sa usa ka cluster?
  • Angayan ba nga adunay usa ka lahi nga kumpol alang sa matag pananglitan sa aplikasyon?
  • O tingali usa ka kombinasyon sa mga pamaagi sa ibabaw ang kinahanglan gamiton?

Ang tanan niini nga mga kapilian mahimo nga mabuhi, tungod kay ang Kubernetes usa ka flexible nga sistema nga wala maglimite sa mga kapabilidad sa tiggamit.

Ania ang pipila sa posible nga mga paagi:

  • usa ka dako nga komon nga cluster;
  • daghang gagmay nga espesyal kaayo nga mga pungpong;
  • usa ka cluster matag aplikasyon;
  • usa ka cluster matag palibot.

Sama sa gipakita sa ubos, ang unang duha ka mga pamaagi anaa sa kaatbang nga mga tumoy sa sukdanan sa mga kapilian:

Pagdesinyo sa Kubernetes Clusters: Pila ang Kinahanglan?
Gikan sa pipila ka dagkong pungpong (wala) ngadto sa daghang gagmay (tuo)

Sa kinatibuk-an, ang usa ka cluster giisip nga "mas dako" kay sa lain kung kini adunay mas dako nga kantidad sa mga node ug pods. Pananglitan, ang usa ka cluster nga adunay 10 ka node ug 100 ka pod mas dako pa kay sa cluster nga adunay 1 ka node ug 10 ka pods.

Aw, magsugod na ta!

1. Usa ka dako nga komon nga cluster

Ang unang kapilian mao ang pagbutang sa tanang workloads sa usa ka cluster:

Pagdesinyo sa Kubernetes Clusters: Pila ang Kinahanglan?
Usa ka dako nga cluster

Sulod niini nga pamaagi, ang cluster gigamit ingon nga usa ka unibersal plataporma sa imprastraktura β€” I-deploy ra nimo ang tanan nga imong kinahanglan sa usa ka naglungtad nga Kubernetes cluster.

Mga namespace Gitugotan sa Kubernetes ang mga bahin sa cluster nga lohikal nga mabulag gikan sa usag usa, aron ang matag aplikasyon nga pananglitan adunay kaugalingon nga namespace.

Atong tan-awon ang mga bentaha ug disbentaha niini nga pamaagi.

+ Epektibo nga paggamit sa mga kahinguhaan

Uban sa usa ka cluster, kinahanglan nimo ang usa ka kopya sa tanan nga mga kapanguhaan nga gikinahanglan sa pagpadagan ug pagdumala sa Kubernetes cluster.

Pananglitan, kini tinuod alang sa mga master node. Kasagaran, ang matag Kubernetes cluster adunay 3 ka master node, mao nga alang sa usa ka cluster ang ilang gidaghanon magpabilin nga ingon niana (alang sa pagtandi, 10 ka clusters magkinahanglan ug 30 ka master node).

Ang labaw sa subtlety magamit usab sa ubang mga serbisyo nga naglihok sa tibuok cluster, sama sa load balancers, Ingress controllers, authentication, logging ug monitoring system.

Sa usa ka cluster, kining tanan nga mga serbisyo mahimong magamit sa usa ka higayon alang sa tanan nga mga workloads (dili kinahanglan nga maghimo og mga kopya niini, sama sa kaso sa daghang mga cluster).

+ Barato

Ingon usa ka sangputanan sa nahisgutan sa itaas, ang mas gamay nga mga pungpong kasagaran mas barato tungod kay wala’y gasto sa overhead.

Tinuod kini labi na alang sa mga master node, nga mahimo’g mogasto ug daghang kantidad sa salapi bisan pa kung giunsa kini gi-host (sa lugar o sa panganod).

Ang uban nagdumala sa mga serbisyo sa Kubernetes, sama sa Google Kubernetes Engine (GKE) o Serbisyo sa Azure Kubernetes (AKS), ihatag ang control layer nga libre. Sa kini nga kaso, ang isyu sa gasto dili kaayo grabe.

Adunay usab gidumala nga mga serbisyo nga nagpabayad sa usa ka piho nga bayad alang sa operasyon sa matag Kubernetes cluster (pananglitan, Amazon Elastic Kubernetes Service, EKS).

+ Epektibo nga administrasyon

Ang pagdumala sa usa ka cluster mas sayon ​​kay sa pagdumala sa daghan.

Ang pagdumala mahimong maglakip sa mosunod nga mga buluhaton:

  • Pag-update sa bersyon sa Kubernetes;
  • pagtukod ug CI/CD pipeline;
  • pag-instalar sa CNI plugin;
  • pag-set up sa usa ka sistema sa pag-authenticate sa user;
  • pag-instalar sa usa ka access controller;

ug uban pa…

Sa kaso sa usa ka cluster, kinahanglan nimong buhaton kini tanan kausa ra.

Alang sa daghang mga kumpol, ang mga operasyon kinahanglan nga balik-balikon sa daghang mga higayon, nga lagmit nanginahanglan pipila nga automation sa mga proseso ug mga himan aron masiguro ang pagkamakanunayon ug pagkamakanunayon sa proseso.

Ug karon pipila ka mga pulong mahitungod sa mga kontra.

βˆ’ Usa ka punto sa kapakyasan

Sa kaso sa pagdumili ang bugtong ang cluster mohunong sa pagtrabaho dayon sa tanan nga mga mga workloads!

Adunay daghang mga paagi nga mahimong sayup ang mga butang:

  • ang pag-update sa Kubernetes mosangpot sa wala damhang epekto;
  • Ang usa ka cluster-wide component (pananglitan, usa ka CNI plugin) nagsugod nga dili molihok sama sa gipaabut;
  • usa sa mga sangkap sa cluster wala gi-configure sa husto;
  • kapakyasan sa nagpahiping imprastraktura.

Ang usa sa ingon nga insidente mahimong hinungdan sa grabe nga kadaot sa tanan nga mga workloads nga gi-host sa usa ka gipaambit nga cluster.

βˆ’ Walay estrikto nga insulasyon

Ang pagdagan sa usa ka gipaambit nga cluster nagpasabut nga ang mga aplikasyon nag-ambit sa hardware, kapabilidad sa networking, ug operating system sa mga cluster node.

Sa usa ka diwa, ang duha ka sudlanan nga adunay duha ka lainlaing aplikasyon nga nagdagan sa parehas nga node sama sa duha nga mga proseso nga nagdagan sa parehas nga makina nga nagdagan sa parehas nga kernel sa OS.

Ang mga sudlanan sa Linux naghatag usa ka porma sa pag-inusara, apan dili kini sama ka kusog sa gihatag sa, ingnon ta, mga virtual machine. Sa esensya, ang usa ka proseso sa usa ka sudlanan mao ang parehas nga proseso nga nagdagan sa host operating system.

Mahimo kini nga isyu sa seguridad: kini nga kahikayan sa teorya nagtugot sa wala’y kalabutan nga mga aplikasyon nga makigkomunikar sa usag usa (tinuyo o wala tuyoa).

Dugang pa, ang tanang workloads sa usa ka Kubernetes cluster nag-ambit sa pipila ka cluster-wide nga serbisyo sama sa DNS - kini nagtugot sa mga aplikasyon sa pagpangita sa mga Serbisyo sa ubang mga aplikasyon sa cluster.

Ang tanan nga mga punto sa ibabaw mahimong adunay lainlaing mga kahulugan depende sa mga kinahanglanon sa seguridad sa aplikasyon.

Naghatag ang Kubernetes og lain-laing mga himan aron mapugngan ang mga isyu sa seguridad sama sa PodSecurityPolicies ΠΈ Mga Polisiya sa Network. Bisan pa, ang husto nga pag-set up niini nanginahanglan pipila nga kasinatian; dugang pa, dili nila masira ang tanan nga mga lungag sa seguridad.

Importante nga hinumdoman kanunay nga ang Kubernetes orihinal nga gidisenyo alang sa pagpaambit, dili para pagkahimulag ug kaluwasan.

βˆ’ Kakulang sa estrikto nga multi-tenancy

Tungod sa kaabunda sa gipaambit nga mga kapanguhaan sa usa ka Kubernetes cluster, adunay daghang mga paagi nga ang lain-laing mga aplikasyon makatunob sa usag usa.

Pananglitan, ang usa ka aplikasyon mahimong magmonopoliya sa usa ka gipaambit nga kapanguhaan (sama sa CPU o memorya) ug isalikway ang ubang mga aplikasyon nga nagdagan sa parehas nga node nga pag-access niini.

Naghatag ang Kubernetes og lainlaing mga mekanismo aron makontrol kini nga pamatasan, sama sa mga hangyo ug limitasyon sa kapanguhaan (tan-awa usab ang artikulo nga " Mga limitasyon sa CPU ug agresibo nga pag-throttling sa Kubernetes "- gibanabana. transl.), ResourceQuotas ΠΈ Mga Limitasyon. Bisan pa, sama sa kaso sa seguridad, ang ilang pag-configure dili kaayo hinungdanon ug dili nila mapugngan ang tanan nga wala damha nga mga epekto.

βˆ’ Daghang mga tiggamit

Sa kaso sa usa ka cluster, kinahanglan nimo nga ablihan ang access niini sa daghang mga tawo. Ug kon mas daghan ang ilang gidaghanon, mas taas ang risgo nga sila "makaguba" sa usa ka butang.

Sulod sa cluster makontrol nimo kung kinsa ang makahimo kung unsa ang gamit kontrol sa pag-access nga gibase sa papel (RBAC) (tan-awa ang artikulo " Mga Gumagamit ug Awtorisasyon RBAC sa Kubernetes "- gibanabana. transl.). Bisan pa, dili kini makapugong sa mga tiggamit sa "paglapas" sa usa ka butang sa sulod sa mga utlanan sa ilang lugar nga responsibilidad.

βˆ’ Ang mga pundok dili mahimong motubo hangtod sa hangtod

Ang cluster nga gigamit para sa tanang workloads lagmit dako kaayo (sa termino sa gidaghanon sa mga node ug pods).

Apan dinhi mitungha ang laing problema: ang mga kumpol sa Kubernetes dili mahimong motubo hangtod sa hangtod.

Adunay usa ka teoretikal nga limitasyon sa gidak-on sa cluster. Sa Kubernetes kini gibanabana 5000 ka node, 150 ka libo ka pod ug 300 ka libo ka mga sudlanan.

Bisan pa, sa tinuud nga kinabuhi, ang mga problema mahimong magsugod sa sayo pa - pananglitan, sa 500 knots.

Ang kamatuoran mao nga ang dagkong mga cluster nagbutang ug taas nga load sa Kubernetes control layer. Sa laing pagkasulti, ang pagpadayon sa cluster ug pagdagan nga epektibo nanginahanglan maampingon nga pag-tune.

Kini nga isyu gisusi sa usa ka may kalabutan nga artikulo sa orihinal nga blog nga gitawag ug "Pag-arkitekto sa mga cluster sa Kubernetes β€” pagpili sa gidak-on sa worker node".

Apan atong tagdon ang kaatbang nga paagi: daghang gagmay nga mga pungpong.

2. Daghang gagmay, espesyal nga mga pungpong

Uban niini nga pamaagi, mogamit ka usa ka lahi nga kumpol alang sa matag elemento nga imong gi-deploy:

Pagdesinyo sa Kubernetes Clusters: Pila ang Kinahanglan?
Daghang gagmay nga mga pungpong

Alang sa katuyoan niini nga artikulo, ubos sa ma-deploy nga elemento nagtumong sa usa ka pananglitan sa usa ka aplikasyon - pananglitan, usa ka bersyon sa dev sa usa ka bulag nga aplikasyon.

Kini nga estratehiya naggamit sa Kubernetes isip usa ka espesyalista runtime alang sa indibidwal nga mga higayon sa aplikasyon.

Atong tan-awon ang mga bentaha ug disbentaha niini nga pamaagi.

+ Limitado nga "blast radius"

Kung mapakyas ang usa ka cluster, ang negatibo nga mga sangputanan limitado lamang sa mga workloads nga gi-deploy sa kana nga cluster. Ang tanan nga ubang mga buluhaton sa trabaho nagpabilin nga wala matandog.

+ Pagbulag

Ang mga workload nga gi-host sa tagsa-tagsa nga mga cluster wala magbahin sa mga kapanguhaan sama sa processor, memorya, operating system, network, o uban pang mga serbisyo.

Ang resulta mao ang hugot nga pag-inusara tali sa wala'y kalabutan nga mga aplikasyon, nga mahimong mapuslanon alang sa ilang seguridad.

+ Gamay nga gidaghanon sa mga tiggamit

Gihatag nga ang matag cluster naglangkob lamang sa usa ka limitado nga hugpong sa mga workloads, ang gidaghanon sa mga tiggamit nga adunay access niini gipakunhod.

Ang mas diyutay nga mga tawo nga adunay access sa cluster, mas ubos ang risgo nga adunay "maguba."

Atong tan-awon ang mga kontra.

βˆ’ Dili episyente nga paggamit sa mga kahinguhaan

Sama sa nahisgutan sa sayo pa, ang matag Kubernetes cluster nanginahanglan usa ka piho nga hugpong sa mga kapanguhaan sa pagdumala: mga master node, control layer nga mga sangkap, pag-monitor ug mga solusyon sa pag-log.

Sa kaso sa usa ka dako nga gidaghanon sa gagmay nga mga clusters, ang usa ka mas dako nga bahin sa mga kapanguhaan kinahanglan nga igahin sa pagdumala.

βˆ’ Mahal

Ang dili maayo nga paggamit sa mga kahinguhaan awtomatik nga nag-apil sa taas nga gasto.

Pananglitan, ang pagpadayon sa 30 ka master node imbes nga tulo nga adunay parehas nga gahum sa pag-compute kinahanglan nga makaapekto sa mga gasto.

βˆ’ Mga kalisud sa pagdumala

Ang pagdumala sa daghang Kubernetes clusters mas lisud kaysa pagdumala sa usa lang.

Pananglitan, kinahanglan nimo nga i-configure ang authentication ug pagtugot alang sa matag cluster. Ang bersyon sa Kubernetes kinahanglan usab nga i-update sa daghang mga higayon.

Lagmit kinahanglan nimo nga gamiton ang automation aron mahimo kining tanan nga mga buluhaton nga mas episyente.

Karon atong tan-awon ang dili kaayo grabe nga mga senaryo.

3. Usa ka cluster kada aplikasyon

Niini nga pamaagi, naghimo ka usa ka bulag nga cluster para sa tanan nga mga higayon sa usa ka partikular nga aplikasyon:

Pagdesinyo sa Kubernetes Clusters: Pila ang Kinahanglan?
Cluster kada aplikasyon

Kini nga dalan mahimong isipon nga usa ka generalization sa prinsipyo "lahi nga cluster matag team”, tungod kay kasagaran usa ka grupo sa mga inhenyero ang nagpalambo sa usa o daghang mga aplikasyon.

Atong tan-awon ang mga bentaha ug disbentaha niini nga pamaagi.

+ Ang cluster mahimong ipasibo sa aplikasyon

Kung ang usa ka aplikasyon adunay espesyal nga mga panginahanglan, mahimo silang ipatuman sa usa ka cluster nga dili makaapekto sa ubang mga cluster.

Ang ingon nga mga panginahanglan mahimong maglakip sa mga trabahante sa GPU, pipila ka mga plugin sa CNI, usa ka mesh sa serbisyo, o uban pang serbisyo.

Ang matag cluster mahimong ipahiangay sa aplikasyon nga nagdagan niini aron kini naglangkob lamang sa gikinahanglan.

βˆ’ Lahi nga palibot sa usa ka cluster

Ang disbentaha sa kini nga pamaagi mao nga ang mga pananglitan sa aplikasyon gikan sa lainlaing mga palibot nag-uban sa parehas nga cluster.

Pananglitan, ang prod nga bersyon sa aplikasyon nagdagan sa parehas nga kumpol sa bersyon sa dev. Nagpasabot usab kini nga ang mga developers naglihok sa samang cluster diin ang produksyon nga bersyon sa aplikasyon gipadagan.

Kung, tungod sa mga aksyon sa mga developer o mga glitches sa bersyon sa dev, usa ka kapakyasan ang mahitabo sa cluster, nan ang prod nga bersyon mahimo usab nga mag-antus - usa ka dako nga disbentaha sa kini nga pamaagi.

Ug sa katapusan, ang katapusang senaryo sa among listahan.

4. Usa ka cluster matag palibot

Kini nga senaryo naglakip sa paggahin ug lahi nga pundok alang sa matag palibot:

Pagdesinyo sa Kubernetes Clusters: Pila ang Kinahanglan?
Usa ka cluster matag palibot

Pananglitan, mahimo kang adunay mga cluster dev, pagsulay ΠΈ prod, diin imong ipadagan ang tanan nga mga higayon sa aplikasyon nga gipahinungod sa usa ka piho nga palibot.

Ania ang mga bentaha ug disbentaha niini nga pamaagi.

+ Pag-inusara sa prod nga palibot

Niini nga pamaagi, ang tanan nga mga palibot nahimulag gikan sa usag usa. Bisan pa, sa praktis kini labi ka hinungdanon sa usa ka palibot nga prod.

Ang mga bersyon sa produksiyon sa aplikasyon karon independente sa kung unsa ang nahitabo sa ubang mga cluster ug palibot.

Niining paagiha, kung ang usa ka problema kalit nga motumaw sa dev cluster, ang mga prod nga bersyon sa mga aplikasyon magpadayon nga molihok ingon nga wala’y nahitabo.

+ Ang cluster mahimong ipasibo sa palibot

Ang matag cluster mahimong ipahiangay sa palibot niini. Pananglitan, mahimo nimo:

  • pag-instalar sa mga himan alang sa pagpalambo ug pag-debug sa dev cluster;
  • i-install ang mga balangkas sa pagsulay ug mga himan sa cluster pagsulay;
  • mogamit ug mas gamhanang hardware ug network channels sa cluster prod.

Gitugotan ka niini nga madugangan ang kaepektibo sa pag-uswag ug operasyon sa aplikasyon.

+ Pagdili sa pag-access sa cluster sa produksiyon

Ang panginahanglan sa pagtrabaho nga direkta sa usa ka prod cluster panagsa ra nga motumaw, aron mahimo nimong limitahan ang lingin sa mga tawo nga adunay access niini.

Mahimo ka nga mopadayon pa ug dumilian ang mga tawo nga maka-access sa kini nga cluster sa tanan, ug himuon ang tanan nga pag-deploy gamit ang usa ka automated nga tool sa CI/CD. Ang ingon nga pamaagi makapamenos sa peligro sa mga sayup sa tawo kung diin kini labing angay.

Ug karon pipila ka mga pulong mahitungod sa mga kontra.

βˆ’ Walay paglainlain tali sa mga aplikasyon

Ang nag-unang disbentaha sa pamaagi mao ang kakulang sa hardware ug resource isolation tali sa mga aplikasyon.

Ang wala'y kalabutan nga mga aplikasyon nag-ambit sa mga kapanguhaan sa cluster: ang kinauyokan sa sistema, processor, memorya, ug uban pang mga serbisyo.

Sama sa nahisgotan na, kini mahimong peligroso.

- Kawalay katakus sa pag-localize sa mga dependency sa aplikasyon

Kung ang usa ka aplikasyon adunay espesyal nga mga kinahanglanon, nan kinahanglan nga matagbaw sila sa tanan nga mga pungpong.

Pananglitan, kung ang usa ka aplikasyon nanginahanglan usa ka GPU, nan ang matag cluster kinahanglan adunay labing menos usa ka trabahante nga adunay usa ka GPU (bisan kung kini gigamit lamang sa kana nga aplikasyon).

Ingon usa ka sangputanan, peligro ang labi ka taas nga gasto ug dili maayo nga paggamit sa mga kapanguhaan.

konklusyon

Kung ikaw adunay usa ka piho nga hugpong sa mga aplikasyon, mahimo silang ibutang sa daghang dagkong mga kumpol o daghang gagmay.

Gihisgotan sa artikulo ang mga bentaha ug disbentaha sa lainlaing mga pamaagi, gikan sa usa ka global nga cluster hangtod sa daghang gagmay ug labi ka espesyalista:

  • usa ka dako nga kinatibuk-ang cluster;
  • daghang gagmay nga espesyal kaayo nga mga pungpong;
  • usa ka cluster matag aplikasyon;
  • usa ka cluster matag palibot.

Busa unsang paagiha ang imong himoon?

Sama sa kanunay, ang tubag nagdepende sa kaso sa paggamit: kinahanglan nimo nga timbangtimbangon ang mga bentaha ug disbentaha sa lainlaing mga pamaagi ug pilia ang labing kamalaumon nga kapilian.

Bisan pa, ang pagpili dili limitado sa mga pananglitan sa ibabaw - mahimo nimong gamiton ang bisan unsang kombinasyon niini!

Pananglitan, mahimo nimong organisahon ang usa ka magtiayon nga mga pungpong alang sa matag team: usa ka cluster sa pag-uswag (diin adunay mga palibot dev ΠΈ pagsulay) ug cluster alang sa produksyon (diin mahimutang ang palibot sa produksiyon).

Pinasukad sa kasayuran sa kini nga artikulo, mahimo nimong ma-optimize ang mga pros ug cons para sa usa ka piho nga senaryo. Good luck!

PS

Basaha usab sa among blog:

Source: www.habr.com

Idugang sa usa ka comment