De knooppuntconfiguratie voor AKS-knooppuntgroepen (Azure Kubernetes Service) aanpassen

Door de configuratie van uw knooppunt aan te passen, kunt u de instellingen van het besturingssysteem (OS) of de kubelet-parameters aanpassen aan de behoeften van uw workloads. Wanneer u een AKS-cluster maakt of een knooppuntgroep aan uw cluster toevoegt, kunt u een subset van veelgebruikte instellingen voor het besturingssysteem en kubelet aanpassen. Als u instellingen buiten deze subset wilt configureren, gebruikt u een daemonset om uw benodigde configuraties aan te passen zonder AKS-ondersteuning voor uw knooppunten te verliezen.

Prerequisites

Omdat de service ondersteuning toevoegt voor nieuwe instellingen en kubelet-parameters, is mogelijk registratie van preview-functievlaggen vereist. Als een preview-vlag vereist is, wordt dat expliciet vermeld in de referentie voor aangepaste configuratieparameters van knooppunten.

Preview-vereisten voor kubeReserved en hardEvictionThreshold kubelet-instellingen

Belangrijk

AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals het is' en 'voor zover beschikbaar' en zijn uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning naar best vermogen. Zodoende zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:

aks-preview De Azure CLI-extensie installeren

  1. Voer de volgende opdracht uit om de aks-preview-extensie te installeren:

    az extension add --name aks-preview
    
  2. Voer de volgende opdracht uit om bij te werken naar de nieuwste versie van de extensie:

    az extension update --name aks-preview
    

Registreer de CustomNodeConfigPreview functievlag in uw Azure-abonnement voordat u de previewkubeReserved- en hardEvictionThreshold kubelet-instellingen gebruikt.

CustomNodeConfigPreview De functievlag registreren

  1. Registreer de CustomNodeConfigPreview functievlag met behulp van de az feature register opdracht.

    az feature register --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"
    

    Het duurt enkele minuten voordat de status Geregistreerd wordt weergegeven.

  2. Controleer de registratiestatus met behulp van de az feature show opdracht.

    az feature show --namespace "Microsoft.ContainerService" --name "CustomNodeConfigPreview"
    
  3. Wanneer de status Geregistreerd wordt weergegeven, vernieuwt u de registratie van de Microsoft. ContainerService-resourceprovider met behulp van de az provider register opdracht.

    az provider register --namespace "Microsoft.ContainerService"
    

Aangepaste knooppuntconfiguratiebestanden maken voor AKS-knooppuntgroepen

Als u de configuratie van het besturingssysteem en de kubelet wilt wijzigen, maakt u een nieuw configuratiebestand met de gewenste parameters en instellingen. Als u geen waarde voor een parameter opgeeft, wordt de standaardwaarde gebruikt.

Notitie

In de volgende voorbeelden ziet u algemene configuratie-instellingen. Wijzig de instellingen om te voldoen aan uw workloadvereisten. Zie Aangepaste knooppuntconfiguratieparameters voor AKS voor de volledige lijst met ondersteunde aangepaste configuratieparameters.

Kubelet-configuratie

Maak een linuxkubeletconfig.json bestand met de volgende inhoud:

{
 "cpuManagerPolicy": "static",
 "cpuCfsQuota": true,
 "cpuCfsQuotaPeriod": "200ms",
 "imageGcHighThreshold": 90,
 "imageGcLowThreshold": 70,
 "topologyManagerPolicy": "best-effort",
 "allowedUnsafeSysctls": [
  "kernel.msg*",
  "net.*"
],
 "failSwapOn": false
}

Als u de kubelet-instellingen voor de preview van knooppuntaanpassing voor Linux-knooppuntgroepen wilt gebruiken, voegt u kubeReserved en hardEvictionThreshold toe aan uw kubelet-configuratiebestand. In het volgende voorbeeld worden CPU en geheugen gereserveerd voor Kubernetes-systeem-daemons en worden de harde verwijderingsdrempels voor Kubelet geconfigureerd:

{
  "cpuManagerPolicy": "static",
  "kubeReserved": {
    "cpuMillicores": 200,
    "memoryMB": 1024
  },
  "hardEvictionThreshold": {
    "memoryAvailable": "20%",
    "nodeFsAvailable": "10%",
    "nodeFsInodesFree": "5%"
  }
}

Gebruik kubeReserved en hardEvictionThreshold alleen voor Linux-knooppuntgroepen. Voor beide instellingen is de CustomNodeConfigPreview functievlag vereist.

Configuratie van besturingssysteem

Maak een linuxosconfig.json bestand met de volgende inhoud:

{
 "transparentHugePageEnabled": "madvise",
 "transparentHugePageDefrag": "defer+madvise",
 "swapFileSizeMB": 1500,
 "sysctls": {
  "netCoreSomaxconn": 163849,
  "netIpv4TcpTwReuse": true,
  "netIpv4IpLocalPortRange": "32000 60000"
 }
}

Een AKS-cluster maken met behulp van aangepaste configuratiebestanden

Notitie

Houd rekening met de volgende informatie bij het gebruik van aangepaste configuratiebestanden bij het maken van een nieuw AKS-cluster:

  • Als u een configuratie opgeeft bij het maken van een cluster, is de configuratie alleen van toepassing op de knooppunten in de eerste knooppuntgroep. Het cluster behoudt standaardwaarden voor instellingen die niet zijn geconfigureerd in het JSON-bestand.
  • CustomLinuxOsConfig wordt niet ondersteund voor het type Windows-besturingssysteem.
  • De preview kubeReserved - en hardEvictionThreshold kubelet-instellingen worden alleen ondersteund voor Linux-knooppuntgroepen en vereisen de CustomNodeConfigPreview functievlag. Voltooi de registratiestappen in de preview-vereisten voor kubeReserved en hardEvictionThreshold kubelet-instellingen voordat u het cluster of de knooppuntgroep maakt.

Maak een nieuw cluster met behulp van aangepaste configuratiebestanden door de az aks create opdracht uit te voeren en uw configuratiebestanden voor de --kubelet-config en --linux-os-config parameters op te geven. Met de volgende voorbeeldopdracht maakt u een nieuw cluster met de aangepaste ./linuxkubeletconfig.json en ./linuxosconfig.json bestanden:

az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json

Een knooppuntgroep toevoegen met behulp van aangepaste configuratiebestanden

Notitie

Houd rekening met de volgende informatie bij het gebruik van aangepaste configuratiebestanden om een nieuwe knooppuntgroep toe te voegen aan een bestaand AKS-cluster:

  • Wanneer u een Linux-knooppuntgroep toevoegt aan een bestaand cluster, kunt u de kubelet-configuratie, besturingssysteemconfiguratie of beide opgeven. Wanneer u een Windows-knooppuntgroep toevoegt aan een bestaand cluster, kunt u alleen de kubelet-configuratie opgeven. Als u een configuratie opgeeft bij het toevoegen van een knooppuntgroep, is de configuratie alleen van toepassing op de knooppunten in de nieuwe knooppuntgroep. De knooppuntgroep behoudt standaardwaarden voor instellingen die niet zijn geconfigureerd in het JSON-bestand.
  • CustomKubeletConfig wordt ondersteund voor Linux- en Windows-knooppuntgroepen.
  • De preview kubeReserved - en hardEvictionThreshold kubelet-instellingen worden alleen ondersteund voor Linux-knooppuntgroepen en vereisen de CustomNodeConfigPreview functievlag. Voltooi de registratiestappen in de preview-vereisten voor kubeReserved en hardEvictionThreshold kubelet-instellingen voordat u het cluster of de knooppuntgroep maakt.

Maak een nieuwe Linux-knooppuntgroep met behulp van de az aks nodepool add opdracht en geef uw configuratiebestanden voor de --kubelet-config en --linux-os-config parameters op. Met de volgende voorbeeldopdracht maakt u een nieuwe Linux-knooppuntgroep met het aangepaste ./linuxkubeletconfig.json bestand:

az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json

Bevestigen dat de instellingen zijn toegepast

Nadat u aangepaste knooppuntconfiguratie hebt toegepast, kunt u controleren of de instellingen zijn toegepast op de knooppunten door verbinding te maken met de host en te controleren sysctl of configuratiewijzigingen zijn aangebracht in het bestandssysteem.

Ondersteunde aangepaste configuratieparameters controleren

Zie aangepaste configuratieparameters voor knooppunten voor AKS voor de volledige lijst met ondersteunde kubelet- en Linux-besturingssysteemconfiguratieparameters, toegestane waarden, standaardwaarden en beschrijvingen.

Overwegingen voor aangepaste knooppuntconfiguraties

Houd rekening met de volgende overwegingen bij het aanpassen van de knooppuntconfiguratie:

  • Node-image-upgrades passen aangepaste nodeconfiguraties opnieuw toe.
  • Bij uitschaalbewerkingen blijven aangepaste knooppuntconfiguraties behouden.
  • AKS voert geen validatie vooraf uit voor elke aangepaste knooppuntconfiguratieparameter of -waarde. Zorg ervoor dat de aangepaste parameters en waarden die u opgeeft, worden ondersteund en geldig zijn om potentiĆ«le problemen met uw clusterknooppunten te voorkomen.
  • De preview kubeReserved en hardEvictionThreshold instellingen zijn alleen beschikbaar in Linux-knooppuntgroepen.
  • Als u configureert kubeReserved, moeten de waarden positief zijn en de CPU- of geheugencapaciteit die beschikbaar is in de doelknooppuntgroep niet overschrijden.
  • Als u configureert hardEvictionThreshold, gebruikt u alleen de ondersteunde eenheden: Ki, Mi, Giof % voor memoryAvailable en nodeFsAvailable, en een onbewerkt getal of % voor nodeFsInodesFree.
  • Standaardwaarden voor aangepaste knooppuntconfiguratieparameters veranderen vaak met nieuwe besturingssysteemversies. Wanneer u aangepaste knooppuntconfiguraties toepast, controleert u de standaardwaarden voor de parameters die u configureert om ervoor te zorgen dat uw aangepaste instellingen geschikt zijn voor de versie van het besturingssysteem van uw clusterknooppunten.
  • Beperk het aantal personen met machtigingen om de aangepaste knooppuntconfiguratie te wijzigen om onbedoelde gevolgen voor de stabiliteit en prestaties van het cluster te voorkomen. Overweeg microsoft Entra ID-autorisatie te gebruiken voor de Kubernetes-API om de toegang tot clusterconfiguratie-instellingen te beperken.
  • Knooppuntgroepen met aangepaste configuraties scheiden van die zonder aangepaste configuraties om onbedoelde gevolgen te voorkomen voor workloads die mogelijk gevoelig zijn voor bepaalde configuratiewijzigingen. Als u bijvoorbeeld een kritieke workload hebt waarvoor specifieke kubelet-instellingen zijn vereist, kunt u overwegen die workload te isoleren naar een toegewezen knooppuntgroep met de benodigde aangepaste kubelet-configuratie.