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.

Megjegyzés:

A kubeReserved, hardEvictionThreshold, softEvictionThreshold, softEvictionGracePeriodés evictionMaxPodGracePeriodInSeconds beállítások az AKS Node Hardening előzetes verziójának részét képezik, és csak Linux-csomópontkészletekre vonatkoznak. A beállítások használata előtt regisztrálja a CustomNodeConfigPreview funkciójelzőt. A csomópontkeményítés engedélyezéséről az AKS-ben a Node Hardening (előzetes verzió) című témakörben olvashat.

Minden kilakoltatási jelnél állítsa be a megfelelő és a softEvictionThreshold megfelelő softEvictionGracePeriod értékeket. Kihagyhatja mindkét értéket az alapértelmezett érték használatára, vagy mindkét értéket üres sztringekre állíthatja, hogy kikapcsolja az adott jel helyreállítható kizárását. Ha helyreállítható kiürítési küszöbértéket ad meg, annak nagyobbnak kell lennie, mint az ugyanazon jel tényleges kemény kiürítési küszöbértéke.

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 140 a csomópontkészlet processzorkapacitása millicore-ban AKS-számítás a virtuális gép mérete alapján A Kubernetes-rendszer démonjaihoz tartozó CPU-t lefoglalja.
kubeReserved.memoryMB 750 a csomópontkészlet memóriakapacitása a MiB-ben A csomópontmemória alapján kiszámított AKS és csomópontonkénti podok maximális száma: min(20 × maxPods + 50, 25% of node memory) MiB. Csomópontkeményítéssel: min(35 × maxPods + max(250, 2% of node memory), 25% of node memory) MiB Memóriát foglal le a Kubernetes-rendszer démonjai számára.
hardEvictionThreshold.memoryAvailable <number>Ki, <number>Mivagy <number>Gi legalább 100Mi; vagy 2%100% 100Mi. Csomópontkeményítéssel: 250Mi 8 GiB vagy annál kisebb memóriával rendelkező csomópontok esetén, 375Mi 8 GiB-nél nagyobb és 32 GiB-nél kisebb csomópontok esetén, 512Mi illetve 32 GiB vagy annál nagyobb méretű csomópontok esetén Beállítja a rendelkezésre álló memória kemény kiürítési küszöbértékét.
hardEvictionThreshold.nodeFsAvailable <number>Ki, <number>Mi, <number>Gi, vagy 10% a 100% 10% Beállítja a rendelkezésre álló csomópont fájlrendszerterületének kemény kiürítési küszöbértékét.
hardEvictionThreshold.nodeFsInodesFree <number> vagy 5% a 100% 5% Beállítja az ingyenes csomópont fájlrendszereinek szigorú kiürítési küszöbértékét.
softEvictionThreshold.memoryAvailable Üres sztring; <number>Ki, <number>Mivagy <number>Gi legalább 100Mi; vagy 2%100% None. Csomópontkeményítéssel: 500Mi 8 GiB vagy annál kisebb memóriával rendelkező csomópontok esetén, 750Mi 8 GiB-nél nagyobb és 32 GiB-nél kisebb csomópontok esetén, 1Gi illetve 32 GiB vagy annál nagyobb méretű csomópontok esetén Beállítja a helyreállítható kiürítési küszöbértéket a rendelkezésre álló memória számára. Az értéknek nagyobbnak kell lennie, mint a tényleges hardEvictionThreshold.memoryAvailable érték.
softEvictionThreshold.nodeFsAvailable Üres sztring; <number>Ki, <number>Mi, <number>Gi, vagy 10% a 100% 12% ha a csomópont-megkeményedés engedélyezve van; Nincs másként Beállítja az elérhető csomópont fájlrendszerterület helyreállítható kiürítési küszöbértékét. Az értéknek nagyobbnak kell lennie, mint a tényleges hardEvictionThreshold.nodeFsAvailable érték.
softEvictionThreshold.nodeFsInodesFree Üres sztring; <number> vagy 5% a 100% 7% ha a csomópont-megkeményedés engedélyezve van; Nincs másként Beállítja a helyreállítható kiürítési küszöbértéket az ingyenes csomópont fájlrendszer-inodákhoz. Az értéknek nagyobbnak kell lennie, mint a tényleges hardEvictionThreshold.nodeFsInodesFree érték.
softEvictionGracePeriod.memoryAvailable Üres sztring vagy Go stílusú időtartam legalább 30s a ns, us, , ms, s, mvagy h 30s ha a csomópont-megkeményedés engedélyezve van; Nincs másként Megadja, hogy mennyi ideig kell átlépni a memoryAvailable helyreállítható kiürítési küszöbértéket a kubelet evicts podok előtt.
softEvictionGracePeriod.nodeFsAvailable Üres sztring vagy Go stílusú időtartam legalább 30s a ns, us, , ms, s, mvagy h 2m ha a csomópont-megkeményedés engedélyezve van; Nincs másként Megadja, hogy mennyi ideig kell átlépni a nodeFsAvailable helyreállítható kiürítési küszöbértéket a kubelet evicts podok előtt.
softEvictionGracePeriod.nodeFsInodesFree Üres sztring vagy Go stílusú időtartam legalább 30s a ns, us, , ms, s, mvagy h 2m ha a csomópont-megkeményedés engedélyezve van; Nincs másként Megadja, hogy mennyi ideig kell átlépni a nodeFsInodesFree helyreállítható kiürítési küszöbértéket a kubelet evicts podok előtt.
evictionMaxPodGracePeriodInSeconds 0 vagy nagyobb 60, ha a csomópontok megkeményedése engedélyezve van; 0 egyéb esetben Beállítja, hogy a kubelet hány másodpercig engedélyezi a podok leállítását a helyreállítható kiürítés során.

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ő.