Delen via


Knooppuntresourcereserveringen 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 groter wordt in resources, groeien de resourcereserveringen ook vanwege een hogere behoefte aan beheer van door de gebruiker 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 host 1 kern 2 kernen 4 kernen 8 kernen 16 kerngeheugens 32 kernen 64 kernen
Gereserveerde CPU van Kube (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 regel memory.available < 100 Mi eviction. Deze regel zorgt ervoor dat een knooppunt te allen tijde ten minste 100 Mi-allocatable 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 snelheid van geheugenreserveringen die zijn ingesteld op basis van de mindere waarde: 20 MB * Max Pods die worden ondersteund op het knooppunt + 50 MB of 25% van de totale geheugenbronnen van het systeem.

    Voorbeelden:

    • 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 Maximumpods per knooppunt configureren in een AKS-cluster voor meer informatie.

AKS-versies vóór 1.29

  • kubelet daemon beschikt standaard over de regel memory.available < 750 Mi eviction. Deze regel zorgt ervoor dat een knooppunt te allen tijde ten minste 750 Mi allocatable 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

Notitie

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.
  • Ervoor zorgen dat het knooppunt minder toewijsbaar geheugen en CPU rapporteert dan het zou rapporteren als het geen deel uitmaakt van een Kubernetes-cluster.

Als een knooppunt bijvoorbeeld 7 GB biedt, wordt 34% van het 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 Best practices voor basisfuncties van scheduler in AKS voor de bijbehorende aanbevolen procedures.

Volgende stappen