Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln visas konfigurationsparametrar för anpassade noder som stöds för Azure Kubernetes Service (AKS) nodpooler. Information om hur du skapar och tillämpar konfigurationsfiler finns i Anpassa nodkonfigurationen för AKS-nodpooler.
Anpassade Kubelet-konfigurationsparametrar
Important
När du aktiverar osäkra sysctls tar du ansvar för nodstabilitet och arbetsbelastningsbeteende. Osäkra sysctls kan potentiellt orsaka nodinstabilitet eller säkerhetsrisker om de är felkonfigurerade. Se till att du förstår konsekvenserna av att aktivera specifika osäkra sysctls och övervaka klustrets hälsa noga när du har gjort ändringar.
Anpassad Linux kubelet-konfiguration
| Parameter | Tillåtna värden/intervall | Standardinställning | Description |
|---|---|---|---|
cpuManagerPolicy |
ingen, statisk | ingen | Den statiska principen tillåter containrar i garanterade poddar med heltals-CPU-begäranden åtkomst till exklusiva processorer på noden. |
cpuCfsQuota |
sant, falskt | sann | Aktivera/inaktivera CPU CFS-kvottillämpning för containrar som anger CPU-gränser. |
cpuCfsQuotaPeriod |
Intervall i millisekunder (ms) | 100ms |
Anger värdet för CPU CFS-kvotperiod. |
imageGcHighThreshold |
0–100 | 85 | Den procent av diskanvändningen varefter skräpinsamling av avbildningar alltid körs. Minsta diskanvändning som utlöser skräpinsamling. För att inaktivera skräpinsamling av bilder, ange värdet till 100. |
imageGcLowThreshold |
0-100, inte högre än imageGcHighThreshold |
80 | Den procentuella andelen av diskanvändning före vilket skräpinsamlingen för bilder aldrig körs. Minsta diskanvändning som kan utlösa skräpinsamling. |
topologyManagerPolicy |
none, bästa möjliga ansträngning, begränsad, enkel NUMA-nod | ingen | Optimera NUMA-nodanpassning. Mer information finns i Kontrollera topologihanteringsprinciper på en nod. |
allowedUnsafeSysctls |
kernel.shm*, kernel.msg*, kernel.sem, , , fs.mqueue.*net.* |
Ingen | Tillåten lista över osäkra sysctls eller osäkra sysctl-mönster. |
containerLogMaxSizeMB |
Storlek i megabyte (MB) | 50 | Den maximala storleken (till exempel 10 MB) för en containerloggfil innan den roteras. |
containerLogMaxFiles |
2 eller större | 5 | Det maximala antalet containerloggfiler som ska behållas för en container. |
podMaxPids |
-1 till kernel-PID-gräns | -1 (oändlig) | Det maximala antalet process-ID:er som kan köras i en podd. |
seccompDefault |
Unconfined, RuntimeDefault |
Unconfined |
Anger standardprofilen för seccomp för alla arbetsbelastningar.
RuntimeDefault använder containerds standardprofil för seccomp, vilket begränsar vissa systemanrop för att förbättra säkerheten. Begränsade systemanrop misslyckas.
Unconfined begränsar inte syscalls, vilket tillåter alla systemanrop och minskar säkerheten. Mer information finns i standardprofilen för seccomp i container. Den här parametern är i förhandsversion.
Registrera funktionsflaggan "KubeletDefaultSeccompProfilePreview" med hjälp av kommandot az feature register och --namespace "Microsoft.ContainerService". |
kubeReserved.cpuMillicores |
1 till nodpoolens CPU-kapacitet i millicores | Ingen | Reserverar CPU för Kubernetes-systemdaemoner i Linux-nodpooler. Den här parametern är i förhandsversion och kräver funktionsflaggan CustomNodeConfigPreview . |
kubeReserved.memoryMB |
1 till nodpoolens minneskapacitet i MiB | Ingen | Reserverar minne för Kubernetes-systemdaemoner i Linux-nodpooler. Den här parametern är i förhandsversion och kräver funktionsflaggan CustomNodeConfigPreview . |
hardEvictionThreshold.memoryAvailable |
<number>Ki, <number>Mi, <number>Gieller <number>% där procentandelen inte är mer än 100 |
Ingen | Anger gränsvärdet för kubelets hårda vräkning av tillgängligt minne på Linux-nodpooler. Den här parametern är i förhandsversion och kräver funktionsflaggan CustomNodeConfigPreview . |
hardEvictionThreshold.nodeFsAvailable |
<number>Ki, <number>Mi, <number>Gieller <number>% där procentandelen inte är mer än 100 |
Ingen | Anger tröskelvärdet för kubelet-hård borttagning för tillgängligt nodfilsystemutrymme i Linux-nodpooler. Den här parametern är i förhandsversion och kräver funktionsflaggan CustomNodeConfigPreview . |
hardEvictionThreshold.nodeFsInodesFree |
<number> eller <number>% där procentandelen inte är mer än 100 |
Ingen | Anger kubelets tröskelvärde för hård vräkning för lediga inoder i nodfilsystemet i Linux-nodpooler. Den här parametern är i förhandsversion och kräver funktionsflaggan CustomNodeConfigPreview . |
Anpassad Windows kubelet-konfiguration
| Parameter | Tillåtna värden/intervall | Standardinställning | Description |
|---|---|---|---|
imageGcHighThreshold |
0–100 | 85 | Den procent av diskanvändningen varefter skräpinsamling av avbildningar alltid körs. Minsta diskanvändning som utlöser skräpinsamling. För att inaktivera skräpinsamling av bilder, ange värdet till 100. |
imageGcLowThreshold |
0-100, inte högre än imageGcHighThreshold |
80 | Den procentuella andelen av diskanvändning före vilket skräpinsamlingen för bilder aldrig körs. Minsta diskanvändning som kan utlösa skräpinsamling. |
containerLogMaxSizeMB |
Storlek i megabyte (MB) | 10 | Den maximala storleken (till exempel 10 MB) för en containerloggfil innan den roteras. |
containerLogMaxFiles |
2 eller större | 5 | Det maximala antalet containerloggfiler som ska behållas för en container. |
Konfigurationsparametrar för anpassade Linux-operativsystem
Important
För att förenkla sökningen och läsbarheten visas operativsystemets inställningar i den här artikeln med deras namn, men de bör läggas till i JSON-filens konfiguration eller AKS-API:t enligt camelCase-konventionen.
Om du till exempel ändrar inställningen vm.max_map_count bör du formatera om den till vmMaxMapCount i JSON-konfigurationsfilen.
Gränser för Linux-filhandtag
När du hanterar stora mängder trafik kommer den trafiken ofta från ett stort antal lokala filer. Du kan justera följande kernelinställningar och inbyggda gränser så att du kan hantera mer, till priset av en del systemminne.
I följande tabell visas de filreferensgränser som du kan anpassa per nodpool:
| Inställningen | Tillåtna värden/intervall | Standardvärde för Ubuntu 22.04 | Standardvärde för Ubuntu 24.04 | Standardinställning för Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
fs.file-max |
8192 - 9 223 372 036 854 775 807 | 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | Maximalt antal filreferenser som Linux-kerneln allokerar. Det här värdet är inställt på det maximala möjliga värdet (2^63-1) för att förhindra filbeskrivningsutmattning och säkerställa obegränsade systemomfattande filhandtag för containerbaserade arbetsbelastningar. |
fs.inotify.max_user_watches |
781250 - 2097152 | 1048576 | 1048576 | 1048576 | Maximalt antal filövervakningar som tillåts av systemet. Varje klocka är ungefär 90 byte på en 32-bitars kernel och ungefär 160 byte på en 64-bitars kernel. |
fs.aio-max-nr |
65536 - 6553500 | 65536 | 65536 | 65536 | Aio-nr visar det aktuella systemomfattande antalet asynkrona I/O-begäranden. med aio-max-nr kan du ändra det maximala värde som aio-nr kan växa till. |
fs.nr_open |
8192 - 20000500 | 1048576 | 1048576 | 1073741816 | Det maximala antalet filreferenser som en process kan allokera. |
Note
Parametern fs.file-max är inställd på 9223372036854775807 (det maximala värdet för ett signerat 64-bitars heltal) i Ubuntu och Azure Linux baserat på överordnade standardvärden. Den här konfigurationen:
- Förhindrar överbelastningsattacker baserat på systemomfattande filbeskrivningsöverbelastning.
- Säkerställer att containerarbetsbelastningar aldrig begränsas av systemövergripande filhandtagsbegränsningar.
-
Upprätthåller säkerhet via per process-gränser (
fs.nr_openochulimit) som fortfarande gäller för enskilda processer. - Optimerar för containerplattformar där många containrar kan köras samtidigt, var och en kan öppna många filer och nätverksanslutningar.
Linux-socket och nätverksjustering
För agentnoder, som förväntas hantera ett stort antal samtidiga sessioner, kan du använda följande TCP- och nätverksalternativ och justera dem per nodpool:
| Inställningen | Tillåtna värden/intervall | Standardvärde för Ubuntu 22.04 | Standardvärde för Ubuntu 24.04 | Standardinställning för Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
net.core.somaxconn |
4096 - 3240000 | 16384 | 16384 | 16384 | Maximalt antal anslutningsbegäranden som kan köas för en viss lyssningssocket. En övre gräns för värdet för parametern för kvarvarande uppgifter som skickas till funktionen listen(2). Om köargumentet är större än somaxconn, trunkeras det tyst till den här gränsen. |
net.core.netdev_max_backlog |
1000 - 3240000 | 1000 | 1000 | 1000 | Maximalt antal paket, i kö på indatasidan, när gränssnittet tar emot paket snabbare än kerneln kan bearbeta dem. |
net.core.rmem_max |
212992 - 134217728 | 1048576 | 1048576 | 212992 | Den maximala buffertstorleken för mottagningssocket i byte. |
net.core.wmem_max |
212992 - 134217728 | 212992 | 212992 | 212992 | Maximal buffertstorlek för skicka socket i byte. |
net.core.optmem_max |
20480 - 4194304 | 20480 | 131072 | 20480 | Maximal sidobuffertstorlek (alternativminnesbuffert) som tillåts per socket. Socket-alternativminne används i några fall för att lagra extra strukturer relaterade till användning av socketen. |
net.ipv4.tcp_max_syn_backlog |
128 - 3240000 | 16384 | 16384 | 16384 | Det maximala antalet köade anslutningsbegäranden som inte har fått någon bekräftelse från den anslutande klienten. Om det här antalet överskrids börjar kerneln ta bort begäranden. |
net.ipv4.tcp_max_tw_buckets |
8000 - 1440000 | 262144 | 262144 | 131072 | Maximalt antal TIME-WAIT socketar som hålls av systemet samtidigt. Om det här antalet överskrids förstörs time-wait-socketen omedelbart och en varning skrivs ut. |
net.ipv4.tcp_fin_timeout |
5 - 120 | 60 | 60 | 60 | Hur lång tid en överbliven anslutning (som inte längre refereras till av något program) förblir i FIN_WAIT_2 tillstånd innan den avbryts i den lokala änden. |
net.ipv4.tcp_keepalive_time |
30 - 432000 | 7200 | 7200 | 7200 | Hur ofta TCP skickar ut keepalive meddelanden när keepalive är aktiverat. |
net.ipv4.tcp_keepalive_probes |
1 - 15 | 9 | 9 | 9 | Hur många keepalive avsökningar TCP skickar ut tills den beslutar att anslutningen är bruten. |
net.ipv4.tcp_keepalive_intvl |
10 - 90 | 75 | 75 | 75 | Hur ofta probsignalerna skickas ut. Multiplicerat med tcp_keepalive_probes utgör det tiden för att avsluta en anslutning som inte svarar, efter att probsignalerna har börjat. |
net.ipv4.tcp_tw_reuse |
2 | 2 | 2 | Tillåter återanvändning av TIME-WAIT socketar för nya anslutningar när det är säkert ur protokollsynpunkt. |
|
net.ipv4.ip_local_port_range |
Första: 1024 - 60999 och Sist: 32768 - 65535] | Första: 32768 och Sist: 60999 | Första: 32768 och Sist: 60999 | Första: 32768 och Sist: 60999 | Det lokala portintervall som används av TCP- och UDP-trafik för att välja den lokala porten. Intervallet består av två tal: den första lokala porten som tillåts för TCP- och UDP-trafik på agentnoden och det senaste lokala portnumret. |
net.ipv4.neigh.default.gc_thresh1 |
128 - 80000 | 4096 | 4096 | 4096 | Minsta antal poster som kan finnas i ARP-cachen. Skräpinsamling utlöses inte om antalet poster ligger under den här inställningen. |
net.ipv4.neigh.default.gc_thresh2 |
512 - 90000 | 8192 | 8192 | 8192 | Mjukt maximalt antal poster som kan finnas i ARP-cachen. Den här inställningen är utan tvekan den viktigaste eftersom ARP-skräpinsamling utlöses cirka 5 sekunder efter att den här mjuka maxgränsen har nåtts. |
net.ipv4.neigh.default.gc_thresh3 |
1024 - 100000 | 16384 | 16384 | 16384 | Hårt maximalt antal poster i ARP-cachen. |
net.netfilter.nf_conntrack_max |
131072 - 2097152 | Dynamiskt beräknad | Dynamiskt beräknad | Dynamiskt beräknad |
nf_conntrack är en modul som spårar anslutningsposter för NAT i Linux. Modulen nf_conntrack använder en hash-tabell för att registrera den etablerade anslutningsposten för TCP-protokollet.
nf_conntrack_max är det maximala antalet noder i hash-tabellen, dvs. det maximala antalet anslutningar som stöds av modulen nf_conntrack eller storleken på anslutningsspårningstabellen.
Standardvärdet beräknas dynamiskt baserat på systemminnet med hjälp av formeln : RAM_in_bytes / 16384 (eller RAM_in_MB * 64). Till exempel har en virtuell dator med 8 GB RAM-minne som standard cirka 524 288 anslutningar. Faktiska värden varierar beroende på storleken på den virtuella datorn och tillgängligt minne. |
net.netfilter.nf_conntrack_buckets |
65536 - 524288 | Dynamiskt beräknad | Dynamiskt beräknad | Dynamiskt beräknad |
nf_conntrack är en modul som spårar anslutningsposter för NAT i Linux. Modulen nf_conntrack använder en hash-tabell för att registrera den etablerade anslutningsposten för TCP-protokollet.
nf_conntrack_buckets är storleken på hash-tabellen.
Standardvärdet beräknas dynamiskt baserat på systemminnet med hjälp av formeln: RAM_in_bytes / 16384, med minst 1 024 bucketar och högst 262 144 bucketar. Standardvärdet nf_conntrack_max är vanligtvis inställt på nf_conntrack_buckets * 4. Faktiska värden varierar beroende på storleken på den virtuella datorn och tillgängligt minne. |
Begränsningar för Linux-arbetare
Precis som filbeskrivningsgränser begränsas antalet arbetare eller trådar som en process kan skapa av både en kernelinställning och användargränser. Användargränsen för AKS är obegränsad. I följande tabell visas den kernelinställning som du kan anpassa per nodpool:
| Inställningen | Standardvärde för Ubuntu 22.04 | Standardvärde för Ubuntu 24.04 | Standardinställning för Azure Linux 3.0 | Description |
|---|---|---|---|---|
kernel.threads-max |
Dynamiskt beräknad | Dynamiskt beräknad | Dynamiskt beräknad | Processer kan starta arbetstrådar. Det maximala antalet trådar som kan skapas anges med kernelinställningen kernel.threads-max.
Standardvärdet beräknas dynamiskt baserat på systemminnet med hjälp av formeln: total_ram_pages / 4 (där varje sida vanligtvis är 4 KB). Faktiska värden varierar beroende på storleken på den virtuella datorn och tillgängligt minne. |
Virtuellt Linux-minne
I följande tabell visas de kernelinställningar som du kan anpassa per nodpool för att justera driften av undersystemet virtuellt minne (VM) i Linux-kerneln och writeout för smutsiga data till disk:
| Inställningen | Tillåtna värden/intervall | Standardvärde för Ubuntu 22.04 | Standardvärde för Ubuntu 24.04 | Standardinställning för Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
vm.max_map_count |
65530 | 1048576 | 1048576 | Den här filen innehåller det maximala antalet minnesmappningsområden som en process kan ha. Områden för minneskarta används som en bieffekt av att anropa malloc, direkt av mmap, mprotectoch madvise, och även vid inläsning av delade bibliotek. |
|
vm.vfs_cache_pressure |
1 - 100 | 100 | 100 | 100 | Det här procentvärdet styr kernelns tendens att frigöra minnet, som används för cachelagring av katalog- och inode-objekt. |
vm.swappiness |
0 - 100 | 60 | 60 | 60 | Den här kontrollen används för att definiera hur aggressivt kerneln byter minnessidor. Högre värden ökar aggressiviteten, lägre värden minskar mängden växling. Värdet 0 instruerar kerneln att inte initiera växling förrän mängden lediga och filbaserade sidor är mindre än högvattenmärket i en zon. |
swapFileSizeMB |
1 MB – Storleken på den temporära disken (/dev/sdb) | Ingen | Ingen | Ingen | SwapFileSizeMB anger storleken i MB för en växlingsfil som ska skapas på agentnoderna från den här nodpoolen. |
transparentHugePageEnabled |
always, madvise, never |
always |
always |
madvise |
Transparent Hugepages är en Linux kernel-funktion avsedd att förbättra prestandan genom att göra mer effektiv användning av processorns minnesmappningsmaskinvara. När den är aktiverad försöker kerneln allokera hugepages när det är möjligt och en Linux-process tar emot 2 MB sidor om mmap regionen är 2 MB naturligt justerad. I vissa fall när hugepages är aktiverade i hela systemet kan program till slut allokera fler minnesresurser. Ett program kan omfatta en stor region men bara röra 1 byte av den, i så fall kan en 2 MB-sida allokeras istället för en 4k-sida utan någon särskild anledning. Det här scenariot är anledningen till att det är möjligt att inaktivera hugepages hela systemet eller bara ha dem i MADV_HUGEPAGE madvise regioner. |
transparentHugePageDefrag |
always, defer, defer+madvise, , , madvisenever |
madvise |
madvise |
madvise |
Det här värdet styr om kerneln ska använda minneskomprimering aggressivt för att göra mer hugepages tillgängligt. |