Az Azure Kubernetes Service (AKS) csomópontkészleteinek csomópontkonfigurációjának testreszabása
A csomópontkonfiguráció testreszabásával módosíthatja az operációs rendszer beállításait vagy a kubelet paramétereit a számítási feladatok igényeinek megfelelően. Amikor létrehoz egy AKS-fürtöt, vagy hozzáad egy csomópontkészletet a fürthöz, testre szabhatja a gyakran használt operációsrendszer- és kubelet-beállítások egy részhalmazát. Ha ezen az alkészleten túl szeretné konfigurálni a beállításokat, egy démonkészlettel testre szabhatja a szükséges konfigurációkat anélkül, hogy elveszítené a csomópontok AKS-támogatását.
AKS-fürt létrehozása testreszabott csomópontkonfigurációval
Konfigurációs fájlok létrehozása
Az operációs rendszer és a kubelet konfigurációs módosításaihoz létre kell hoznia egy új konfigurációs fájlt a paraméterekkel és a kívánt beállításokkal. Ha egy paraméter értéke nincs megadva, akkor az érték az alapértelmezett értékre lesz állítva.
Kubelet-konfiguráció
Hozzon létre egy linuxkubeletconfig.json
fájlt a következő tartalommal:
{
"cpuManagerPolicy": "static",
"cpuCfsQuota": true,
"cpuCfsQuotaPeriod": "200ms",
"imageGcHighThreshold": 90,
"imageGcLowThreshold": 70,
"topologyManagerPolicy": "best-effort",
"allowedUnsafeSysctls": [
"kernel.msg*",
"net.*"
],
"failSwapOn": false
}
Operációs rendszer konfigurálása
Hozzon létre egy linuxosconfig.json
fájlt a következő tartalommal:
{
"transparentHugePageEnabled": "madvise",
"transparentHugePageDefrag": "defer+madvise",
"swapFileSizeMB": 1500,
"sysctls": {
"netCoreSomaxconn": 163849,
"netIpv4TcpTwReuse": true,
"netIpv4IpLocalPortRange": "32000 60000"
}
}
Új fürt létrehozása egyéni konfigurációs fájlok használatával
Új fürt létrehozásakor az előző lépésekben létrehozott testre szabott konfigurációs fájlokkal megadhatja a kubelet konfigurációját, operációsrendszer-konfigurációját vagy mindkettőt.
Feljegyzés
Ha egy fürt létrehozásakor konfigurálást ad meg, csak a kezdeti csomópontkészlet csomópontjai alkalmazzák ezt a konfigurációt. A JSON-fájlban nem konfigurált beállítások megőrzik az alapértelmezett értéket. CustomLinuxOsConfig
operációs rendszer típusa nem támogatott: Windows.
Hozzon létre egy új fürtöt egyéni konfigurációs fájlok használatával a az aks create
parancs használatával, és adja meg a konfigurációs fájlokat. Az alábbi példaparancs létrehoz egy új fürtöt az egyéni ./linuxkubeletconfig.json
és ./linuxosconfig.json
a fájlokkal:
az aks create --name myAKSCluster --resource-group myResourceGroup --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json
Csomópontkészlet hozzáadása egyéni konfigurációs fájlok használatával
Amikor csomópontkészletet ad hozzá egy fürthöz, az előző lépésben létrehozott testre szabott konfigurációs fájllal adhatja meg a kubelet konfigurációját. CustomKubeletConfig
Linux- és Windows-csomópontkészletek esetén támogatott.
Feljegyzés
Ha linuxos csomópontkészletet ad hozzá egy meglévő fürthöz, megadhatja a kubelet konfigurációját, az operációs rendszer konfigurációját vagy mindkettőt. Ha windowsos csomópontkészletet ad hozzá egy meglévő fürthöz, csak a kubelet konfigurációját adhatja meg. Ha egy csomópontkészlet hozzáadásakor konfigurálást ad meg, csak az új csomópontkészlet csomópontjai alkalmazzák ezt a konfigurációt. A JSON-fájlban nem konfigurált beállítások megőrzik az alapértelmezett értéket.
az aks nodepool add --name mynodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --kubelet-config ./linuxkubeletconfig.json
Egyéb konfigurációk
A következő beállításokkal módosíthatja az operációs rendszer egyéb beállításait:
A nap üzenete
Adja át a --message-of-the-day
jelölőt a fájl helyével a nap üzenetének a Linux-csomópontokon történő cseréjéhez a fürt létrehozásakor vagy a csomópontkészlet létrehozásakor.
az aks create --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt
Csomópontkészlet létrehozása
az aks nodepool add --name mynodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt
Egyéni csomópontkonfigurációk hibaelhárítása
A beállítások alkalmazásának megerősítése
Az egyéni csomópontkonfiguráció alkalmazása után ellenőrizheti, hogy a beállításokat alkalmazták-e a csomópontokra , ha csatlakozik a gazdagéphez , és ellenőrzi sysctl
, hogy a fájlrendszeren módosításokat hajtottak-e végre.
Egyéni csomópontkonfiguráció által támogatott paraméterek
Egyéni Kubelet-konfiguráció
A Kubelet egyéni konfigurációja linuxos és Windows-csomópontkészletekhez támogatott. A támogatott paraméterek eltérnek egymástól, és az alábbiakban dokumentálva vannak.
Egyéni Linux Kubelet-konfiguráció
Paraméter | Engedélyezett értékek/intervallum | Alapértelmezett | Leírás |
---|---|---|---|
cpuManagerPolicy |
nincs, statikus | Nincs | A statikus házirend lehetővé teszi, hogy a garantált podokban lévő tárolók egész cpu-kéréssel férhessenek hozzá 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 | A lemezhasználat százalékos aránya, amely után a rendszerkép szemétgyűjtése mindig fut. Minimális lemezhasználat, amely elindítja a szemétgyűjtést. 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 előtt a rendszerkép szemétgyűjtése soha nem fut. Minimális lemezhasználat, amely kiválthatja a szemétgyűjtést. |
topologyManagerPolicy |
none, best-effort, korlátozott, egy-numa-node | Nincs | A NUMA-csomópontok igazításának optimalizálása, további információt itt talál. |
allowedUnsafeSysctls |
kernel.shm* , kernel.msg* , kernel.sem , fs.mqueue.* net.* |
Egyik sem | 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ájljának maximális mérete (például 10 MB) az elforgatás előtt. |
containerLogMaxFiles |
≥ 2 | 5 | A tárolóhoz megjeleníthető tároló naplófájljainak maximális száma. |
podMaxPids |
-1 a kernel PID-korlátja | -1 (∞) | 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 sikertelen lesz. Unconfined nem korlátozza a syscalls szolgáltatást, és minden rendszerhívás engedélyezett, ami csökkenti a biztonságot. További részletekért tekintse meg a containerD 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 --namespace "Microsoft.ContainerService" paranccsal. |
Egyéni Windows Kubelet-konfiguráció
Paraméter | Engedélyezett értékek/intervallum | Alapértelmezett | Leírás |
---|---|---|---|
imageGcHighThreshold |
0–100 | 85 | A lemezhasználat százalékos aránya, amely után a rendszerkép szemétgyűjtése mindig fut. Minimális lemezhasználat, amely elindítja a szemétgyűjtést. 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 előtt a rendszerkép szemétgyűjtése soha nem fut. Minimális lemezhasználat, amely kiválthatja a szemétgyűjtést. |
containerLogMaxSizeMB |
Méret megabájtban (MB) | 10 | A tároló naplófájljának maximális mérete (például 10 MB) az elforgatás előtt. |
containerLogMaxFiles |
≥ 2 | 5 | A tárolóhoz megjeleníthető tároló naplófájljainak maximális száma. |
Egyéni Linux operációsrendszer-konfigurációs beállítások
Fontos
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 ezeket hozzá kell adni a konfigurációs JSON-fájlhoz vagy az AKS API-hoz a CamelCase nagybetűsítési konvencióval.
Ha például módosítja a "vm.max_map_count beállítást", a konfigurációs JSON-fájlban újra kell alakítania a "vmMaxMapCount" értéket.
Fájlkezelő korlátai
A sok forgalom kiszolgálása során a forgalom általában sok 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 költségén többet kezelhessenek.
Beállítás | Engedélyezett értékek/intervallum | Alapértelmezett | Leírás |
---|---|---|---|
fs.file-max |
8192 - 12000500 | 709620 | A Linux kernel által lefoglalt fájlleírók maximális száma, ennek az értéknek a növelésével növelheti a megnyitott fájlok maximális számát. |
fs.inotify.max_user_watches |
781250 - 2097152 | 1048576 | A rendszer által engedélyezett fájlórák maximális száma. Minden óra 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 | Az aio-nr az aszinkron io-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 | A folyamat által lefoglalható fájlkezelők maximális száma. |
Szoftvercsatorna és hálózat finomhangolása
Az ügynökcsomópontok esetében, amelyek várhatóan nagyon sok egyidejű munkamenetet kezelnek, az alábbi TCP- és hálózati lehetőségeket használhatja, amelyeket csomópontkészletenként finomhangolhat.
Beállítás | Engedélyezett értékek/intervallum | Alapértelmezett | Leírás |
---|---|---|---|
net.core.somaxconn |
4096 - 3240000 | 16384 | Az adott figyelési szoftvercsatornákhoz várólistára á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 somaxconn korlátnál, akkor a rendszer csendben csonkolja ezt a korlátot. |
net.core.netdev_max_backlog |
1000 - 3240000 | 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 | 212992 | A fogadó szoftvercsatornák pufferméretének maximális mérete bájtban. |
net.core.wmem_max |
212992 - 134217728 | 212992 | A küldési szoftvercsatorna pufferének maximális mérete bájtban. |
net.core.optmem_max |
20480 - 4194304 | 20480 | Szoftvercsatornánként megengedett maximális kiegészítő pufferméret (lehetőség 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 | Azoknak a várólistás kapcsolatkéréseknek a maximális száma, amelyek még nem kaptak visszaigazolást a csatlakozó ügyféltől. Ha túllépi ezt a számot, a kernel elkezdi elvetni a kéréseket. |
net.ipv4.tcp_max_tw_buckets |
8000 - 1440000 | 32 768 | A rendszer által egyidejűleg tartott foglalatok maximális száma timewait . 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 | Az árva (már nem az alkalmazások által hivatkozott) kapcsolatok időtartama FIN_WAIT_2 állapotban marad, mielőtt a helyi végén megszakad. |
net.ipv4.tcp_keepalive_time |
30 - 432000 | 7200 | Milyen gyakran küld üzeneteket keepalive a TCP, ha keepalive engedélyezve van. |
net.ipv4.tcp_keepalive_probes |
1 - 15 | 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 | Milyen gyakran küldik el a mintavételeket. A mintavételek elindítása után a megszorozva tcp_keepalive_probes a nem válaszoló kapcsolat megszakadásának ideje. |
net.ipv4.tcp_tw_reuse |
0 vagy 1 | 0 | Engedélyezi a szoftvercsatornák újbóli használatát TIME-WAIT 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 | A TCP- és UDP-forgalom által a helyi port kiválasztásához használt helyi porttartomány. Két számból áll: Az első szám az ügynökcsomópontON a TCP- és UDP-forgalom számára engedélyezett első helyi port, a második pedig az utolsó helyi portszám. |
net.ipv4.neigh.default.gc_thresh1 |
128 - 80000 | 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 | Az ARP-gyorsítótárban található bejegyzések maximális száma helyreállítható. 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 | Az ARP-gyorsítótárban lévő bejegyzések maximális száma. |
net.netfilter.nf_conntrack_max |
131072 - 2097152 | 131 072 | 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. |
net.netfilter.nf_conntrack_buckets |
65536 - 524288 | 65536 | 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. |
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.
Beállítás | Engedélyezett értékek/intervallum | Alapértelmezett | Leírás |
---|---|---|---|
kernel.threads-max |
20 - 513785 | 55601 | 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-max van beállítva. |
Virtuális memória
Az alábbi beállítások 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ára használhatók.
Beállítás | Engedélyezett értékek/intervallum | Alapértelmezett | Leírás |
---|---|---|---|
vm.max_map_count |
65530 - 262144 | 65530 | Ez a fájl tartalmazza a folyamat memóriatérkép-területeinek maximális számát. A memóriatérkép-területeket a hívásmalloc , a közvetlen mmap mprotect madvise és a megosztott kódtárak betöltésekor is használják. |
vm.vfs_cache_pressure |
1 - 100 | 100 | Ez a százalékos érték szabályozza a kernel azon tendenciáját, hogy visszanyerje a memóriát, amelyet a könyvtár és az inode objektumok gyorsítótárazásához használnak. |
vm.swappiness |
0 - 100 | 60 | Ez a vezérlő határozza meg, hogy a kernel milyen agresszíven 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) | Egyik sem | A SwapFileSizeMB a csomópontkészlet ügynökcsomópontjain létrejövő felcserélési fájl MB-ban megadott méretét adja meg. |
transparentHugePageEnabled |
always , , madvise never |
always |
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 hugepages a rendszer széles körűen engedélyezve van, az alkalmazások több memóriaerőforrást is lefoglalhatnak. Egy alkalmazás nagy régió lehet mmap , de csak 1 bájtot érint, ebben az esetben egy 2 MB-os lap foglalható le 4k-oldal helyett, ok nélkül. Ez a forgatókönyv az oka annak, hogy letiltható hugepages a rendszer egésze, vagy csak régiókon belül lehet őket használni MADV_HUGEPAGE madvise . |
transparentHugePageDefrag |
always , defer , defer+madvise , madvise never |
madvise |
Ez az érték határozza meg, hogy a kernelnek agresszíven kell-e használnia a memóriatömörülést a rendelkezésre hugepages állás érdekében. |
Következő lépések
- Megtudhatja , hogyan konfigurálhatja az AKS-fürtöt.
- Megtudhatja, hogyan frissítheti a fürt csomópontrendszerképeit .
- Az Azure Kubernetes Service(AKS)-fürtök frissítésével megtudhatja, hogyan frissítheti a fürtöt a Kubernetes legújabb verziójára.
- Az AKS-sel kapcsolatos gyakori kérdések listáját az AKS-sel kapcsolatos gyakori kérdések listájában találja meg, és válaszokat talál néhány gyakori AKS-kérdésre.
Azure Kubernetes Service