Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek obsahuje seznam podporovaných parametrů konfigurace vlastních uzlů pro fondy uzlů Azure Kubernetes Service (AKS). Informace o vytvoření a použití konfiguračních souborů najdete v tématu Přizpůsobení konfigurace uzlu pro fondy uzlů AKS.
Vlastní parametry konfigurace Kubeletu
Important
Při povolování nebezpečných sysctls převezmete odpovědnost za stabilitu uzlů a chování úloh. Nebezpečné sysctly můžou potenciálně způsobit nestabilitu uzlů nebo ohrožení zabezpečení v případě chybné konfigurace. Ujistěte se, že rozumíte důsledkům aktivace konkrétních nebezpečných sysctls a pečlivě sledujte zdraví clusteru po provedení změn.
Note
Funkce kubeReserved, , softEvictionThresholdhardEvictionThresholdsoftEvictionGracePerioda evictionMaxPodGracePeriodInSeconds nastavení jsou součástí náhledu posílení zabezpečení uzlu AKS a vztahují se pouze na fondy uzlů Linuxu.
CustomNodeConfigPreview Před použitím těchto nastavení zaregistrujte příznak funkce. Pokud chcete povolit posílení zabezpečení uzlů, přečtěte si téma Posílení zabezpečení uzlů (Preview) v AKS.
Pro každý signál vyřazení nastavte jak hodnoty, tak softEvictionThreshold odpovídající softEvictionGracePeriod hodnoty. Obě hodnoty můžete vynechat, pokud chcete použít výchozí hodnotu, nebo nastavit obě hodnoty na prázdné řetězce, aby se pro daný signál odhlásily z obnovitelného vyřazení. Pokud zadáte prahovou hodnotu obnovitelného vyřazení, musí být větší než platná prahová hodnota pro vyřazení stejného signálu.
Vlastní konfigurace kubeletu pro Linux
| Parametr | Povolené hodnoty/interval | Výchozí | Description |
|---|---|---|---|
cpuManagerPolicy |
žádná, statická | žádné | Statické zásady umožňují kontejnerům v garantovaných podech s celočíselnou žádostí o procesor přístup k výhradním procesorům na uzlu. |
cpuCfsQuota |
pravda, nepravda | true | Povolte nebo zakažte vynucení kvóty CFS procesoru pro kontejnery, které určují limity procesoru. |
cpuCfsQuotaPeriod |
Interval v milisekundách (ms) | 100ms |
Nastaví hodnotu období kvóty CFS procesoru. |
imageGcHighThreshold |
0–100 | 85 | Procento využití disku, po kterém se vždy spustí uvolňování nevyužívaných obrazů. Minimální využití disku, které aktivuje uvolňování paměti. Pokud chcete zakázat uvolňování paměti obrázků, nastavte hodnotu na 100. |
imageGcLowThreshold |
0–100, ne vyšší než imageGcHighThreshold |
80 | Procento využití disku, při kterém nikdy nedojde ke spuštění uvolnění nepoužívaných obrazů. Minimální využití disku, které může spustit čištění disku. |
topologyManagerPolicy |
žádný, nejlepší úsilí, omezené, jeden-node-numa | žádné | Optimalizujte zarovnání uzlů NUMA. Další informace naleznete v tématu Řízení zásad správy topologie na uzlu. |
allowedUnsafeSysctls |
kernel.shm*, kernel.msg*, kernel.sem, , fs.mqueue.*net.* |
None | Povolený seznam nebezpečných sysctlů nebo vzorů nebezpečných sysctlů. |
containerLogMaxSizeMB |
Velikost v megabajtech (MB) | 50 | Maximální velikost souboru protokolu kontejneru (například 10 MB) než dojde k rotaci. |
containerLogMaxFiles |
2 nebo vyšší | 5 | Maximální počet souborů protokolu kontejneru, které se mají zachovat pro kontejner. |
podMaxPids |
-1 až limit PID jádra | -1 (nekonečné) | Maximální počet ID procesů, které se dají spustit v podu. |
seccompDefault |
Unconfined, RuntimeDefault |
Unconfined |
Nastaví výchozí profil seccomp pro všechny úlohy.
RuntimeDefault používá výchozí profil seccomp kontejneru, který omezuje určitá systémová volání pro zvýšení zabezpečení. Omezené systémové volání selže.
Unconfined neklade žádná omezení na syscalls, což umožňuje všechny systémové volání a snižuje úroveň zabezpečení. Další informace najdete v kontejnerovém výchozím profilu seccomp. Tento parametr je ve verzi Preview. Zaregistrujte příznak funkce "KubeletDefaultSeccompProfilePreview" pomocí příkazu az feature register. |
kubeReserved.cpuMillicores |
140 na kapacitu procesoru fondu uzlů v milicores | Výpočet AKS na základě velikosti virtuálního počítače | Vyhrazuje si procesor pro démony systému Kubernetes. |
kubeReserved.memoryMB |
750 do kapacity paměti fondu uzlů v MiB | AKS vypočítané z paměti uzlu a maximální počet podů na uzel: min(20 × maxPods + 50, 25% of node memory) MiB. Posílení zabezpečení uzlu: min(35 × maxPods + max(250, 2% of node memory), 25% of node memory) MiB |
Zarezervuje paměť pro démony systému Kubernetes. |
hardEvictionThreshold.memoryAvailable |
<number>Ki, <number>Minebo <number>Gi s minimálním nebo 100Mi2%100% |
100Mi. Posílení zabezpečení uzlů: 250Mi pro uzly s 8 GiB paměti nebo méně, 375Mi pro uzly s více než 8 GiB a méně než 32 GiB a 512Mi pro uzly s 32 GiB nebo více |
Nastaví prahovou hodnotu pro vyřazování pro dostupnou paměť. |
hardEvictionThreshold.nodeFsAvailable |
<number>Ki, <number>Mi, <number>Ginebo 10% do 100% |
10% |
Nastaví prahovou hodnotu vyřazování pro dostupný prostor systému souborů uzlu. |
hardEvictionThreshold.nodeFsInodesFree |
<number> nebo 5% do 100% |
5% |
Nastaví mezní hodnotu vyřazování pro uzly systému souborů bezplatného uzlu. |
softEvictionThreshold.memoryAvailable |
Prázdný řetězec; <number>Ki, <number>Minebo <number>Gi s minimálním nebo 100Mi2%100% |
None. Posílení zabezpečení uzlů: 500Mi pro uzly s 8 GiB paměti nebo méně, 750Mi pro uzly s více než 8 GiB a méně než 32 GiB a 1Gi pro uzly s 32 GiB nebo více |
Nastaví prahovou hodnotu obnovitelného vyřazení pro dostupnou paměť. Hodnota musí být větší než platná hardEvictionThreshold.memoryAvailable hodnota. |
softEvictionThreshold.nodeFsAvailable |
Prázdný řetězec; <number>Ki, <number>Mi, <number>Ginebo 10% do 100% |
12% při povoleném posílení zabezpečení uzlu; Nic jiného |
Nastaví prahovou hodnotu obnovitelného vyřazení pro dostupný prostor systému souborů uzlu. Hodnota musí být větší než platná hardEvictionThreshold.nodeFsAvailable hodnota. |
softEvictionThreshold.nodeFsInodesFree |
Prázdný řetězec; <number> nebo 5% do 100% |
7% při povoleném posílení zabezpečení uzlu; Nic jiného |
Nastaví prahovou hodnotu obnovitelného vyřazení pro uzly systému souborů s bezplatným uzly systému souborů uzlu. Hodnota musí být větší než platná hardEvictionThreshold.nodeFsInodesFree hodnota. |
softEvictionGracePeriod.memoryAvailable |
Prázdný řetězec nebo doba trvání stylu go alespoň pomocí , , , , s, , mnebo msusns30sh |
30s při povoleném posílení zabezpečení uzlu; Nic jiného |
Nastaví, jak dlouho memoryAvailable se musí prahová hodnota obnovitelného vyřazení protínat před vyřazováním podů kubeletu. |
softEvictionGracePeriod.nodeFsAvailable |
Prázdný řetězec nebo doba trvání stylu go alespoň pomocí , , , , s, , mnebo msusns30sh |
2m při povoleném posílení zabezpečení uzlu; Nic jiného |
Nastaví, jak dlouho nodeFsAvailable se musí prahová hodnota obnovitelného vyřazení protínat před vyřazováním podů kubeletu. |
softEvictionGracePeriod.nodeFsInodesFree |
Prázdný řetězec nebo doba trvání stylu go alespoň pomocí , , , , s, , mnebo msusns30sh |
2m při povoleném posílení zabezpečení uzlu; Nic jiného |
Nastaví, jak dlouho nodeFsInodesFree se musí prahová hodnota obnovitelného vyřazení protínat před vyřazováním podů kubeletu. |
evictionMaxPodGracePeriodInSeconds |
0 nebo vyšší | 60, pokud je povoleno posílení zabezpečení uzlu; 0 jinak |
Nastaví maximální počet sekund, po které kubelet umožňuje ukončení podů během obnovitelného vyřazení. |
Vlastní konfigurace Windows kubeletu
| Parametr | Povolené hodnoty/interval | Výchozí | Description |
|---|---|---|---|
imageGcHighThreshold |
0–100 | 85 | Procento využití disku, po kterém se vždy spustí uvolňování nevyužívaných obrazů. Minimální využití disku, které aktivuje uvolňování paměti. Pokud chcete zakázat uvolňování paměti obrázků, nastavte hodnotu na 100. |
imageGcLowThreshold |
0–100, ne vyšší než imageGcHighThreshold |
80 | Procento využití disku, při kterém nikdy nedojde ke spuštění uvolnění nepoužívaných obrazů. Minimální využití disku, které může spustit čištění disku. |
containerLogMaxSizeMB |
Velikost v megabajtech (MB) | 10 | Maximální velikost souboru protokolu kontejneru (například 10 MB) než dojde k rotaci. |
containerLogMaxFiles |
2 nebo vyšší | 5 | Maximální počet souborů protokolu kontejneru, které se mají zachovat pro kontejner. |
Vlastní parametry konfigurace operačního systému Linux
Important
Pro zjednodušení vyhledávání a čitelnosti se nastavení operačního systému zobrazí v tomto článku podle jejich názvu, ale měly by být přidány do konfiguračního souboru JSON nebo rozhraní API AKS pomocí konvence velká písmena camelCase.
Pokud například upravíte vm.max_map_count nastavení, měli byste ho přeformátovat do vmMaxMapCount konfiguračního souboru JSON.
Omezení zpracování souborů v Linuxu
Při poskytování vysokého objemu provozu tento obvykle pochází z množství místních souborů. Můžete upravit následující nastavení jádra a předdefinovaná omezení, abyste mohli zpracovávat více za cenu některých systémových pamětí.
Následující tabulka uvádí omezení popisovače souborů, která můžeš přizpůsobit pro uzlový fond.
| Setting | Povolené hodnoty/interval | Výchozí nastavení Ubuntu 22.04 | Výchozí nastavení Ubuntu 24.04 | Výchozí nastavení Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
fs.file-max |
8192 - 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | 9223372036854775807 | Maximální počet popisovačů souborů, které jádro Linuxu přiděluje Tato hodnota je nastavena na maximální možnou hodnotu (2^63-1), aby se zabránilo vyčerpání souborových deskriptorů a zajistily neomezené souborové deskriptory v rámci celého systému pro kontejnerizované úlohy. |
fs.inotify.max_user_watches |
781250 - 2097152 | 1048576 | 1048576 | 1048576 | Maximální počet sledování souborů povolený systémem. Každý watch je přibližně 90 bajtů v 32bitovém jádru a přibližně 160 bajtů v 64bitovém jádru. |
fs.aio-max-nr |
65536 - 6553500 | 65536 | 65536 | 65536 | Aio-nr zobrazuje aktuální počet asynchronních vstupně-výstupních požadavků na celý systém. aio-max-nr umožňuje změnit maximální hodnotu, které může aio-nr dosáhnout. |
fs.nr_open |
8192 - 20000500 | 1048576 | 1048576 | 1073741816 | Maximální počet popisovačů souborů, které proces může přidělit. |
Note
Parametr fs.file-max je nastavený na 9223372036854775807 (maximální hodnota 64bitového celého čísla) napříč Ubuntu a Azure Linuxem na základě výchozích hodnot upstreamu. Tato konfigurace:
- Zabraňuje útokům na dostupnost služby na základě vyčerpání popisovače souborů v rámci celého systému.
- Zajišťuje, že úlohy kontejnerů nejsou nikdy kritickým bodem limitů zpracování souborů na úrovni celého systému.
-
Udržuje zabezpečení prostřednictvím limitů jednotlivých procesů (
fs.nr_openaulimit), které se stále vztahují na jednotlivé procesy. - Optimalizuje se pro kontejnerové platformy , kde může běžet mnoho kontejnerů současně, přičemž každý potenciálně otevírá mnoho souborů a síťových připojení.
Ladění zásuvky a sítě v Linuxu
U uzlů agentů, u kterých se očekává zpracování velkého počtu souběžných relací, můžete použít následující možnosti protokolu TCP a sítě a upravit je na fond uzlů:
| Setting | Povolené hodnoty/interval | Výchozí nastavení Ubuntu 22.04 | Výchozí nastavení Ubuntu 24.04 | Výchozí nastavení Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
net.core.somaxconn |
4096 - 3240000 | 16384 | 16384 | 16384 | Maximální počet požadavků na připojení, které lze zařadit do fronty pro libovolný daný naslouchající soket. Horní limit hodnoty parametru backlogu předaného funkci listen(2). Pokud je argument backlogu větší než somaxconn, je automaticky zkrácen na tento limit. |
net.core.netdev_max_backlog |
1000 - 3240000 | 1000 | 1000 | 1000 | Maximální počet paketů zařazených do fronty na straně INPUT, když rozhraní přijímá pakety rychleji, než je jádro dokáže zpracovat. |
net.core.rmem_max |
212992 - 134217728 | 1048576 | 1048576 | 212992 | Maximální velikost vyrovnávací paměti soketu příjmu v bajtech. |
net.core.wmem_max |
212992 - 134217728 | 212992 | 212992 | 212992 | Maximální velikost vyrovnávací paměti soketu pro odesílání v bajtech. |
net.core.optmem_max |
20480 - 4194304 | 20480 | 131072 | 20480 | Maximální velikost pomocné vyrovnávací paměti (vyrovnávací paměť pro možnosti) povolená pro každý soket. Paměť možností soketu se používá v několika případech k ukládání dalších struktur týkajících se použití soketu. |
net.ipv4.tcp_max_syn_backlog |
128 - 3240000 | 16384 | 16384 | 16384 | Maximální počet žádostí o připojení zařazených do fronty, které neobdržely potvrzení od připojujícího klienta. Pokud je toto číslo překročeno, začne jádro zahazovat požadavky. |
net.ipv4.tcp_max_tw_buckets |
8000 - 1440000 | 262144 | 262144 | 131072 | Maximální počet TIME-WAIT soketů, které systém drží současně. Pokud je toto číslo překročeno, soket s časovým čekáním se okamžitě zničí a zobrazí se varování. |
net.ipv4.tcp_fin_timeout |
5 - 120 | 60 | 60 | 60 | Doba, po kterou osamocené připojení (na které už neodkazuje žádná aplikace) zůstane ve stavu FIN_WAIT_2, než je přerušeno na místním konci. |
net.ipv4.tcp_keepalive_time |
30 - 432000 | 7200 | 7200 | 7200 | Jak často tcp odesílá keepalive zprávy, když keepalive je povoleno. |
net.ipv4.tcp_keepalive_probes |
1 - 15 | 9 | 9 | 9 | Dokud se TCP nerozhodne, že připojení je přerušeno, kolik sond odesílá? |
net.ipv4.tcp_keepalive_intvl |
10 - 90 | 75 | 75 | 75 | Jak často se sondy odesílají. Vynásobením tcp_keepalive_probes se stanoví doba, po které se ukončí připojení, které nereaguje, když již byly sondy spuštěny. |
net.ipv4.tcp_tw_reuse |
2 | 2 | 2 | Umožňuje opakované použití TIME-WAIT soketů pro nová připojení, pokud je bezpečné z hlediska protokolu. |
|
net.ipv4.ip_local_port_range |
První: 1024 - 60999 a poslední: 32768 - 65535] | První: 32768 a poslední: 60999 | První: 32768 a poslední: 60999 | První: 32768 a poslední: 60999 | Místní rozsah portů používaný přenosy TCP a UDP k výběru místního portu. Rozsah se skládá ze dvou čísel: prvního místního portu povoleného pro provoz TCP a UDP na uzlu agenta a posledního čísla místního portu. |
net.ipv4.neigh.default.gc_thresh1 |
128 - 80000 | 4096 | 4096 | 4096 | Minimální počet položek, které mohou být v mezipaměti protokolu ARP. Uvolňování paměti se neaktivuje, pokud je počet položek méně než toto nastavení. |
net.ipv4.neigh.default.gc_thresh2 |
512 - 90000 | 8192 | 8192 | 8192 | Maximální maximální počet položek, které mohou být v mezipaměti protokolu ARP. Toto nastavení je pravděpodobně nejdůležitější, protože uvolňování paměti protokolu ARP se aktivuje přibližně 5 sekund po dosažení tohoto měkkého maxima. |
net.ipv4.neigh.default.gc_thresh3 |
1024 - 100000 | 16384 | 16384 | 16384 | Pevný maximální počet položek v mezipaměti protokolu ARP. |
net.netfilter.nf_conntrack_max |
131072 - 2097152 | Dynamicky vypočítané | Dynamicky vypočítané | Dynamicky vypočítané |
nf_conntrack je modul, který v Linuxu sleduje položky připojení pro NAT (překlad adres). Modul nf_conntrack používá k zaznamenání vytvořeného záznamu připojení protokolu TCP tabulku hash.
nf_conntrack_max je maximální počet uzlů v tabulce hash, tj. maximální počet připojení podporovaný modulem nf_conntrack nebo velikost tabulky sledování připojení.
Výchozí hodnota se dynamicky počítá na základě systémové paměti pomocí vzorce: RAM_in_bytes / 16384 (nebo RAM_in_MB * 64). Například virtuální počítač s 8 GB paměti RAM má výchozí nastavení přibližně 524 288 připojení. Skutečné hodnoty se liší v závislosti na velikosti virtuálního počítače a dostupné paměti. |
net.netfilter.nf_conntrack_buckets |
65536 - 524288 | Dynamicky vypočítané | Dynamicky vypočítané | Dynamicky vypočítané |
nf_conntrack je modul, který v Linuxu sleduje položky připojení pro NAT (překlad adres). Modul nf_conntrack používá k zaznamenání vytvořeného záznamu připojení protokolu TCP tabulku hash.
nf_conntrack_buckets je velikost hashovací tabulky.
Výchozí hodnota se dynamicky počítá na základě systémové paměti pomocí vzorce: RAM_in_bytes / 16384, s minimálně 1 024 kbelíky a maximálně 262 144 kbelíků. Výchozí hodnota nf_conntrack_max je obvykle nastavena na nf_conntrack_buckets * 4hodnotu . Skutečné hodnoty se liší v závislosti na velikosti virtuálního počítače a dostupné paměti. |
Omezení pracovních procesů v Linuxu
Stejně jako omezení popisovače souborů je počet pracovních procesů nebo vláken, které může proces vytvořit, omezen nastavením jádra i uživatelskými limity. Omezení uživatele v AKS je neomezené. Následující tabulka uvádí nastavení jádra, které můžete přizpůsobit pro fond uzlů:
| Setting | Výchozí nastavení Ubuntu 22.04 | Výchozí nastavení Ubuntu 24.04 | Výchozí nastavení Azure Linux 3.0 | Description |
|---|---|---|---|---|
kernel.threads-max |
Dynamicky vypočítané | Dynamicky vypočítané | Dynamicky vypočítané | Procesy můžou aktivovat pracovní vlákna. Maximální počet všech vláken, které lze vytvořit, je nastaven s nastavením kernel.threads-maxjádra .
Výchozí hodnota se dynamicky počítá na základě systémové paměti pomocí vzorce: total_ram_pages / 4 (kde každá stránka je obvykle 4 kB). Skutečné hodnoty se liší v závislosti na velikosti virtuálního počítače a dostupné paměti. |
Virtuální paměť s Linuxem
Následující tabulka uvádí nastavení jádra, která můžete přizpůsobit pro sdružení uzlů, aby se optimalizoval provoz subsystému virtuální paměti jádra Linuxu a writeout nezpracovaná data na disk:
| Setting | Povolené hodnoty/interval | Výchozí nastavení Ubuntu 22.04 | Výchozí nastavení Ubuntu 24.04 | Výchozí nastavení Azure Linux 3.0 | Description |
|---|---|---|---|---|---|
vm.max_map_count |
65530 | 1048576 | 1048576 | Tento soubor obsahuje maximální počet oblastí mapy paměti, které může proces obsahovat. Oblasti mapy paměti se používají jako vedlejší účinek volání malloc, přímo pomocí mmap, mprotect a madvise, a také při načítání sdílených knihoven. |
|
vm.vfs_cache_pressure |
1 - 100 | 100 | 100 | 100 | Tato procentuální hodnota ovlivňuje tendenci jádra k uvolňování paměti, která se používá pro ukládání objektů adresáře a objektů inode do mezipaměti. |
vm.swappiness |
0 - 100 | 60 | 60 | 60 | Tento ovládací prvek slouží k určení míry agresivity, s jakou jádro vyměňuje stránky paměti. Vyšší hodnoty zvyšují agresivitu, nižší hodnoty snižují množství výměny. Hodnota 0 dává jádru pokyn, aby nespustil prohazování, dokud množství volných stránek a stránek zálohovaných souborem nebude menší než horní mezní hodnota v zóně. |
swapFileSizeMB |
1 MB – velikost dočasného disku (/dev/sdb) | None | None | None | SwapFileSizeMB specifikuje velikost v MB swapovacího souboru, který se má vytvořit z tohoto fondu uzlů na uzlech agenta. |
transparentHugePageEnabled |
always, madvise, never |
always |
always |
madvise |
Transparent Hugepages je funkce jádra Linuxu určená ke zlepšení výkonu tím, že zefektivňuje využití hardwaru mapování paměti procesoru. Pokud je povoleno, jádro se pokusí o přidělení hugepages, kdykoli je to možné, a jakýkoli Linuxový proces obdrží stránky velikosti 2 MB, pokud je oblast mmap přirozeně zarovnaná 2 MB. V některých případech, kdy je hugepages povolené celosystémově, mohou aplikace nakonec přidělit více paměťových prostředků. Aplikace může mmap mít velkou oblast, ale z nějakého důvodu se dotkne jenom 1 bajtu. V takovém případě může být místo stránky 4k přidělena stránka o velikosti 2 MB. Proto je možné zakázat hugepages v celém systému nebo je mít jen uvnitř MADV_HUGEPAGE madvise regionů. |
transparentHugePageDefrag |
always, defer, defer+madvise, , madvisenever |
madvise |
madvise |
madvise |
Tato hodnota určuje, jestli má jádro agresivně využívat komprimace paměti, aby bylo k dispozici více hugepages . |