Ambaratonga telo amin'ny Autoscaling ao amin'ny Kubernetes: Ahoana ny fampiasana azy ireo amin'ny fomba mahomby

Ambaratonga telo amin'ny Autoscaling ao amin'ny Kubernetes: Ahoana ny fampiasana azy ireo amin'ny fomba mahomby
Mba hifehezana tanteraka an'i Kubernetes dia mila mahafantatra fomba isan-karazany ianao amin'ny fampitomboana ny loharanon'ny cluster: amin'ny araka ny filazan'ireo mpamorona rafitra, io no iray amin'ireo andraikitry ny Kubernetes. Nanome topimaso avo lenta momba ny mekanika fanodinkodinana mitsivalana sy mitsangana ary fanovàna cluster izahay, ary koa ny tolo-kevitra momba ny fampiasana azy ireo amin'ny fomba mahomby.

Article Kubernetes Autoscaling 101: Cluster Autoscaler, Horizontal Autoscaler, ary Vertical Pod Autoscaler nadikan'ny ekipa nametraka autoscaling in Kubernetes aaS avy amin'ny Mail.ru.

Nahoana no zava-dehibe ny mieritreritra momba ny scaling

Kubernetes - fitaovana ho an'ny fitantanana ny loharanon-karena sy ny orkestra. Mazava ho azy fa mahafinaritra ny mijery ireo endri-javatra mahafinaritra amin'ny fametrahana, fanaraha-maso ary fitantanana pods (ny pod dia vondron'ny kaontenera natomboka ho valin'ny fangatahana).

Na izany aza, tokony hieritreritra ireto fanontaniana manaraka ireto koa ianao:

  1. Ahoana ny fampitomboana ny modules sy ny fampiharana?
  2. Ahoana ny fitazonana ny kaontenera ho miasa sy mahomby?
  3. Ahoana no hamaliana ny fiovana tsy tapaka amin'ny kaody sy ny enta-mavesatry ny mpampiasa?

Mety ho sarotra ny fanamboarana ireo cluster Kubernetes mba handanjalanjana ny loharanon-karena sy ny zava-bita ary mitaky fahalalana manam-pahaizana momba ny fiasan'ny Kubernetes anatiny. Ny enta-mavesatry ny fampiharana na ny serivisinao dia mety hiovaova mandritra ny andro na mandritra ny adiny iray, ka ny fifandanjana dia heverina ho dingana mitohy.

Ny haavon'ny autoscaling Kubernetes

Ny autoscaling mahomby dia mitaky fandrindrana eo amin'ny ambaratonga roa:

  1. Ny haavon'ny pod, anisan'izany ny marindrano (Horizontal Pod Autoscaler, HPA) sy ny autoscaler mitsangana (Vertical Pod Autoscaler, VPA). Izany dia mampitombo ny loharano misy ho an'ny fitoeranao.
  2. Cluster level, izay tantanin'ny Cluster Autoscaler (CA), izay mampitombo na mampihena ny isan'ny node ao anatin'ny cluster.

Module horizontal Autoscaler (HPA).

Araka ny soso-kevitry ny anarana, ny HPA dia manombana ny isan'ny replika pod. Ny ankamaroan'ny devops dia mampiasa CPU sy fitadidiana ho toy ny trigger amin'ny fanovana ny isan'ny kopia. Na izany aza, azo atao ny manenjana ny rafitra mifototra amin'ny metrika manokanany tsikombakomba na dia metrika ivelany.

Diagram miasa HPA avo lenta:

  1. Ny HPA dia manara-maso tsy tapaka ny soatoavina metrika voatondro mandritra ny fametrahana amin'ny elanelana 30 segondra.
  2. Ny HPA dia manandrana mampitombo ny isan'ny môdôly raha tratra ny tokonam-baravarana voatondro.
  3. Ny HPA dia manavao ny isan'ny kopia ao anatin'ny fanaraha-maso ny fametrahana/fandikana.
  4. Ny mpanara-maso ny deployment/replication dia mametraka modules fanampiny ilaina.

Ambaratonga telo amin'ny Autoscaling ao amin'ny Kubernetes: Ahoana ny fampiasana azy ireo amin'ny fomba mahomby
Ny HPA dia manomboka ny fizotry ny fametrahana ny maody rehefa tratra ny tokonam-bidy

Rehefa mampiasa HPA dia diniho ireto manaraka ireto:

  • Ny elanelana fanamarinana HPA default dia 30 segondra. Ny saina no mametraka azy io horizontal-pod-autoscaler-sync-period ao amin'ny mpitantana mpitantana.
  • 10% ny hadisoana havanana.
  • Aorian'ny fitomboana farany amin'ny isan'ny maody, manantena ny HPA hiorina ao anatin'ny telo minitra ny metrika. Io elanelana io dia napetraky ny saina horizontal-pod-autoscaler-upscale-delay.
  • Aorian'ny fampihenana farany ny isan'ny maody, miandry dimy minitra ny HPA mba hilamina. Io elanelana io dia napetraky ny saina horizontal-pod-autoscaler-downscale-delay.
  • Ny HPA dia miasa tsara indrindra amin'ny zavatra fametrahana fa tsy amin'ny fanaraha-maso replication. Ny autoscaling marindrano dia tsy mifanaraka amin'ny fanavaozana mihodinkodina, izay manodinkodina mivantana ny mpanara-maso replication. Miaraka amin'ny fametrahana, ny isan'ny kopia dia miankina mivantana amin'ny zavatra deployment.

Autoscaling mitsangana amin'ny pods

Vertical autoscaling (VPA) dia manome fotoana na fahatsiarovana CPU bebe kokoa (na latsaka) ho an'ny pods efa misy. Mety amin'ny pods stateful na stateless, fa natao indrindra ho an'ny serivisy stateful. Na izany aza, azonao atao koa ny mampiasa VPA ho an'ny maody tsy misy fanjakana raha toa ka mila manitsy ho azy ny habetsahan'ny loharanon-karena voatokana voalohany.

Ny VPA koa dia mamaly ny hetsika OOM (tsy fitadidiana). Ny fanovana ny fotoana sy ny fitadidiana CPU dia mitaky famerenana indray ny pods. Rehefa atomboka indray dia manaja ny teti-bola famatsiana ny VPA (Pods distribution budget, PDB) mba hiantohana ny isan'ny modules takiana ambany indrindra.

Azonao atao ny mametraka ny loharano faran'izay kely sy ambony indrindra ho an'ny module tsirairay. Noho izany, azonao atao ny mametra ny habetsaky ny fahatsiarovana natokana ho 8 GB. Tena ilaina izany raha tsy afaka manome fahatsiarovana mihoatra ny 8 GB isaky ny fitoeran-javatra ny nodes ankehitriny. Ny famaritana amin'ny antsipiriany sy ny mekanika miasa dia voalaza ao amin'ny VPA wiki ofisialy.

Fanampin'izany, manana fiasa fanolorana mahaliana ny VPA (VPA Recommender). Manara-maso ny fampiasana loharanon-karena sy hetsika OOM amin'ny maody rehetra izy io mba hanolorana fahatsiarovana vaovao sy soatoavin'ny CPU mifototra amin'ny algorithm manan-tsaina mifototra amin'ny metrika ara-tantara. Misy ihany koa ny API izay maka tantana pod ary mamerina ny sandan'ny loharanon-karena naroso.

Tsara ny manamarika fa ny VPA Recommender dia tsy manara-maso ny "limit" loharano. Mety hiteraka ampihimamba ny loharanon-karena ao anatin'ny nodes izany. Tsara kokoa ny mametraka ny fetra amin'ny haavon'ny anarana mba hisorohana ny fitadidiana lehibe na ny fanjifana CPU.

Rafitra fiasa VPA avo lenta:

  1. Ny VPA dia manara-maso tsy tapaka ny soatoavina metrika voatondro mandritra ny fametrahana amin'ny elanelana 10 segondra.
  2. Raha tratra ny fetra voatondro, ny VPA dia manandrana manova ny habetsaky ny loharanon-karena voatokana.
  3. Ny VPA dia manavao ny isan'ny loharanon-karena ao anatin'ny fanaraha-maso ny fametrahana/fandikana.
  4. Rehefa averina indray ny maody, dia ampiharina amin'ireo tranga noforonina ireo loharano vaovao rehetra.

Ambaratonga telo amin'ny Autoscaling ao amin'ny Kubernetes: Ahoana ny fampiasana azy ireo amin'ny fomba mahomby
Manampy ny habetsaky ny loharano ilaina ny VPA

Azafady, tadidio ireto hevitra manaraka ireto rehefa mampiasa VPA:

  • Mitaky famerenana tsy maintsy atao amin'ny pod ny scaling. Ilaina izany mba hialana amin'ny fandidiana tsy marin-toerana aorian'ny fanovana. Ho an'ny fahamendrehana, averina averina ny maody ary zaraina amin'ny nodes mifototra amin'ny loharanon-karena vao natokana.
  • VPA sy HPA dia mbola tsy mifanaraka ary tsy afaka mandeha amin'ny pods iray ihany. Raha mampiasa mekanisma scaling roa ianao ao amin'ny cluster iray ihany, ataovy azo antoka fa manakana azy ireo tsy hivezivezy amin'ny zavatra mitovy ny fandrindranao.
  • Ny VPA dia manitsy ny fangatahana fitahirizana ho an'ny loharanon-karena mifototra amin'ny fampiasana taloha sy ankehitriny. Tsy mametraka fetra fampiasana loharanon-karena izany. Mety misy olana amin'ny fampiharana tsy mandeha tsara ary manomboka maka loharano bebe kokoa hatrany, izany dia hitarika amin'ny Kubernetes hamono ity pod ity.
  • Mbola eo am-pandrosoana ny VPA. Miomàna fa mety hisy fiovana vitsivitsy ny rafitra atsy ho atsy. Afaka mamaky momba ny fetra fantatra и drafitra fampandrosoana. Noho izany, misy ny fikasana hampihatra ny fiaraha-miasan'ny VPA sy HPA, ary koa ny fametrahana ny maody miaraka amin'ny politikan'ny autoscaling mitsangana ho azy ireo (ohatra, marika manokana 'mitaky VPA').

Autoscaling cluster Kubernetes

Cluster Autoscaler (CA) dia manova ny isan'ny node mifototra amin'ny isan'ny pods miandry. Manara-maso tsindraindray ny maody miandry ny rafitra - ary mampitombo ny haben'ny cluster raha ilaina ny loharanon-karena bebe kokoa ary raha tsy mihoatra ny fetra napetraka ny cluster. Mifandray amin'ny mpanome tolotra rahona ny CA, mangataka node fanampiny avy aminy, na mamoaka ireo tsy miasa. Ny dikan-teny voalohany amin'ny ankapobeny an'ny CA dia nampidirina tao amin'ny Kubernetes 1.8.

Skema avo lenta amin'ny fiasan'ny SA:

  1. Ny CA dia manara-maso ny maody ao amin'ny fanjakana miandry amin'ny elanelana 10 segondra.
  2. Raha misy pod iray na maromaro ao anatin'ny toe-javatra miambina satria tsy manana loharanon-karena ampy ny cluster mba hanomezana azy ireo, dia manandrana manome node fanampiny iray na maromaro izy.
  3. Rehefa atolotry ny mpanome tolotra rahona ny node ilaina dia miditra amin'ny cluster izy ary vonona ny hanompo ny pods.
  4. Ny mpandrindra Kubernetes dia mizara pods miandry amin'ny node vaovao. Raha toa ka mbola mijanona ao anatin'ny fiandrasana ny mody sasany aorian'io, dia averina ny dingana ary ampiana node vaovao ao amin'ny cluster.

Ambaratonga telo amin'ny Autoscaling ao amin'ny Kubernetes: Ahoana ny fampiasana azy ireo amin'ny fomba mahomby
Famatsiana mandeha ho azy ireo node cluster ao amin'ny rahona

Diniho ireto manaraka ireto rehefa mampiasa CA:

  • Ny CA dia miantoka fa ny pods rehetra ao amin'ny cluster dia manana toerana handehanana, na inona na inona enta-mavesatra CPU. Miezaka ihany koa ny miantoka fa tsy misy nodes tsy ilaina ao amin'ny cluster.
  • Ny CA dia manoratra ny filàna mizana rehefa afaka 30 segondra eo ho eo.
  • Raha vantany vao tsy ilaina intsony ny node, dia miandry 10 minitra ny CA alohan'ny hanesorana ny rafitra.
  • Ny rafitra autoscaling dia manana ny foto-kevitry ny expanders. Ireo dia paikady samihafa amin'ny fisafidianana vondrona node izay hampidirana node vaovao.
  • Ampiasao amim-pahamendrehana ny safidy cluster-autoscaler.kubernetes.io/safe-to-evict (marina). Raha mametraka pods be dia be ianao, na raha maro amin'izy ireo no miparitaka manerana ny node rehetra, dia ho very ny fahafahanao manapaka ny cluster.
  • fampiasana PodDisruptionBudgetsmba tsy ho voafafa ny pods, izay mety hahatonga ny ampahany amin'ny fampiharanao ho tapaka tanteraka.

Ahoana ny fifandraisan'ny autoscalers Kubernetes amin'ny tsirairay

Mba hisian'ny firindrana tonga lafatra, dia tokony hampiharina amin'ny haavon'ny pod (HPA/VPA) sy ny haavon'ny cluster. Mifampiresaka amin'ny fomba tsotra izy ireo:

  1. Ny HPA na ny VPA dia manavao ny dika mitovy na loharano natokana ho an'ny pods efa misy.
  2. Raha toa ka tsy ampy ny node ho an'ny scaling nomanina, ny CA dia manamarika ny fisian'ny pods ao anatin'ny toe-javatra miandry.
  3. Ny CA dia manome nodes vaovao.
  4. Ny modules dia zaraina amin'ny nodes vaovao.

Ambaratonga telo amin'ny Autoscaling ao amin'ny Kubernetes: Ahoana ny fampiasana azy ireo amin'ny fomba mahomby
Rafitra fanamafisam-peo Kubernetes fiaraha-miasa

Fahadisoana mahazatra amin'ny fanokafana fiara Kubernetes

Betsaka ny olana mahazatra mitranga rehefa manandrana mampihatra autoscaling.

Ny HPA sy VPA dia miankina amin'ny metrika sy angona ara-tantara sasany. Raha tsy ampy ny loharanon-karena atolotra, dia hahena ny maodely ary tsy ho afaka hamokatra metrika. Amin'ity tranga ity dia tsy hitranga mihitsy ny autoscaling.

Ny fiasan'ny scaling mihitsy dia saro-pady amin'ny fotoana. Tianay ny mirefy haingana ny maody sy ny cluster - alohan'ny hahatsikaritra olana na tsy fahombiazana ny mpampiasa. Noho izany, tokony hojerena ny fotoana antonony ho an'ny scaling pods sy ny cluster.

Scenario tsara indrindra - 4 minitra:

  1. 30 segondra. Fanavaozana ny metrika kendrena: 30−60 segondra.
  2. 30 segondra. HPA manamarina ny soatoavina metrika: 30 segondra.
  3. Latsaky ny 2 segondra. Noforonina ny pods ary miditra amin'ny toetry ny fiandrasana: 1 segondra.
  4. Latsaky ny 2 segondra. Hitan'ny CA ny maody miandry ary mandefa antso any amin'ny node provision: 1 segondra.
  5. 3 minitra. Ny mpamatsy rahona dia manome nodes. Ny K8 dia miandry mandra-pahavitany: hatramin'ny 10 minitra (miankina amin'ny antony maromaro).

Tranga ratsy indrindra (zava-misy kokoa) - 12 minitra:

  1. 30 segondra. Havaozy ny metrika kendrena.
  2. 30 segondra. HPA dia manamarina ny soatoavina metrika.
  3. Latsaky ny 2 segondra. Ny pods dia noforonina ary miditra amin'ny toetry ny standby.
  4. Latsaky ny 2 segondra. Ny CA dia mahita ny maody miandry ary manao antso mba hanomezana ny nodes.
  5. 10 minitra. Ny mpamatsy rahona dia manome nodes. K8 dia miandry mandra-pahavonon'izy ireo. Miankina amin'ny lafin-javatra maro ny fotoana fiandrasana, toy ny fahataran'ny mpivarotra, ny fahatarana ny OS, ary ny fitaovana fanohanana.

Aza afangaro amin'ny CA-nay ny mekanika fanamafisam-peo ataon'ny mpamatsy rahona. Ity farany dia mandeha ao anaty cluster Kubernetes, raha ny motera mpamatsy rahona kosa dia miasa amin'ny fizarana node. Tsy fantany izay mitranga amin'ny pods na ny fampiharanao. Miara-miasa ireo rafitra ireo.

Ahoana ny fitantanana scaling amin'ny Kubernetes

  1. Kubernetes dia fitaovana fitantanana loharanon-karena sy orkestra. Ny fampandehanana ny fitantanana ny pods sy ny loharanon-karena dia dingana lehibe amin'ny fifehezana ny Kubernetes.
  2. Fantaro ny lojikan'ny scalability pod raha jerena ny HPA sy VPA.
  3. Ny CA dia tsy tokony hampiasaina raha tsy azonao tsara ny filan'ny pods sy ny fitoeranao.
  4. Mba handrindrana tsara ny kluster iray dia mila mahafantatra ny fomba fiasan'ny rafitra fanamafisam-peo samihafa ianao.
  5. Rehefa manombantombana ny fotoana fanisana, dia tadidio ao an-tsaina ny toe-javatra ratsy indrindra sy ny tranga tsara indrindra.

Source: www.habr.com

Add a comment