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.

De kubeletinstellingen kubeReserved, hardEvictionThreshold, softEvictionThreshold, evictionMaxPodGracePeriodInSeconds en softEvictionGracePeriod zijn in preview en vereisen de functievlag CustomNodeConfigPreview. Met deze instellingen kunt u resourcereserveringen en uitzettingsdrempels aanpassen, die ook worden geconfigureerd door AKS Node Hardening. Zie Node Hardening (preview) in AKS voor registratiestappen, standaardwaarden en voorbeelden.

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
}

Zie Instellingen voor knooppuntbeveiliging aanpassen om kube-gereserveerde resources en verwijderingsdrempels in Linux-knooppuntgroepen aan te passen.

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 kubelet-instellingen voor de preview kubeReserved- en ontruimingsdrempel worden alleen ondersteund voor Linux-knooppuntgroepen en vereisen de CustomNodeConfigPreview-functievlag. Zie Node Hardening (preview) in AKS voor registratiestappen.

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 kubelet-instellingen voor de preview kubeReserved en ontruimingsdrempel worden alleen ondersteund voor Linux-knooppuntgroepen en vereisen de functievlag CustomNodeConfigPreview. Zie Node Hardening (preview) in AKS voor registratiestappen.

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 kubelet-instellingen voor de preview kubeReserved - en verwijderingsdrempel zijn alleen beschikbaar in Linux-nodepools. Als u die parameters configureert, gebruik dan de ondersteunde bereiken, eenheden en koppelingsregels in de referentie voor aangepaste knooppuntconfiguratieparameters.
  • 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.