Konfigurera AKS-skalning

Slutförd

När du kör program i Azure Kubernetes Service (AKS) kan du behöva öka eller minska mängden beräkningsresurser. När antalet programinstanser du behöver ändras kan antalet underliggande Kubernetes-noder också behöva ändras. Du kan också snabbt behöva etablera ett stort antal ytterligare programinstanser.

Diagram som visar autoskalning av kluster och horisontell autoskalning av poddar.

Skala poddar eller noder manuellt

Du kan skala repliker (poddar) och noder manuellt för att testa hur ditt program svarar på en ändring av tillgängliga resurser och tillstånd. Genom att manuellt skala resurser kan du också definiera en uppsättning resurser som ska användas för att upprätthålla en fast kostnad, till exempel antalet noder. Om du vill skala manuellt definierar du antalet repliker eller noder, och Kubernetes API schemalägger skapande av nya poddar eller tömning av noder.

Horisontell autoskalning av poddar

Kubernetes använder HPA (Horizontal Pod Autoscaler) för att övervaka resursbehovet och automatiskt skala antalet repliker. Som standard kontrollerar horisontell autoskalning av poddar mått-API:et var 30:e sekund efter eventuella nödvändiga ändringar i replikantalet. När ändringar krävs ökas eller minskas antalet repliker i enlighet med detta. Horizontal pod autoscaler fungerar med AKS-kluster som har distribuerat Metrics Server för Kubernetes 1.8+.

När du konfigurerar horisontell autoskalning av poddar för en viss distribution definierar du det lägsta och högsta antalet repliker som kan köras. Du definierar även måttet för att övervaka och basera eventuella skalningsbeslut på, till exempel CPU-användning.

Nedskalning av skalningshändelser

När horisontell autoskalning av poddar kontrollerar mått-API:et var 30:e sekund kanske inte tidigare skalningshändelser har slutförts innan en ny kontroll görs. Det här beteendet kan göra att horisontell autoskalning av poddar ändrar antalet repliker innan den tidigare skalningshändelsen kan ta emot programarbetsbelastningen och resursbehoven justeras därefter.

För att minimera dessa rashändelser kan du ange värden för nedstängning eller fördröjning. Dessa värden definierar hur länge horisontell autoskalning av poddar måste vänta efter en skalningshändelse innan en annan skalningshändelse kan utlösas. Det här beteendet gör att det nya replikantalet kan gälla och mått-API:et återspeglar den distribuerade arbetsbelastningen. Som standard är fördröjningen vid uppskalningshändelser 3 minuter och fördröjningen vid nedskalning är 5 minuter

Du kan behöva finjustera dessa nedsämningsvärden. Standardvärdena för nedrullningsbar nedskalning kan ge intrycket att horisontell autoskalning av poddar inte skalar replikantalet tillräckligt snabbt. Om du till exempel snabbare vill öka antalet repliker som används minskar du när du skapar dina --horizontal-pod-autoscaler-upscale-delay horisontella autoskalningsdefinitioner för poddar med kubectl .

Autoskalning av kluster

För att svara på föränderliga poddkrav har Kubernetes en autoskalning av kluster som justerar antalet noder baserat på de begärda beräkningsresurserna i nodpoolen. Som standard kontrollerar autoskalning av kluster API-servern var 10:e sekund efter nödvändiga ändringar i antalet noder. Om autoskalning av kluster avgör att en ändring krävs ökas eller minskas antalet noder i ditt AKS-kluster. Autoskalning av kluster fungerar med RBAC-aktiverade AKS-kluster som kör Kubernetes 1.10.x eller senare.

Autoskalning av kluster används vanligtvis tillsammans med horisontell autoskalning av poddar. I kombination ökar eller minskar horisontell autoskalning av poddar antalet poddar baserat på programbehovet, och autoskalning av kluster justerar antalet noder efter behov för att köra dessa ytterligare poddar därefter.

Skala upp händelser

Om en nod inte har tillräckligt med beräkningsresurser för att köra en begärd podd kan podden inte gå igenom schemaläggningsprocessen. Podden kan inte starta om inte andra beräkningsresurser är tillgängliga i nodpoolen.

När autoskalning av kluster lägger märke till poddar som inte kan schemaläggas på grund av resursbegränsningar för nodpooler ökas antalet noder i nodpoolen för att tillhandahålla de extra beräkningsresurserna. När dessa ytterligare noder har distribuerats och är tillgängliga för användning i nodpoolen schemaläggs poddarna att köras på dem.

Om programmet behöver skalas snabbt kan vissa poddar finnas kvar i ett tillstånd som väntar på att schemaläggas tills de nya noderna som distribueras av autoskalning av kluster kan acceptera de schemalagda poddarna. För program som har höga burst-krav kan du skala med virtuella noder och Azure Container Instances.

Skala ned händelser

Autoskalning av kluster övervakar också poddens schemaläggningsstatus för noder som inte nyligen har tagit emot nya schemaläggningsbegäranden. Det här scenariot anger att nodpoolen har fler beräkningsresurser än vad som krävs och att antalet noder kan minskas.

En nod som passerar ett tröskelvärde under som inte längre behövs i 10 minuter som standard schemaläggs för borttagning. När den här situationen inträffar schemaläggs poddar för körning på andra noder i nodpoolen och autoskalning av kluster minskar antalet noder.

Dina program kan uppleva vissa avbrott när poddar schemaläggs på olika noder när autoskalning av kluster minskar antalet noder. Du kan minimera störningar genom att undvika program som använder en enda poddinstans.