Begrepp för klusterskalbarhet

Slutförd

Nodsvältning

I nyckeln för spec.containers.resources en YAML-poddfil definierar du antalet resurser som podden kräver. När du har skapat en ny podd i en nod allokerar Kubernetes automatiskt det angivna antalet resurser till podden så att den körs med den mängd energi som krävs.

En enskild nod är en enskild virtuell dator (VM) som har en begränsad mängd resurser tillgängliga för poddar, till exempel CPU och RAM. Du kan inte starta ett oändligt antal poddar i en nod. När en nod inte uppfyller de nödvändiga kraven för poddens resurs konkurrerar podden med de angivna resurserna för nodens resurser, vilket leder till nodsvältning. Podden förblir i statusen Väntar och schemaläggs inte till några noder förrän tillräckligt med resurser är tillgängliga.

Skalbarhet för kluster

För att undvika nodsvält måste operatorn skala ut klustret och lägga till fler virtuella datorer i nodpoolen. Du kan utföra manuell klusterskalning med hjälp av Azure CLI-kommandot az aks scale . Du kan också använda Azure Portal för att skala klustret manuellt. Logga in på portalen och välj ditt AkS-kluster (Azure Kubernetes Service). Under Inställningar väljer du Nodpooler. Välj den nodpool som du vill skala och välj sedan Skala nodpool.

Manuell skalning kan vara överväldigande, särskilt för kluster med inkonsekvent och varierande efterfrågan. När antalet poddar ständigt varierar måste du ständigt övervaka det för oplanerade poddar och göra nödvändiga justeringar i realtid.

Autoskalning av kluster

I AKS automatiserar autoskalningsverktyget för kluster klustret skalningsprocessen. När du aktiverar det i ditt AKS-kluster söker det efter oplanerade poddar med resursbegränsningar och ökar automatiskt antalet noder för att uppfylla kraven.

Diagram som visar hur autoskalning av kluster fungerar.

Autoskalning av kluster kan också minska antalet noder i ett kluster om det finns outnyttjad klusterkapacitet under en angiven tid. När det här villkoret uppfylls spärrar autoskalningsavspärrningen (gör noden otillgänglig för schemaläggning av nya arbetsbelastningar) och tömningar (flyttar de befintliga arbetsbelastningarna till en annan nod) noden. Därför flyttas alla poddar som är schemalagda i noden på ett säkert sätt till andra noder. Det säkerställer också att inga andra poddar schemaläggs under processen. Sedan tar den bort noden från poolen.

Det finns vissa situationer där autoskalning av kluster inte kan ta bort en nod på grund av poddar som inte kan flyttas från noden. Dessa situationer omfattar:

  • En podd skapas direkt med en YAML-fil och är inte bunden till några kontrollanter, till exempel distributioner eller repliker.
  • Poddstörningsbudgeten (PDB) är för restriktiv och tillåter inte att antalet poddar hamnar under ett visst tröskelvärde.
  • Podden har en nodväljare för den specifika noden eller en nodtillhörighet som hindrar den från att gå någon annanstans.

När automatisk skalning är aktiverat inaktiveras manuell klusterskalning.

Kontrollera dina kunskaper

1.

Hur skiljer sig klustrets autoskalning från HPA?

2.

Varför krävs autoskalning av kluster i en produktionsmiljö?

3.

I vilken av dessa situationer misslyckas klustret med att ta bort en nod?