
Fir Kubernetes voll ze beherrschen, musst Dir verschidde WeeĂ«r wĂ«ssen fir Clusterressourcen ze skalĂ©ieren: duerch , DĂ«st ass eng vun den Haaptaufgaben vu Kubernetes. Mir hunn en hĂ©ijen IwwerblĂ©ck iwwer horizontalen a vertikalen AutoskalĂ©ierungs- a ClustergrĂ©isstmechanismus zur VerfĂŒgung gestallt, souwĂ©i Empfehlungen wĂ©i se se effektiv benotzen.
Artikel iwwersat vun der Equipe déi Autoscaling implementéiert huet .
Firwat et wichteg ass iwwer d'Skaléierung ze denken
- en Instrument fir Ressource Gestioun an Orchestratioun. Natierlech ass et flott mat de coolen Features vun der Aussetzung, der Iwwerwaachung an der Gestioun vu Pods (e Pod ass eng Grupp vu Container, dĂ©i als Ăntwert op eng Ufro gestart ginn) ze tinken.
Allerdéngs sollt Dir och iwwer déi folgend Froen denken:
- Wéi Skala Moduler an Uwendungen?
- Wéi halen d'Container operationell an effizient?
- WĂ©i reagĂ©iert op konstant Ănnerungen am Code an Aarbechtsbelaaschtunge vu Benotzer?
Kubernetes Cluster konfigurĂ©ieren fir Ressourcen a Performance ze balancĂ©ieren kann Erausfuerderung sinn a erfuerdert ExpertwĂ«ssen iwwer d'Bannenaarbecht vu Kubernetes. D'Aarbechtslaascht vun Ărer Applikatioun oder Servicer kann de ganzen Dag schwanken oder souguer am Laf vun enger Stonn, sou datt d'Balance am beschten als e lafende Prozess geduecht ass.
Kubernetes Autoscaling Niveauen
Effektiv Autoskaléierung erfuerdert Koordinatioun tëscht zwee Niveauen:
- Pod Niveau, dorĂ«nner horizontal (Horizontal Pod Autoscaler, HPA) a vertikalen Autoscaler (Vertical Pod Autoscaler, VPA). DĂ«st skalĂ©iert dĂ©i verfĂŒgbar Ressourcen fir Ăr Container.
- Clusterniveau, dee vum Cluster Autoscaler (CA) geréiert gëtt, wat d'Zuel vun den Noden am Cluster erhéicht oder reduzéiert.
Horizontal Autoscaler (HPA) Modul
Wéi den Numm et scho seet, skaléiert HPA d'Zuel vun de Pod Repliken. Déi meescht Devops benotzen d'CPU an d'Erënnerungsbelaaschtung als Ausléiser fir d'Zuel vun de Repliken z'Ànneren. Wéi och ëmmer, et ass méiglech de System op Basis ze skaléieren , hir oder souguer .
Héichniveau HPA Betribsdiagramm:
- Den HPA kontrolléiert kontinuéierlech déi metresch WÀerter, déi wÀhrend der Installatioun spezifizéiert sinn, mat engem Standardintervall vun 30 Sekonnen.
- D'HPA probéiert d'Zuel vun de Moduler ze erhéijen wann de spezifizéierte Schwell erreecht gëtt.
- Den HPA aktualiséiert d'Zuel vun de Repliken am Deployment / Replikatiounscontroller.
- Den Deployment / Replikatiounscontroller setzt dann all néideg zousÀtzlech Moduler of.

HPA fÀnkt de Modul Deployment Prozess un wann e metresche Schwell erreecht gëtt
Wann Dir HPA benotzt, betruecht déi folgend:
- De Standard HPA Kontrollintervall ass 30 Sekonnen. Et gëtt vum FÀndel gesat horizontal-pod-autoscaler-sync-period am Controller Manager.
- De Standard relativ Feeler ass 10%.
- No der leschter Erhéijung vun der Unzuel vun de Moduler erwaart HPA datt d'Metriken bannent drÀi Minutten stabiliséieren. Dësen Intervall gëtt vum FÀndel festgeluecht horizontal-pod-autoscaler-upscale-delay.
- No der leschter Reduktioun vun der Unzuel vun de Moduler waart d'HPA fënnef Minutten fir ze stabiliséieren. Dësen Intervall gëtt vum FÀndel festgeluecht horizontal-pod-autoscaler-downscale-delay.
- HPA funktionnéiert am Beschten mat Deploymentobjekter anstatt Replikatiounscontroller. Horizontal Autoscaling ass inkompatibel mam Rolling Update, deen direkt Replikatiounscontroller manipuléiert. Mat Ofbau hÀnkt d'Zuel vun de Repliken direkt vun den Ofbauobjekte of.
Vertikal Autoskaléierung vu Pods
Vertikal Autoskaléierung (VPA) verdeelt méi (oder manner) CPU ZÀit oder Erënnerung un existent Pods. Gëeegent fir statesch oder stateless Pods, awer haaptsÀchlech fir stateful Servicer geduecht. Wéi och ëmmer, Dir kënnt och VPA fir stateless Moduler benotzen wann Dir automatesch de Betrag vun ursprénglech zougeloossene Ressourcen upassen musst.
VPA reagéiert och op OOM (aus Erënnerung) Eventer. D'CPU ZÀit an d'Erënnerung Ànneren erfuerdert d'Pods nei ze starten. Wann nei gestart, respektéiert de VPA den Allocatiounsbudget () fir déi minimal erfuerderlech Unzuel u Moduler ze garantéieren.
Dir kënnt de Minimum a maximal Ressourcen fir all Modul Formatioun. Sou kënnt Dir de maximalen Betrag vun zougewisen Erënnerung op 8 GB limitéieren. Dëst ass nëtzlech wann déi aktuell Wirbelen definitiv net méi wéi 8 GB Erënnerung pro Container kënnen allocéieren. Detailléiert Spezifikatioune a Betribssystemer Mechanismus sinn beschriwwen an .
ZousÀtzlech huet VPA eng interessant Empfehlungsfunktioun (VPA Recommender). Et iwwerwaacht Ressourceverbrauch an OOM Eventer vun alle Moduler fir nei Erënnerungs- an CPU-ZÀitwÀerter ze proposéieren baséiert op engem intelligenten Algorithmus baséiert op historesche Metriken. Et gëtt och eng API déi e Pod-Griff hëlt a proposéiert RessourcewÀerter zréckginn.
Et ass derwÀert ze notéieren datt de VPA Recommender d'Ressource "Limite" net verfollegt. Dëst kann dozou féieren datt de Modul Ressourcen bannent Wirbelen monopoliséiert. Et ass besser d'Limite um Nummraumniveau ze setzen fir en enorme GedÀchtnis oder CPU Konsum ze vermeiden.
Héichniveau VPA Operatioun Schema:
- VPA kontrolléiert kontinuéierlech déi metresch WÀerter, déi wÀhrend der Installatioun spezifizéiert sinn, mat engem Standardintervall vun 10 Sekonnen.
- Wann de spezifizéierte Schwell erreecht gëtt, probéiert de VPA den zougewisenen Betrag vun de Ressourcen z'Ànneren.
- De VPA aktualiséiert d'Zuel vun de Ressourcen am Deployment / Replikatiounscontroller.
- Wann Moduler nei gestart ginn, ginn all nei Ressourcen op déi erstallt Instanzen applizéiert.

VPA fĂŒĂŒgt dĂ©i erfuerderlech QuantitĂ©it u Ressourcen derbĂ€i
Halt w.e.g. déi folgend Punkten am Kapp wann Dir VPA benotzt:
- SkalĂ©ieren erfuerdert en obligatoresche Restart vum Pod. DĂ«st ass nĂ©ideg fir onbestĂ€nneg Operatioun ze vermeiden nodeems Dir Ănnerungen gemaach hutt. Fir ZouverlĂ€ssegkeet, Moduler ginn nei gestart a verdeelt iwwer Wirbelen basĂ©iert op nei zougeloossene Ressourcen.
- VPA an HPA sinn nach net matenee kompatibel a kĂ«nnen net op dĂ©iselwecht Pods lafen. Wann Dir bĂ©id SkalĂ©ierungsmechanismen am selwechte Cluster benotzt, gitt sĂ©cher datt Ăr Astellunge verhĂ«nneren datt se op dĂ©iselwecht Objeten aktivĂ©iert ginn.
- VPA tunt Container Ufroe fir Ressourcen baséiert nëmmen op vergaangen an aktuell Notzung. Et setzt keng Ressourceverbrauchsgrenzen. Et kënne Probleemer sinn mat Uwendungen déi net korrekt funktionnéieren a méi a méi Ressourcen ufÀnken ze iwwerhuelen, dëst féiert dozou datt Kubernetes dëse Pod ausschalt.
- VPA ass nach an engem frĂ©ie Stadium vun der EntwĂ©cklung. Sidd bereet datt de System an der nĂ€chster Zukunft e puer Ănnerungen Ă«nnergoe kann. Dir kĂ«nnt iwwer liesen Đž . Also, et gi PlĂ€ng fir d'gemeinsame Operatioun vu VPA an HPA Ă«mzesetzen, souwĂ©i d'Deployment vu Moduler zesumme mat enger vertikaler AutoskalĂ©ierungspolitik fir si (zum Beispill e spezielle Label "erfuerdert VPA").
Autoscaling e Kubernetes Cluster
Cluster Autoscaler (CA) Ă€nnert d'Zuel vun de Wirbelen basĂ©iert op der Unzuel vun de Waardepods. De System kontrollĂ©iert periodesch fir pendend Moduler - a vergrĂ©issert d'ClustergrĂ©isst wann mĂ©i Ressourcen gebraucht ginn a wann de Cluster net dĂ©i etablĂ©iert Grenzen iwwerschreift. De CA kommunizĂ©iert mam Cloud Service Provider, freet zousĂ€tzlech Node vun him oder verĂ«ffentlecht Idle. DĂ©i Ă©ischt allgemeng verfĂŒgbar Versioun vum CA gouf a Kubernetes 1.8 agefouert.
Héichniveau Schema vun der SA Operatioun:
- CA iwwerpréift fir pendend Moduler mat engem Standardintervall vun 10 Sekonnen.
- Wann een oder mĂ©i Pods an engem Standby-Staat sinn, well de StĂ€rekoup net genuch verfĂŒgbare Ressourcen huet fir se ze verdeelen, probĂ©iert et een oder mĂ©i zousĂ€tzlech Noden zur VerfĂŒgung ze stellen.
- Wann de Cloud-Déngschtleeschter den erfuerderlechen Node verdeelt, schléisst hien an de Cluster an ass prett fir d'Pods ze déngen.
- De Kubernetes Scheduler verdeelt pendend Pods op en neien Node. Wann duerno nach e puer Moduler an engem Waardezoustand bleiwen, gĂ«tt de Prozess widderholl an nei Wirbelen ginn an de Cluster bĂ€igefĂŒĂŒgt.

Automatesch Versuergung vu Clusternoden an der Wollek
Bedenkt déi folgend wann Dir CA benotzt:
- CA garantéiert datt all Pods am StÀrekoup Plaz hunn fir ze lafen, onofhÀngeg vun der CPU-Laascht. Et probéiert och ze garantéieren datt et keng onnéideg Wirbelen am Cluster sinn.
- CA registréiert de Besoin fir ze skaléieren no ongeféier 30 Sekonnen.
- Wann e Node net méi gebraucht gëtt, ass de CA Standard fir 10 Minutten ze waarden ier de System ausskaléiert.
- D'Autoscaling System huet d'Konzept vun expanders. DĂ«st si verschidde Strategien fir eng Grupp vu Wirbelen ze wielen, zu deenen nei Wirbelen bĂ€igefĂŒĂŒgt ginn.
- Benotzt d'Optioun verantwortlech cluster-autoscaler.kubernetes.io/safe-to-evict (true). Wann Dir vill Pods installéiert, oder wa vill vun hinnen iwwer all Node verspreet sinn, verléiert Dir gréisstendeels d'FÀegkeet fir de Cluster auszebauen.
- Benotzt fir ze verhĂ«nneren datt Pods gelĂ€scht ginn, wat d'Deeler vun Ărer Applikatioun komplett briechen.
Wéi Kubernetes Autoscalers mateneen interagéieren
Fir perfekt Harmonie soll d'Autoskaléierung souwuel um Podniveau (HPA / VPA) wéi och um Clusterniveau applizéiert ginn. Si interagéieren mateneen relativ einfach:
- HPAs oder VPAs aktualiséieren Pod Repliken oder Ressourcen, déi un existente Pods zougewisen sinn.
- Wann et net genuch Wirbelen fir déi geplangte Skaléierung sinn, bemierkt de CA d'PrÀsenz vu Pods an engem Waardezoustand.
- De CA verdeelt nei Noden.
- Moduler ginn op nei Wirbelen verdeelt.

Kollaborativ Kubernetes Skala-Out System
Gemeinsam Feeler am Kubernetes Autoscaling
Et gi verschidde gemeinsame Probleemer déi devops lafen wann Dir probéiert Autoscaling ëmzesetzen.
HPA a VPA hÀnke vu Metriken an e puer historesch Daten of. Wann net genuch Ressourcen zougedeelt ginn, ginn d'Module miniméiert a kënnen net Metriken generéieren. An dësem Fall wÀert d'Autoscaling ni geschéien.
D'SkalĂ©ierungsoperatioun selwer ass ZĂ€itempfindlech. Mir wĂ«llen datt d'Moduler an de StĂ€rekoup sĂ©ier skalĂ©ieren - ier d'Benotzer Problemer oder Feeler bemierken. Dofir sollt d'DuerchschnĂ«ttszĂ€it fir d'SkalĂ©ierung vun de Pods an de Cluster berĂŒcksichtegt ginn.
Ideal Szenario - 4 Minutten:
- 30 Sekonnen. Update Zil Metriken: 30-60 Sekonnen.
- 30 Sekonnen. HPA kontrolléiert metresch WÀerter: 30 Sekonnen.
- Manner wéi 2 Sekonnen. Pods ginn erstallt a ginn an d'Waardestand: 1 Sekonn.
- Manner wéi 2 Sekonnen. CA gesÀit waarden Moduler a schéckt Uriff ze Dispositioun Wirbelen: 1 zweet.
- 3 Minutten. De Cloud Provider verdeelt Noden. K8s waarden bis se prett sinn: bis zu 10 Minutten (je e puer Faktoren).
Schlëmmste Fall (méi realistesch) Szenario - 12 Minutten:
- 30 Sekonnen. Update Zil Metriken.
- 30 Sekonnen. HPA iwwerpréift déi metresch WÀerter.
- Manner wéi 2 Sekonnen. D'Pods ginn erstallt a gitt an de Standby-Status.
- Manner wéi 2 Sekonnen. De CA gesÀit d'Waardemoduler a mécht Uruff fir d'KnÀppchen ze versuergen.
- 10 Minutten. De Cloud Provider verdeelt Noden. K8s waarden bis se prett sinn. D'WaardezÀit hÀnkt vu verschiddene Faktoren of, sou wéi Verkeefer Verspéidung, OS Verzögerung, an Support Tools.
Duercherneen net d'SkalĂ©ierungsmechanismen vun de Cloud Provider mat eisem CA. DĂ©i lescht leeft an engem Kubernetes Cluster, wĂ€hrend de Cloud Provider Motor op enger Node Verdeelungsbasis funktionnĂ©iert. Et weess net wat mat Ăre Pods oder Applikatioun lass ass. DĂ«s Systemer funktionnĂ©ieren parallel.
Wéi verwalten d'Skaléierung a Kubernetes
- Kubernetes ass e Ressource Management an Orchestratiounsinstrument. Operatiounen fir d'Gestioun vun Pods a Cluster Ressourcen sinn e Schlëssel Meilesteen am Meeschter um Kubernetes.
- Verstinn d'Logik vun der Pod Skalierbarkeet mat HPA a VPA berĂŒcksichtegt.
- CA sollt nĂ«mme benotzt ginn wann Dir e gutt VerstĂ€ndnis vun de Bedierfnesser vun Ăre Pods a Container hutt.
- Fir e StÀrekoup optimal ze konfiguréieren, musst Dir verstoen wéi verschidde Skaléierungssystemer zesumme schaffen.
- Wann Dir d'SkaléierungszÀit schÀtzt, behalen am schlëmmste Fall a beschte Fall Szenarie am Kapp.
Source: will.com
