Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Door uw knooppuntconfiguratie aan te passen, kunt u besturingssysteeminstellingen of 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, kunt u een daemonset gebruiken om uw benodigde configuraties aan te passen zonder dat AKS-ondersteuning voor uw knooppunten verloren gaat.
Aangepaste knooppuntconfiguratiebestanden maken voor AKS-knooppuntgroepen
Voor wijzigingen in de configuratie van het besturingssysteem en kubelet moet u een nieuw configuratiebestand maken met de parameters en de gewenste instellingen. Als er geen waarde voor een parameter is opgegeven, wordt de waarde ingesteld op de standaardwaarde.
Notitie
In de volgende voorbeelden ziet u algemene configuratie-instellingen. U kunt de instellingen wijzigen om te voldoen aan uw workloadvereisten. Zie de sectie Ondersteunde aangepaste configuratieparameters voor een 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
}
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. Alle instellingen die niet in het JSON-bestand zijn geconfigureerd, behouden hun standaardwaarden.
-
CustomLinuxOsConfigwordt niet ondersteund voor het type Windows-besturingssysteem.
Maak een nieuw cluster met behulp van aangepaste configuratiebestanden met behulp van de az aks create opdracht en geef uw configuratiebestanden voor de --kubelet-config en --linux-os-config parameters op. 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 bij het toevoegen van een nieuwe knooppuntgroep 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. Alle instellingen die niet in het JSON-bestand zijn geconfigureerd, behouden hun standaardwaarden.
-
CustomKubeletConfigwordt ondersteund voor Linux- en Windows-knooppuntgroepen.
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
De aangepaste configuratie voor de Linux-kubelet
| Parameter | Toegestane waarden/interval | Default | Beschrijving |
|---|---|---|---|
cpuManagerPolicy |
geen, statisch | Geen | Met het statische beleid kunnen containers in gegarandeerde pods met gehele CPU-aanvragen toegang krijgen tot exclusieve CPU's op het knooppunt. |
cpuCfsQuota |
de waarde True, false | true | CPU CFS-quotum handhaving in- of uitschakelen voor containers die CPU-limieten opgeven. |
cpuCfsQuotaPeriod |
Interval in milliseconden (ms) | 100ms |
Hiermee stelt u de waarde van de CPU CFS-quotumperiode in. |
imageGcHighThreshold |
0-100 | 85 | Het percentage schijfgebruik waarna garbagecollection van installatiekopieën altijd wordt uitgevoerd. Minimaal schijfgebruik waarmee garbagecollection wordt geactiveerd. Als u de garbagecollection van de installatiekopieën wilt uitschakelen, stelt u in op 100. |
imageGcLowThreshold |
0-100, niet hoger dan imageGcHighThreshold |
80 | Het percentage schijfgebruik voordat de garbagecollection van installatiekopieën nooit wordt uitgevoerd. Minimaal schijfgebruik dat garbagecollection kan activeren. |
topologyManagerPolicy |
geen, beste inspanning, beperkt, enkele NUMA-node | Geen | Numa-knooppuntuitlijning optimaliseren. Zie Beleidsregels voor beheer van topologiebeheer op een knooppunt voor meer informatie. |
allowedUnsafeSysctls |
kernel.shm*
kernel.msg*, kernel.sem, fs.mqueue.*net.* |
Geen | Lijst met onveilige sysctls of onveilige sysctl-patronen. |
containerLogMaxSizeMB |
Grootte in megabytes (MB) | 50 | De maximale grootte (bijvoorbeeld 10 MB) van een containerlogboekbestand voordat het wordt gedraaid. |
containerLogMaxFiles |
≥ 2 | 5 | Het maximum aantal containerlogboekbestanden dat aanwezig kan zijn voor een container. |
podMaxPids |
-1 tot kernel PID-limiet | -1 (∞) | Het maximale aantal proces-id's dat in een Pod kan draaien. |
seccompDefault |
Unconfined, RuntimeDefault |
Unconfined |
Hiermee stelt u het standaard seccomp-profiel in voor alle workloads.
RuntimeDefault maakt gebruik van het standaard seccomp-profiel van containerd, waardoor bepaalde systeemaanroepen worden beperkt om de beveiliging te verbeteren. Beperkte syscalls mislukken.
Unconfined plaatst geen beperkingen op syscalls, waardoor alle systeemoproepen worden toegestaan en de beveiliging wordt verminderd. Zie het standaard seccomp-profiel voor containers voor meer informatie. Deze parameter is in preview.
Registreer de functievlag KubeletDefaultSeccompProfilePreview met behulp van de az feature register opdracht met --namespace "Microsoft.ContainerService". |
Aangepaste configuratie van Windows kubelet
| Parameter | Toegestane waarden/interval | Default | Beschrijving |
|---|---|---|---|
imageGcHighThreshold |
0-100 | 85 | Het percentage schijfgebruik waarna garbagecollection van installatiekopieën altijd wordt uitgevoerd. Minimaal schijfgebruik waarmee garbagecollection wordt geactiveerd. Als u de garbagecollection van de installatiekopieën wilt uitschakelen, stelt u in op 100. |
imageGcLowThreshold |
0-100, niet hoger dan imageGcHighThreshold |
80 | Het percentage schijfgebruik voordat de garbagecollection van installatiekopieën nooit wordt uitgevoerd. Minimaal schijfgebruik dat garbagecollection kan activeren. |
containerLogMaxSizeMB |
Grootte in megabytes (MB) | 10 | De maximale grootte (bijvoorbeeld 10 MB) van een containerlogboekbestand voordat het wordt gedraaid. |
containerLogMaxFiles |
≥ 2 | 5 | Het maximum aantal containerlogboekbestanden dat aanwezig kan zijn voor een container. |
Aangepaste configuratie-instellingen voor Linux-besturingssysteem
Belangrijk
Om de zoek- en leesbaarheid te vereenvoudigen, worden de besturingssysteeminstellingen in dit artikel op naam weergegeven, maar moeten ze worden toegevoegd aan het JSON-configuratiebestand of de AKS-API met behulp van de hoofdlettergebruiksconventie camelCase.
Als u bijvoorbeeld vm.max_map_count setting wijzigt, moet u vmMaxMapCount herformatteren in het JSON-configuratiebestand.
Limieten voor Linux-bestandsingangen
Bij het leveren van grote hoeveelheden verkeer komt dat verkeer meestal uit een groot aantal lokale bestanden. U kunt de volgende kernelinstellingen en ingebouwde limieten aanpassen, zodat u meer kunt verwerken, tegen de kosten van een bepaald systeemgeheugen.
De volgende tabel bevat de limieten voor bestandsingangen die u per knooppuntgroep kunt aanpassen:
| Instelling | Toegestane waarden/interval | Standaard ubuntu 22.04 | Standaard ubuntu 24.04 | Standaardinstelling voor Azure Linux 3.0 | Beschrijving |
|---|---|---|---|---|---|
fs.file-max |
8192 - 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | Maximum aantal bestandsingangen dat door de Linux-kernel wordt toegewezen. Deze waarde is ingesteld op de maximaal mogelijke waarde (2^63-1) om bestandsdescriptoruitputting te voorkomen en onbeperkte systeembrede bestandsingangen voor gecontaineriseerde workloads te garanderen. |
fs.inotify.max_user_watches |
781250 - 2097152 | 1048576 | 1048576 | 1048576 | Maximum aantal bestanden horloges dat is toegestaan door het systeem. Elk horloge is ongeveer 90 bytes op een 32-bits kernel en ongeveer 160 bytes op een 64-bits kernel. |
fs.aio-max-nr |
65536 - 6553500 | 65536 | 65536 | 65536 | De aio-nr toont het huidige systeembrede aantal asynchrone Io-aanvragen. met aio-max-nr kunt u de maximumwaarde aio-nr wijzigen in. |
fs.nr_open |
8192 - 20000500 | 1048576 | 1048576 | 1073741816 | Het maximum aantal bestandsingangen dat een proces kan toewijzen. |
Notitie
De fs.file-max parameter is ingesteld op 9223372036854775807 (de maximumwaarde voor een ondertekend 64-bits geheel getal) in Ubuntu en Azure Linux op basis van upstream-standaardinstellingen. Deze configuratie:
- Voorkomt denial-of-service-aanvallen op basis van bestanddescriptoruitputting voor het hele systeem.
- Zorgt ervoor dat containerworkloads nooit knelpunten ondervinden door systeembrede bestandsinganglimieten.
-
Onderhoudt beveiliging via limieten per proces (
fs.nr_openenulimit) die nog steeds van toepassing zijn op afzonderlijke processen. - Optimaliseert voor containerplatforms waar veel containers tegelijkertijd kunnen worden uitgevoerd, waarbij elk mogelijk veel bestanden en netwerkverbindingen opent.
Linux-socket en netwerkafstemming
Voor agentknooppunten die naar verwachting grote aantallen gelijktijdige sessies moeten verwerken, kunt u de volgende TCP- en netwerkopties gebruiken en deze per knooppuntgroep aanpassen:
| Instelling | Toegestane waarden/interval | Standaard ubuntu 22.04 | Standaard ubuntu 24.04 | Standaardinstelling voor Azure Linux 3.0 | Beschrijving |
|---|---|---|---|---|---|
net.core.somaxconn |
4096 - 3240000 | 16384 | 16384 | 16384 | Maximum aantal verbindingsaanvragen dat in de wachtrij kan worden geplaatst voor een opgegeven listening socket. Een bovengrens voor de waarde van de achterstandsparameter die is doorgegeven aan de listen(2) -functie. Als het argument achterstand groter is dan het somaxconnargument , wordt het op de achtergrond afgekapt tot deze limiet. |
net.core.netdev_max_backlog |
1000 - 3240000 | 1000 | 1000 | 1000 | Maximum aantal pakketten, in de wachtrij geplaatst aan de KANT INPUT, wanneer de interface pakketten sneller ontvangt dan kernel kan verwerken. |
net.core.rmem_max |
212992 - 134217728 | 1048576 | 1048576 | 212992 | De maximale grootte van de ontvangstsocketbuffer in bytes. |
net.core.wmem_max |
212992 - 134217728 | 212992 | 212992 | 212992 | De maximale grootte van de socketbuffer verzenden in bytes. |
net.core.optmem_max |
20480 - 4194304 | 20480 | 131072 | 20480 | Maximale aanvullende buffergrootte (optiegeheugenbuffer) toegestaan per socket. Socketoptiegeheugen wordt in enkele gevallen gebruikt om extra structuren op te slaan met betrekking tot het gebruik van de socket. |
net.ipv4.tcp_max_syn_backlog |
128 - 3240000 | 16384 | 16384 | 16384 | Het maximum aantal verbindingsaanvragen in de wachtrij dat geen bevestiging van de verbindingsclient heeft ontvangen. Als dit aantal wordt overschreden, begint de kernel met het verwijderen van aanvragen. |
net.ipv4.tcp_max_tw_buckets |
8000 - 1440000 | 262144 | 262144 | 131072 | Het maximale aantal timewait sockets dat tegelijkertijd door het systeem wordt vastgehouden. Als dit aantal wordt overschreden, wordt de tijdwachtsocket onmiddellijk vernietigd en wordt de waarschuwing afgedrukt. |
net.ipv4.tcp_fin_timeout |
5 - 120 | 60 | 60 | 60 | De tijdsduur hoelang een onverwezen verbinding (waarbij niet meer door een toepassing wordt verwezen) in de status FIN_WAIT_2 blijft, voordat deze aan het lokale einde wordt beëindigd. |
net.ipv4.tcp_keepalive_time |
30 - 432000 | 7200 | 7200 | 7200 | Hoe vaak TCP berichten verzendt keepalive wanneer keepalive deze is ingeschakeld. |
net.ipv4.tcp_keepalive_probes |
1 - 15 | 9 | 9 | 9 | Hoeveel keepalive tests TCP verzendt, totdat wordt besloten dat de verbinding is verbroken. |
net.ipv4.tcp_keepalive_intvl |
10 - 90 | 75 | 75 | 75 | Hoe vaak de tests worden verzonden. Vermenigvuldigd tcp_keepalive_probes met het maken van de tijd om een verbinding te beëindigen die niet reageert, nadat tests zijn gestart. |
net.ipv4.tcp_tw_reuse |
2 | 2 | 2 | Sta sockets toe TIME-WAIT voor nieuwe verbindingen wanneer deze veilig zijn vanuit protocoloogpunt. |
|
net.ipv4.ip_local_port_range |
Eerste: 1024 - 60999 en Laatste: 32768 - 65535] | Eerste: 32768 en Laatste: 60999 | Eerste: 32768 en Laatste: 60999 | Eerste: 32768 en Laatste: 60999 | Het lokale poortbereik dat wordt gebruikt door TCP- en UDP-verkeer om de lokale poort te kiezen. Bestaat uit twee getallen: het eerste getal is de eerste lokale poort die is toegestaan voor TCP- en UDP-verkeer op het agentknooppunt, de tweede is het laatste lokale poortnummer. |
net.ipv4.neigh.default.gc_thresh1 |
128 - 80000 | 4096 | 4096 | 4096 | Minimaal aantal vermeldingen dat zich in de ARP-cache kan bevinden. Garbage Collection wordt niet geregistreerd als het aantal objecten lager dan deze waarde is. |
net.ipv4.neigh.default.gc_thresh2 |
512 - 90000 | 8192 | 8192 | 8192 | Zacht maximum aantal vermeldingen dat zich in de ARP-cache kan bevinden. Deze instelling is waarschijnlijk het belangrijkt, omdat ARP garbage collection ongeveer 5 seconden nadat dit zachte maximum is bereikt, wordt geactiveerd. |
net.ipv4.neigh.default.gc_thresh3 |
1024 - 100000 | 16384 | 16384 | 16384 | Hard maximum aantal vermeldingen in de ARP-cache. |
net.netfilter.nf_conntrack_max |
131072 - 2097152 | Dynamisch berekend | Dynamisch berekend | Dynamisch berekend |
nf_conntrack is een module die verbindingsvermeldingen voor NAT in Linux bijhoudt. De nf_conntrack module maakt gebruik van een hash-tabel om de tot stand gebrachte verbindingsrecord van het TCP-protocol vast te leggen.
nf_conntrack_max is het maximum aantal knooppunten in de hash-tabel, dat wil gezegd, het maximum aantal verbindingen dat wordt ondersteund door de nf_conntrack module of de grootte van de tabel voor het bijhouden van verbindingen.
De standaardwaarde wordt dynamisch berekend op basis van systeemgeheugen met behulp van de formule: RAM_in_bytes / 16384 (of RAM_in_MB * 64). Een VIRTUELE machine met 8 GB RAM heeft bijvoorbeeld een standaardwaarde van ongeveer 524.288 verbindingen. Werkelijke waarden variëren op basis van de VM-grootte en het beschikbare geheugen. |
net.netfilter.nf_conntrack_buckets |
65536 - 524288 | Dynamisch berekend | Dynamisch berekend | Dynamisch berekend |
nf_conntrack is een module die verbindingsvermeldingen voor NAT in Linux bijhoudt. De nf_conntrack module maakt gebruik van een hash-tabel om de tot stand gebrachte verbindingsrecord van het TCP-protocol vast te leggen.
nf_conntrack_buckets is de grootte van de hash-tabel.
De standaardwaarde wordt dynamisch berekend op basis van systeemgeheugen met behulp van de formule: RAM_in_bytes / 16384, met minimaal 1024 buckets en maximaal 262.144 buckets. De standaardwaarde nf_conntrack_max is doorgaans ingesteld op nf_conntrack_buckets * 4. Werkelijke waarden variëren op basis van de VM-grootte en het beschikbare geheugen. |
Limieten voor Linux-werkers
Net als bij bestandsdescriptorlimieten wordt het aantal werkrollen of threads dat door een proces kan worden gemaakt, beperkt door zowel een kernelinstelling als gebruikerslimieten. De gebruikerslimiet voor AKS is onbeperkt. De volgende tabel bevat de kernelinstelling die u per knooppuntgroep kunt aanpassen:
| Instelling | Standaard ubuntu 22.04 | Standaard ubuntu 24.04 | Standaardinstelling voor Azure Linux 3.0 | Beschrijving |
|---|---|---|---|---|
kernel.threads-max |
Dynamisch berekend | Dynamisch berekend | Dynamisch berekend | Processen kunnen werkrolthreads instellen. Het maximum aantal threads dat kan worden gemaakt, wordt ingesteld met de kernelinstelling kernel.threads-max.
De standaardwaarde wordt dynamisch berekend op basis van systeemgeheugen met behulp van de formule: total_ram_pages / 4 (waarbij elke pagina doorgaans 4 kB is). Werkelijke waarden variëren op basis van de VM-grootte en het beschikbare geheugen. |
Virtueel Linux-geheugen
De volgende tabel bevat de kernelinstellingen die u per knooppuntgroep kunt aanpassen om de werking van het subsysteem voor het virtuele geheugen (VM) van de Linux-kernel en de writeout vuile gegevens naar schijf af te stemmen:
| Instelling | Toegestane waarden/interval | Standaard ubuntu 22.04 | Standaard ubuntu 24.04 | Standaardinstelling voor Azure Linux 3.0 | Beschrijving |
|---|---|---|---|---|---|
vm.max_map_count |
65530 | 1048576 | 1048576 | Dit bestand bevat het maximum aantal geheugentoewijzingsgebieden dat een proces kan hebben. Geheugenkaartgebieden worden gebruikt als neveneffect van het aanroepen malloc, rechtstreeks door mmap, mprotecten, en madviseook bij het laden van gedeelde bibliotheken. |
|
vm.vfs_cache_pressure |
1 - 100 | 100 | 100 | 100 | Deze percentagewaarde bepaalt de neiging van de kernel om het geheugen vrij te maken, dat wordt gebruikt voor het opslaan in cache van map- en inode-objecten. |
vm.swappiness |
0 - 100 | 60 | 60 | 60 | Dit controle-element wordt gebruikt om vast te stellen hoe agressief de kernel geheugenpagina's wisselt. Hogere waarden verhogen de agressiviteit, lagere waarden verlagen de hoeveelheid swap. Een waarde van 0 geeft aan dat de kernel geen wissel kan initiëren totdat de hoeveelheid gratis pagina's en pagina's met bestandssteun kleiner is dan de hoge watermarkering in een zone. |
swapFileSizeMB |
1 MB - Grootte van de tijdelijke schijf (/dev/sdb) | Geen | Geen | Geen | SwapFileSizeMB geeft de grootte op in MB van een wisselbestand dat moet worden gemaakt op de agentknooppunten van deze knooppuntgroep. |
transparentHugePageEnabled |
always, , madvisenever |
always |
always |
madvise |
Transparent Hugepages is een Linux-kernelfunctie die is bedoeld om de prestaties te verbeteren door efficiënter gebruik te maken van de geheugentoewijzingshardware van uw processor. Wanneer de optie is ingeschakeld, probeert de kernel hugepages toe te wijzen wanneer mogelijk, en ontvangt een Linux-proces 2-MB-pagina's als de mmap regio op een natuurlijke manier 2 MB is uitgelijnd. In bepaalde gevallen wanneer hugepages systeembreed is ingeschakeld, kunnen toepassingen uiteindelijk meer geheugenresources toewijzen. Een toepassing kan een groot gebied mmap, maar slechts 1 byte ervan aanraken; in dat geval kan zonder goede reden een pagina van 2 MB worden toegewezen in plaats van een 4kB-pagina. Dit scenario is waarom het mogelijk is om systeembreed uit te schakelen hugepages of alleen binnen MADV_HUGEPAGE madvise regio's te hebben. |
transparentHugePageDefrag |
always
defer, defer+madvise, madvisenever |
madvise |
madvise |
madvise |
Deze waarde bepaalt of de kernel agressief gebruik moet maken van geheugencompressie om meer hugepages beschikbaar te maken. |
Verwante inhoud
- Meer informatie over het configureren van uw AKS-cluster.
- Meer informatie over het upgraden van de knooppuntinstallatiekopieën in uw cluster.
- Zie Een AKS-cluster (Azure Kubernetes Service) upgraden voor meer informatie over het upgraden van uw cluster naar de nieuwste versie van Kubernetes.
- Zie de lijst met veelgestelde vragen over AKS voor antwoorden op enkele veelgestelde AKS-vragen .