Resourcereserveringen voor knooppunten in Azure Kubernetes Service (AKS)

In dit artikel krijgt u meer informatie over knooppuntresourcereserveringen in Azure Kubernetes Service (AKS).

Resourcereserveringen

AKS maakt gebruik van knooppuntbronnen om de knooppunten te helpen functioneren als onderdeel van het cluster. Dit gebruik kan een discrepantie veroorzaken tussen de totale resources van het knooppunt en de resources die kunnen worden toegevoegd aan AKS.

AKS reserveert twee typen resources, CPU en geheugen, op elk knooppunt om de prestaties en functionaliteit van knooppunten te behouden. Naarmate een knooppunt meer resources krijgt, nemen ook de resource-reserveringen toe door de grotere beheerbehoefte van door gebruikers geïmplementeerde pods. Houd er rekening mee dat u geen resourcereserveringen op een knooppunt kunt wijzigen.

CPU-reserveringen

Gereserveerde CPU is afhankelijk van het knooppunttype en de clusterconfiguratie, wat kan leiden tot minder toe te schrijven CPU vanwege het uitvoeren van extra functies. In de volgende tabel ziet u CPU-reserveringen in millicores:

CPU-kernen op hostcomputer 1 kern 2 kernen 4 kernen 8 kernen 16 kernen 32 kernen 64 kernen
Voor Kube gereserveerde CPU (millicores) 60 100 140 180 260 420 740

Geheugenreserveringen

In AKS bestaat gereserveerd geheugen uit de som van twee waarden:

AKS 1.29 en hoger

  • kubelet daemon heeft standaard de memory.available < 100 Mi-ontruimingsregel. Deze regel zorgt ervoor dat een knooppunt altijd ten minste 100 Mi allocatable beschikbaar heeft. Wanneer een host zich onder die beschikbare geheugendrempel bevindt, wordt de kubelet beëindiging van een van de actieve pods geactiveerd en wordt geheugen vrijgemaakt op de hostcomputer.

  • Een hoeveelheid geheugenreservering ingesteld op basis van de laagste van de volgende waarden: 20 MB * het maximumaantal pods dat op het knooppunt wordt ondersteund + 50 MB of 25% van het totale systeemgeheugen.

    Examples:

    • Als de virtuele machine (VM) 8 GB geheugen biedt en het knooppunt maximaal 30 pods ondersteunt, reserveert AKS 20 MB * 30 Max Pods + 50 MB = 650 MB voor kube-reserved. Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable.
    • Als de VM 4 GB geheugen biedt en het knooppunt maximaal 70 pods ondersteunt, reserveert AKS 25% * 4 GB = 1000 MB voor kube-reserved, omdat dit minder dan 20 MB * 70 Max Pods + 50 MB = 1450 MB is.

    Zie het maximum aantal pods per knooppunt configureren in een AKS-cluster voor meer informatie.

Opmerking

Als u kubeReserved CPU- en geheugenwaarden wilt aanpassen of hardEvictionThreshold op Linux-nodepools, gebruikt u de preview-instellingen voor aangepaste nodeconfiguratie en registreert u de featureflag AKSNodeCustomizationPreview. Zie De knooppuntconfiguratie aanpassen voor Azure Kubernetes Service (AKS) knooppuntgroepen voor meer informatie.

AKS-versies vóór 1.29

  • kubelet daemon heeft standaard de ontruimingsregel memory.available < 750 Mi. Deze regel zorgt ervoor dat een knooppunt altijd ten minste 750 Mi aan toewijsbare capaciteit beschikbaar heeft. Wanneer een host zich onder die beschikbare geheugendrempel bevindt, wordt de kubelet beëindiging van een van de actieve pods geactiveerd en wordt geheugen vrijgemaakt op de hostcomputer.
  • Een regressieve hoeveelheid geheugenreserveringen voor de kubelet-daemon om goed te functioneren (kube-reserved).
    • 25% van de eerste 4 GB geheugen
    • 20% van de volgende 4 GB geheugen (maximaal 8 GB)
    • 10% van de volgende 8 GB geheugen (maximaal 16 GB)
    • 6% van de volgende 112 GB geheugen (maximaal 128 GB)
    • 2% van elk geheugen meer dan 128 GB

Opmerking

AKS reserveert een extra 2 GB voor systeemprocessen in Windows knooppunten die geen deel uitmaken van het berekende geheugen.

Regels voor geheugen- en CPU-toewijzing zijn ontworpen voor:

  • Houd agentknooppunten in orde, inclusief enkele hostingsysteempods die essentieel zijn voor de clusterstatus.
  • Zorg ervoor dat het knooppunt minder toewijsbaar geheugen en CPU rapporteert dan wanneer het geen deel uitmaakt van een Kubernetes-cluster.

Als een knooppunt bijvoorbeeld 7 GB biedt, wordt 34% geheugen gerapporteerd dat niet kan worden toegedeeld, inclusief de drempelwaarde voor harde verwijdering van 750 Mi.

0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved

Naast reserveringen voor Kubernetes zelf, behoudt het onderliggende knooppuntbesturingssysteem ook een hoeveelheid CPU- en geheugenbronnen voor het onderhouden van besturingssysteemfuncties.

Zie voor bijbehorende best practices Best practices voor basisfuncties van de scheduler in AKS.

Volgende stappen