Anpassa nodkonfigurationen för AKS-nodpooler (Azure Kubernetes Service)

Genom att anpassa nodkonfigurationen kan du justera operativsystemsinställningar (OS) eller kubelet-parametrar så att de matchar arbetsbelastningarnas behov. När du skapar ett AKS-kluster eller lägger till en nodpool i klustret kan du anpassa en delmängd av vanliga inställningar för operativsystem och kubelet. Om du vill konfigurera inställningar utöver den här delmängden använder du en daemonuppsättning för att anpassa nödvändiga konfigurationer utan att förlora AKS-stöd för noderna.

Förutsättningar

Eftersom tjänsten lägger till stöd för nya inställningar och kubelet-parametrar kan det kräva registrering av förhandsgranskningsfunktionsflagga. Om en förhandsgranskningsflagga krävs anropar referensen för konfigurationsparametrar för anpassade noder den.

kubeReserved, hardEvictionThreshold, softEvictionThreshold, softEvictionGracePeriod och evictionMaxPodGracePeriodInSeconds kubelet-inställningarna är i förhandsversion och kräver funktionsflaggan CustomNodeConfigPreview. Med de här inställningarna kan du anpassa resursreservationer och vräkningströsklar, som också konfigureras av AKS Node Hardening. För registreringssteg, standardvärden och exempel, se Node Hardening (förhandsversion) i AKS.

Skapa anpassade nodkonfigurationsfiler för AKS-nodpooler

Om du vill ändra konfigurationen av operativsystemet och kubelet skapar du en ny konfigurationsfil med de parametrar och inställningar som du vill använda. Om du inte anger något värde för en parameter används standardvärdet.

Kommentar

I följande exempel visas vanliga konfigurationsinställningar. Ändra inställningarna för att uppfylla dina arbetsbelastningskrav. En fullständig lista över anpassade konfigurationsparametrar som stöds finns i Konfigurationsparametrar för anpassade noder för AKS.

Kubelet-konfiguration

Skapa en linuxkubeletconfig.json fil med följande innehåll:

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

Information om hur du anpassar kube-reserverade resurser och tröskelvärden för vräkning i Linux-nodpooler finns i Anpassa nodhärdningsinställningar.

OS-konfiguration

Skapa en linuxosconfig.json fil med följande innehåll:

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

Skapa ett AKS-kluster med anpassade konfigurationsfiler

Kommentar

Tänk på följande när du använder anpassade konfigurationsfiler när du skapar ett nytt AKS-kluster:

  • Om du anger en konfiguration när du skapar ett kluster gäller konfigurationen endast för noderna i den första nodpoolen. Klustret behåller standardvärden för alla inställningar som inte har konfigurerats i JSON-filen.
  • CustomLinuxOsConfig stöds inte för Windows-operativsystemtypen.
  • Kubelet-inställningarna för förhandsversion kubeReserved och tröskelvärde för vräkning stöds endast för Linux-nodpooler och kräver funktionsflaggan CustomNodeConfigPreview. Se Node Hardening (förhandsversion) i AKS för registreringssteg.

Skapa ett nytt kluster med anpassade konfigurationsfiler genom att köra az aks create kommandot och ange dina konfigurationsfiler för parametrarna --kubelet-config och --linux-os-config . Följande exempelkommando skapar ett nytt kluster med anpassade ./linuxkubeletconfig.json filer och ./linuxosconfig.json filer:

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

Lägga till en nodpool med hjälp av anpassade konfigurationsfiler

Kommentar

Tänk på följande när du använder anpassade konfigurationsfiler för att lägga till en ny nodpool i ett befintligt AKS-kluster:

  • När du lägger till en Linux-nodpool i ett befintligt kluster kan du ange kubelet-konfigurationen, OS-konfigurationen eller båda. När du lägger till en Windows-nodpool i ett befintligt kluster kan du bara ange kubelet-konfigurationen. Om du anger en konfiguration när du lägger till en nodpool gäller konfigurationen endast för noderna i den nya nodpoolen. Nodpoolen behåller standardvärden för alla inställningar som inte har konfigurerats i JSON-filen.
  • CustomKubeletConfig stöds för Linux- och Windows-nodpooler.
  • Kubelet-inställningarna för förhandsversion kubeReserved och tröskelvärden för vräkning stöds endast för Linux-nodpooler och kräver funktionsflaggan CustomNodeConfigPreview. Se Node Hardening (förhandsversion) i AKS för registreringssteg.

Skapa en ny Linux-nodpool med hjälp az aks nodepool add av kommandot och ange dina konfigurationsfiler för parametrarna --kubelet-config och --linux-os-config . Följande exempelkommando skapar en ny Linux-nodpool med den anpassade ./linuxkubeletconfig.json filen:

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

Bekräfta att inställningarna har tillämpats

När du har tillämpat anpassad nodkonfiguration kan du bekräfta att inställningarna som tillämpats på noderna är korrekt genom att ansluta till värddatorn och verifiera om konfigurationsändringar har gjorts i filsystemet.

Granska anpassade konfigurationsparametrar som stöds

Den fullständiga listan över kubelet- och Linux OS-konfigurationsparametrar som stöds, tillåtna värden, standardvärden och beskrivningar finns i Konfigurationsparametrar för anpassade noder för AKS.

Överväganden för anpassade nodkonfigurationer

Tänk på följande när du anpassar nodkonfigurationen:

  • Nodbilduppgraderingar återanvänder anpassade nodkonfigurationer.
  • Utskalningsåtgärder bevarar anpassade nodkonfigurationer.
  • AKS utför inte validering före flygning för varje konfigurationsparameter eller värde för anpassad nod. Kontrollera att de anpassade nodkonfigurationsparametrar och värden som du anger stöds och är giltiga för att undvika potentiella problem med dina klusternoder.
  • Kubelet-inställningarna för förhandsversion kubeReserved och vräkningströskelvärde är endast tillgängliga i Linux-nodpooler. Om du konfigurerar dem använder du de intervall, enheter och parkopplingsregler som stöds i referensen för anpassade nodkonfigurationsparametrar.
  • Standardvärden för anpassade nodkonfigurationsparametrar ändras ofta med nya operativsystemversioner. När du använder anpassade nodkonfigurationer granskar du standardvärdena för de parametrar som du konfigurerar för att säkerställa att dina anpassade inställningar är lämpliga för operativsystemversionen av dina klusternoder.
  • Begränsa antalet personer som har behörighet att ändra konfigurationen för anpassade noder för att förhindra oavsiktliga konsekvenser för klusterstabilitet och prestanda. Överväg att använda Microsoft Entra ID-auktorisering för Kubernetes API för att begränsa åtkomsten till konfigurationsinställningar för kluster.
  • Avgränsa nodpooler med anpassade konfigurationer från dem utan anpassade konfigurationer för att förhindra oavsiktliga konsekvenser för arbetsbelastningar som kan vara känsliga för vissa konfigurationsändringar. Om du till exempel har en kritisk arbetsbelastning som kräver specifika kubelet-inställningar bör du överväga att isolera arbetsbelastningen till en dedikerad nodpool med nödvändig anpassad kubelet-konfiguration.