Riserve di risorse del nodo di lavoro
Comprendere le riserve di risorse dei nodi di lavoro ti aiuta a pianificare la capacità del cluster e a risolvere i problemi relativi alla pianificazione dei pod.
IBM Cloud Kubernetes Service imposta riserve di risorse di calcolo che limitano le risorse di calcolo disponibili su ciascun nodo di lavoro. La memoria riservata, le risorse della CPU e gli ID dei processi (PID) non possono essere utilizzati dai pod sul nodo di lavoro e riducono le risorse allocabili su ciascun nodo di lavoro. Quando distribuisci inizialmente i pod, se il nodo di lavoro non dispone di sufficienti risorse assegnabili, la distribuzione non riesce. Inoltre, se i pod superano il limite di risorse del nodo di lavoro per memoria e CPU, i pod vengono rimossi. In Kubernetes, questo limite è denominato “soglia di espulsione rigida ”. Per i pod che superano il limite PID, i pod ricevono tutti i PID assegnabili ma non vengono rimossi in base ai PID.
Quando verificare le riserve di risorse
Verificare le riserve di risorse dei nodi di lavoro quando:
- Pianificazione della capacità del cluster e determinazione del numero di nodi di lavoro necessari
- Risoluzione dei problemi relativi agli errori di pianificazione o alle espulsioni dei pod
- Calcolo delle risorse disponibili per i tuoi carichi di lavoro
- Come stabilire se è necessario aggiungere altri nodi di lavoro al proprio cluster
Se i PID, la CPU o la memoria disponibili sono inferiori a quelli riservati dal nodo di lavoro, Kubernetes inizia a rimuovere i pod per ripristinare risorse di calcolo e PID sufficienti. I pod vengono ripianificati su un altro nodo di lavoro, laddove disponibile. Se i tuoi pod vengono espulsi frequentemente, aggiungi altri nodi di lavoro al tuo cluster oppure imposta dei limiti di risorse per i tuoi pod.
Comprendere i livelli delle riserve di risorse
Le risorse riservate sul nodo di lavoro dipendono dal numero di PID, dalla CPU e dalla memoria di cui è dotato il nodo stesso. IBM Cloud Kubernetes Service definisce i livelli di PID, CPU e memoria come illustrato nelle tabelle seguenti. Se il nodo di lavoro dispone di risorse di calcolo su più livelli, una percentuale dei PID, delle risorse CPU e di memoria viene riservata a ciascun livello.
I cluster hanno anche prenotazioni e limiti dell'ID del processo (PID) per evitare che un pod utilizzi troppi PID o garantire che siano presenti abbastanza PID per kubelet e altri componenti di sistema IBM Cloud Kubernetes Service.
Se le prenotazioni o i limiti di PID vengono raggiunti, Kubernetes non crea o assegna nuovi PID finché non vengono rimossi abbastanza processi per liberare dei PID esistenti. La quantità totale di PID su un nodo di lavoro corrisponde circa
a 8.000 PID per GB di memoria sul nodo di lavoro. Ad esempio, un nodo di lavoro con 16 GB di memoria ha circa 128.000 PID (16 × 8,000 = 128,000).
Per verificare la quantità di risorse di calcolo attualmente utilizzate sul tuo nodo di lavoro, esegui kubectl top node.
| Livello di memoria | % o quantità riservata | Esempio di nodo di lavoro b3c.4x16 (16 GB) |
Esempio di nodo di lavoro mg1c.28x256 (256 GB) |
|---|---|---|---|
| Primi 4 GB (0 - 4 GB) | 25% di memoria | 1 GB | 1 GB |
| Prossimi 4 GB (5 - 8 GB) | 20% di memoria | 0,8 GB | 0,8 GB |
| Prossimi 8 GB (9 - 16 GB) | 10% di memoria | 0,8 GB | 0,8 GB |
| Prossimi 112 GB (17 - 128 GB) | 6% di memoria | N/D | 6,72 GB |
| GB rimanenti (129 GB+) | 2% di memoria | N/D | 2,54 GB |
Riserva supplementare per kubelet sfratto |
100 MB | 100 MB (quantità fissa) | 100 MB (quantità fissa) |
| Totale riservato | (varia) | 2,7 GB di 16 GB totali | 11,96 GB di 256 GB totali |
| Livello di CPU | % o quantità riservata | b3c.4x16 Esempio di nodo worker (quattro core) |
Esempio di nodo di lavoro mg1c.28x256 (28 core) |
|---|---|---|---|
| Primo core (Core 1) | 6% di core | 0,06 core | 0,06 core |
| Prossimi due core (core 2 - 3) | 1% di core | 0,02 core | 0,02 core |
| Prossimi due core (core 4 - 5) | 0.5% di core | 0,005 core | 0,01 core |
| Core rimanenti (Core 6+) | 0,25% di core | N/D | 0,0575 core |
| Totale riservato | (varia) | 0,085 core di un totale di quattro core | 0,1475 core di 28 core totali |
| PID totali | % riservato | % disponibile per il pod |
|---|---|---|
| 200.000 | 20% dei PID | 35% dei PID |
| 200.000 - 499.999 | 10% dei PID | 40% dei PID |
| ≥ 500.000 | 5% dei PID | 45% dei PID |
b3c.4x16 nodo di lavoro: 126.878 PID |
25.376 PID (20%) | 44.407 PID (35%) |
mg1c.28x256 nodo di lavoro: 2.062.400 PID |
103.120 PID (5%) | 928.085 PID (45%) |
| Provider infrastruttura | Disco | % di disco riservato |
|---|---|---|
| Classic | Disco secondario | 10% |
| VPC | Disco di avvio | 10% |
I valori del nodo di lavoro di esempio sono forniti soltanto come un esempio. L'utilizzo reale potrebbe variare leggermente.