Egyéni csomópontkonfigurációs paraméterek Azure Kubernetes Service (AKS)

Ez a cikk Azure Kubernetes Service (AKS) csomópontkészletek támogatott egyéni csomópontkonfigurációs paramétereit sorolja fel. A konfigurációs fájlok létrehozásáról és alkalmazásáról az AKS-csomópontkészletek csomópontkonfigurációjának testreszabása című témakörben olvashat.

Egyéni Kubelet-konfigurációs paraméterek

Important

A nem biztonságos sysctls engedélyezésekor ön felel a csomópont stabilitásáért és a számítási feladatok viselkedéséért. A nem biztonságos sysctlsek a csomópontok instabilitását vagy biztonsági réseit okozhatják, ha helytelenül van konfigurálva. Győződjön meg arról, hogy tisztában van azzal, hogy milyen következményekkel jár az adott nem biztonságos sysctls engedélyezése, majd a módosítások után szorosan figyelje a fürt állapotát.

Egyéni Linux kubelet-konfiguráció

Paraméter Engedélyezett értékek/intervallum Alapértelmezett Description
cpuManagerPolicy nincs, statikus none A statikus házirend lehetővé teszi, hogy a konténerek garantált podokban egész számú CPU-kéréssel hozzáférjenek a csomóponton található kizárólagos CPU-khoz.
cpuCfsQuota igaz, hamis true A CPU CFS-kvóta kikényszerítésének engedélyezése/letiltása olyan tárolók esetében, amelyek cpu-korlátokat határoznak meg.
cpuCfsQuotaPeriod Intervallum ezredmásodpercben (ms) 100ms A CPU CFS kvótaidőszakának értékét állítja be.
imageGcHighThreshold 0-100 85 Az a lemezhasználati százalék, amely után a rendszerkép-szemétgyűjtés mindig lefut. A szemétgyűjtést kiváltó minimális lemezhasználat. A kép szemétgyűjtésének letiltásához állítsa be a 100 értéket.
imageGcLowThreshold 0-100, legfeljebb imageGcHighThreshold 80 A lemezhasználat azon százaléka, amely alatt a képek szemétgyűjtése soha nem indul el. Minimális lemezhasználat, amely kiválthatja a szemétgyűjtést.
topologyManagerPolicy none, best-effort, korlátozott, egyetlen-numa-csomópont none Optimalizálja a NUMA-csomópont igazítását. További információért lásd: Ellenőrzési topológia kezelési irányelvek egy csomóponton.
allowedUnsafeSysctls kernel.shm*, kernel.msg*, kernel.sem, fs.mqueue.*net.* Nincs A nem biztonságos sysctls- vagy nem biztonságos sysctl-minták engedélyezett listája.
containerLogMaxSizeMB Méret megabájtban (MB) 50 A tároló naplófájljainak maximális mérete (például 10 MB) a forgatás előtt.
containerLogMaxFiles 2 vagy nagyobb 5 A tárolóhoz megőrzendő tároló naplófájljainak maximális száma.
podMaxPids -1 a kernel PID korlátjához -1 (végtelen) A podban futtatható folyamatazonosítók maximális száma.
seccompDefault Unconfined, RuntimeDefault Unconfined Beállítja az alapértelmezett seccomp profilt az összes számítási feladathoz. RuntimeDefault A tárolód alapértelmezett seccomp-profilját használja, amely korlátozza bizonyos rendszerhívásokat a biztonság növelése érdekében. A korlátozott syscalls nem működik. Unconfined nem korlátozza a syscalls szolgáltatást, lehetővé téve az összes rendszerhívást, és csökkenti a biztonságot. További információkért tekintse meg a tárolóalapú alapértelmezett seccomp profilt. Ez a paraméter előzetes verzióban érhető el. Regisztrálja a "KubeletDefaultSeccompProfilePreview" funkciójelzőt a az feature register következő paranccsal --namespace "Microsoft.ContainerService": .
kubeReserved.cpuMillicores 1 a csomópontkészlet processzorkapacitásához millicore-ban Nincs A Linux-csomópontkészleteken lévő Kubernetes rendszerdemonjaihoz tartozó CPU-t lefoglalja. Ez a paraméter előzetes verzióban érhető el, és a funkciójelzőt CustomNodeConfigPreview igényli.
kubeReserved.memoryMB 1 a csomópontkészlet memóriakapacitásához a MiB-ben Nincs Memóriát foglal le a Kubernetes rendszerdémonjai számára a Linux-csomópontkészletekben. Ez a paraméter előzetes verzióban érhető el, és a funkciójelzőt CustomNodeConfigPreview igényli.
hardEvictionThreshold.memoryAvailable <number>Ki, <number>Mi, <number>Givagy <number>% ha a százalékos érték nem haladja meg a 100-t Nincs Beállítja a kubelet szigorú kiürítési küszöbértékét az elérhető memóriára vonatkozóan a Linux-csomópontkészletekben. Ez a paraméter előzetes verzióban érhető el, és a funkciójelzőt CustomNodeConfigPreview igényli.
hardEvictionThreshold.nodeFsAvailable <number>Ki, <number>Mi, <number>Givagy <number>% ha a százalékos érték nem haladja meg a 100-t Nincs Beállítja a kubelet kényszerített kiürítési küszöbértékét a Linux-csomópontkészletekben a csomópont fájlrendszerén rendelkezésre álló területre vonatkozóan. Ez a paraméter előzetes verzióban érhető el, és a funkciójelzőt CustomNodeConfigPreview igényli.
hardEvictionThreshold.nodeFsInodesFree <number> vagy <number>% ha a százalék nem haladja meg a 100-nál Nincs Beállítja a kubelet hard eviction küszöbértékét a Linux-csomópontkészleteken lévő ingyenes csomópont fájlrendszer-inodákhoz. Ez a paraméter előzetes verzióban érhető el, és a funkciójelzőt CustomNodeConfigPreview igényli.

Egyéni Windows kubelet-konfiguráció

Paraméter Engedélyezett értékek/intervallum Alapértelmezett Description
imageGcHighThreshold 0-100 85 Az a lemezhasználati százalék, amely után a rendszerkép-szemétgyűjtés mindig lefut. A szemétgyűjtést kiváltó minimális lemezhasználat. A kép szemétgyűjtésének letiltásához állítsa be a 100 értéket.
imageGcLowThreshold 0-100, legfeljebb imageGcHighThreshold 80 A lemezhasználat azon százaléka, amely alatt a képek szemétgyűjtése soha nem indul el. Minimális lemezhasználat, amely kiválthatja a szemétgyűjtést.
containerLogMaxSizeMB Méret megabájtban (MB) 10 A tároló naplófájljainak maximális mérete (például 10 MB) a forgatás előtt.
containerLogMaxFiles 2 vagy nagyobb 5 A tárolóhoz megőrzendő tároló naplófájljainak maximális száma.

Egyéni Linux operációsrendszer-konfigurációs paraméterek

Important

A keresés és az olvashatóság egyszerűsítése érdekében az operációsrendszer-beállítások a nevük alapján jelennek meg ebben a cikkben, de a camelCase nagybetűsítési konvencióval hozzá kell adni őket a konfigurációs JSON-fájlhoz vagy az AKS API-hoz.

Ha például módosítja a vm.max_map_count beállítást, újra kell formáznia vmMaxMapCount a konfigurációs JSON-fájlban.

Linux-fájlkezelő korlátai

A nagy mennyiségű forgalom kiszolgálása során ez a forgalom gyakran nagy számú helyi fájlból származik. Az alábbi kernelbeállításokat és a beépített korlátokat úgy módosíthatja, hogy a rendszermemória árán további műveletekre is képes legyen.

Az alábbi táblázat felsorolja a csomópontkészletenként testre szabható fájlleíró-korlátokat:

Setting Engedélyezett értékek/intervallum Ubuntu 22.04 alapértelmezett Ubuntu 24.04 alapértelmezett Alapértelmezett Azure Linux 3.0 Description
fs.file-max 8192 - 9223372036854775807 9223372036854775807 9223372036854775807 9223372036854775807 A Linux kernel által lefoglalt fájlkezelők maximális száma. Ez az érték a lehetséges maximális értékre van állítva (2^63-1), hogy megakadályozza a fájlleírók kimerülését, és korlátlan rendszerszintű fájlkezelőket biztosítson a tárolóalapú számítási feladatokhoz.
fs.inotify.max_user_watches 781250 - 2097152 1048576 1048576 1048576 A rendszer által engedélyezett fájlmegfigyelések maximális száma. Minden figyelő körülbelül 90 bájt egy 32 bites kernelen, és körülbelül 160 bájt egy 64 bites kernelen.
fs.aio-max-nr 65536 - 6553500 65536 65536 65536 Az aio-nr az aszinkron I/O-kérések aktuális rendszerszintű számát jeleníti meg. Az aio-max-nr lehetővé teszi az aio-nr maximális értékének módosítását.
fs.nr_open 8192 - 20000500 1048576 1048576 1073741816 A folyamat által lefoglalható fájlkezelők maximális száma.

Megjegyzés:

A fs.file-max paraméter 9223372036854775807 (az aláírt 64 bites egész szám maximális értéke) értékre van állítva az Ubuntu és az Azure Linux esetében a felsőbb rétegbeli alapértelmezett értékek alapján. Ez a konfiguráció:

  • Megakadályozza a szolgáltatásmegtagadásos támadásokat a rendszerszintű fájlleíró kimerülése alapján.
  • Biztosítja, hogy a tárolói munkaterhelések soha ne kerüljenek a rendszerszintű fájlleíró korlátok miatti szűk keresztmetszetbe.
  • A biztonságot folyamatonkénti korlátokon (fs.nr_open és ulimit) keresztül tartja fenn, amelyek továbbra is érvényesek az egyes folyamatokra.
  • Olyan tárolóplatformokra optimalizálja , amelyeken egyszerre több tároló is futhat, és mindegyik több fájlt és hálózati kapcsolatot nyithat meg.

Linux-socketek és hálózat finomhangolása

Az ügynökcsomópontok esetében, amelyek várhatóan nagy számú egyidejű munkamenetet fognak kezelni, a következő TCP- és hálózati beállításokat használhatja, és csomópontkészletenként módosíthatja őket:

Setting Engedélyezett értékek/intervallum Ubuntu 22.04 alapértelmezett Ubuntu 24.04 alapértelmezett Alapértelmezett Azure Linux 3.0 Description
net.core.somaxconn 4096 - 3240000 16384 16384 16384 Bármely adott figyelő sockethez sorba állítható kapcsolatkérések maximális száma. A figyelés(2) függvénynek átadott hátralékparaméter értékének felső korlátja. Ha a hátralék argumentum nagyobb a somaxconnkorlátnál, akkor a rendszer csendben csonkolja ezt a korlátot.
net.core.netdev_max_backlog 1000 - 3240000 1000 1000 1000 A bemeneti oldalon várólistára helyezett csomagok maximális száma, ha a felület gyorsabban fogadja a csomagokat, mint amennyit a kernel képes feldolgozni.
net.core.rmem_max 212992 - 134217728 1048576 1048576 212992 A fogadó csatlakozó maximális pufferméret bájtban.
net.core.wmem_max 212992 - 134217728 212992 212992 212992 A maximális küldési fogadó puffer mérete bájtban.
net.core.optmem_max 20480 - 4194304 20480 131 072 20480 Foglalatonként megengedett maximális kiegészítő pufferméret (opciós memóriapuffer). A szoftvercsatorna-beállítás memóriája néhány esetben a szoftvercsatorna használatával kapcsolatos további struktúrák tárolására szolgál.
net.ipv4.tcp_max_syn_backlog 128 - 3240000 16384 16384 16384 Azoknak a várólistás kapcsolatkéréseknek a maximális száma, amelyek nem kaptak visszaigazolást a csatlakozó ügyféltől. Ha túllépi ezt a számot, a kernel elkezdi elvetni a kérelmeket.
net.ipv4.tcp_max_tw_buckets 8000 - 1440000 262144 262144 131 072 A rendszer által egyidejűleg tartott foglalatok maximális száma TIME-WAIT . Ha túllépi ezt a számot, a rendszer azonnal megsemmisíti az idő-várakozási foglalatot, és a rendszer figyelmeztetést nyomtat.
net.ipv4.tcp_fin_timeout 5 - 120 60 60 60 Az az időtartam, ameddig egy árva kapcsolat (amelyet már semmilyen alkalmazás nem hivatkozik) a FIN_WAIT_2 állapotban marad, mielőtt a helyi végen megszakítják.
net.ipv4.tcp_keepalive_time 30 - 432000 7200 7200 7200 Milyen gyakran küld üzeneteket keepalive a TCP, ha keepalive engedélyezve van.
net.ipv4.tcp_keepalive_probes 1 - 15 9 9 9 Hány keepalive mintavételt küld a TCP, amíg el nem dönti, hogy a kapcsolat megszakadt.
net.ipv4.tcp_keepalive_intvl 10 - 90 75 75 75 Milyen gyakran küldik el a szondákat. A szondák elindítása után tcp_keepalive_probes-val/-vel megszorozva ez adja meg a nem válaszoló kapcsolat megszakításának idejét.
net.ipv4.tcp_tw_reuse 2 2 2 Lehetővé teszi a TIME-WAIT szoftvercsatornák újbóli használatát az új kapcsolatokhoz, ha az biztonságos a protokoll szempontjából.
net.ipv4.ip_local_port_range Első: 1024 - 60999 és Utolsó: 32768 - 65535] Első: 32768 és Utolsó: 60999 Első: 32768 és Utolsó: 60999 Első: 32768 és Utolsó: 60999 A TCP- és UDP-forgalom által a helyi port kiválasztásához használt helyi porttartomány. A tartomány két számból áll: az ügynökcsomóponton a TCP- és UDP-forgalom számára engedélyezett első helyi portból és az utolsó helyi portszámból.
net.ipv4.neigh.default.gc_thresh1 128 - 80000 4096 4096 4096 Az ARP-gyorsítótárban található bejegyzések minimális száma. A szemétgyűjtés nem aktiválódik, ha a bejegyzések száma nem éri el ezt a beállítást.
net.ipv4.neigh.default.gc_thresh2 512 - 90000 8192 8192 8192 Az ARP-gyorsítótárban tárolható bejegyzések rugalmas maximális száma. Ez a beállítás vitathatatlanul a legfontosabb, mivel az ARP szemétgyűjtés körülbelül 5 másodperccel a maximális érték elérése után aktiválódik.
net.ipv4.neigh.default.gc_thresh3 1024 - 100000 16384 16384 16384 Az ARP-gyorsítótárban lévő bejegyzések szigorú maximális száma.
net.netfilter.nf_conntrack_max 131072 - 2097152 Dinamikusan kiszámított Dinamikusan kiszámított Dinamikusan kiszámított nf_conntrack Egy modul, amely a Linuxon belüli NAT-kapcsolatok bejegyzéseit követi nyomon. A nf_conntrack modul kivonattáblával rögzíti a TCP protokoll létrehozott kapcsolati rekordját. nf_conntrack_max a kivonattáblában található csomópontok maximális száma, azaz a modul által nf_conntrack támogatott kapcsolatok maximális száma vagy a kapcsolatkövetési tábla mérete. Az alapértelmezett érték dinamikusan van kiszámítva a rendszermemória alapján a következő képlettel: RAM_in_bytes / 16384 (vagy RAM_in_MB * 64). Például egy 8 GB RAM-mal rendelkező virtuális gép alapértelmezett értéke körülbelül 524 288 kapcsolat. A tényleges értékek a virtuális gép méretétől és a rendelkezésre álló memóriától függően változnak.
net.netfilter.nf_conntrack_buckets 65536 - 524288 Dinamikusan kiszámított Dinamikusan kiszámított Dinamikusan kiszámított nf_conntrack Egy modul, amely a Linuxon belüli NAT-kapcsolatok bejegyzéseit követi nyomon. A nf_conntrack modul kivonattáblával rögzíti a TCP protokoll létrehozott kapcsolati rekordját. nf_conntrack_buckets a kivonattábla mérete. Az alapértelmezett érték dinamikusan számítható ki a rendszermemória alapján a következő képlettel: RAM_in_bytes / 16384legalább 1024 gyűjtővel és legfeljebb 262 144 gyűjtővel. Az alapértelmezett nf_conntrack_max érték általában a következő.nf_conntrack_buckets * 4 A tényleges értékek a virtuális gép méretétől és a rendelkezésre álló memóriától függően változnak.

Linuxos feldolgozói korlátok

A fájlleíró korlátaihoz hasonlóan a folyamat által létrehozható feldolgozók vagy szálak számát a kernelbeállítás és a felhasználói korlátok is korlátozzák. Az AKS felhasználói korlátja korlátlan. Az alábbi táblázat felsorolja a csomópontkészletenként testre szabható kernelbeállítást:

Setting Ubuntu 22.04 alapértelmezett Ubuntu 24.04 alapértelmezett Alapértelmezett Azure Linux 3.0 Description
kernel.threads-max Dinamikusan kiszámított Dinamikusan kiszámított Dinamikusan kiszámított A folyamatok felpörgethetik a feldolgozói szálakat. A létrehozható összes szál maximális száma a kernelbeállítással kernel.threads-maxvan beállítva. Az alapértelmezett érték dinamikusan számítható ki a rendszermemória alapján a következő képlettel: total_ram_pages / 4 (ahol az egyes lapok általában 4 KB-osak). A tényleges értékek a virtuális gép méretétől és a rendelkezésre álló memóriától függően változnak.

Linux virtuális memória

Az alábbi táblázat felsorolja azokat a kernelbeállításokat, amelyeket csomópontkészletenként testre szabhat a Linux kernel virtuális memória (VM) alrendszerének és a writeout lemezre irányuló piszkos adatok működésének finomhangolásához:

Setting Engedélyezett értékek/intervallum Ubuntu 22.04 alapértelmezett Ubuntu 24.04 alapértelmezett Alapértelmezett Azure Linux 3.0 Description
vm.max_map_count 65530 1048576 1048576 Ez a fájl a folyamat memóriatérkép-területeinek maximális számát tartalmazza. A memóriatérkép-területeket mellékhatásként hívják meg a malloc hívásával, közvetlenül a mmap, mprotect és madvise, valamint a megosztott könyvtárak betöltésekor.
vm.vfs_cache_pressure 1–100 100 100 100 Ez a százalékos érték szabályozza a kernel azon hajlamát, hogy visszanyerje a könyvtár- és inode-objektumok gyorsítótárazására használt memóriát.
vm.swappiness 0 - 100 60 60 60 Ez a vezérlő határozza meg, hogy a kernel milyen agresszív módon cseréli fel a memórialapokat. A magasabb értékek növelik az agresszivitást, az alacsonyabb értékek csökkentik a felcserélés mennyiségét. A 0 érték arra utasítja a kernelt, hogy ne kezdeményezzon felcserélést, amíg a szabad és fájlalapú lapok mennyisége nem kisebb, mint a zóna magas vízjele.
swapFileSizeMB 1 MB – Az ideiglenes lemez mérete (/dev/sdb) Nincs Nincs Nincs A SwapFileSizeMB a csomópontkészlet ügynökcsomópontjain létrehozandó felcserélési fájl MB-ban megadott méretét adja meg.
transparentHugePageEnabled \, \, \ always always madvise A Transzparens Hugepages linuxos kernelfunkció, amelynek célja, hogy hatékonyabbá tegye a processzor memórialeképezési hardverének használatát. Ha engedélyezve van, a kernel megpróbálja lefoglalni hugepages , amikor csak lehetséges, és bármely Linux-folyamat 2 MB-os oldalakat kap, ha a mmap régió természetesen 2 MB-ra van igazítva. Bizonyos esetekben, amikor a hugepages rendszer szintjén engedélyezve van, az alkalmazások több memóriaerőforrást foglalhatnak le. Egy alkalmazás lefoglalhat egy nagy méretű régiót mmap, de csak 1 bájtot érinthet, így egy 2 MB-os lap foglalható le egy 4k-oldal helyett, indokolatlanul. Ez a forgatókönyv az oka annak, hogy a hugepages az egész rendszerben letiltható, vagy csak a MADV_HUGEPAGE madvise régiókon belül használható.
transparentHugePageDefrag always, defer, defer+madvise, madvisenever madvise madvise madvise Ez az érték határozza meg, hogy a kernelnek agresszívan kell-e alkalmaznia a memória-tömörítést, hogy több hugepages legyen elérhető.