Reservas de recursos del nodo trabajador
Conocer las reservas de recursos de los nodos de trabajo te ayuda a planificar la capacidad del clúster y a resolver problemas de programación de pods.
IBM Cloud Kubernetes Service establece reservas de recursos de cálculo que limitan los recursos de cálculo disponibles en cada nodo trabajador. Los pods del nodo de trabajador no pueden utilizar la memoria reservada, los recursos de CPU ni los ID de proceso (PID), y se reducen los recursos asignables en cada nodo de trabajador. Al desplegar inicialmente los pods, si el nodo trabajador no tiene suficientes recursos asignables, el despliegue falla. Además, si los pods superan el límite de recursos de memoria y de CPU del nodo trabajador, los pods se desalojan. En Kubernetes, este límite se denomina « umbral de expulsión estricto ». Para los pods que superan el límite de PID, los pods reciben tantos PID como sean asignables, pero no se desalojan en función de los PID.
Cuándo comprobar las reservas de recursos
Comprueba las reservas de recursos de los nodos de trabajo cuando:
- Planificación de la capacidad del clúster y determinación del número de nodos de trabajo necesarios
- Solución de problemas relacionados con fallos en la programación de pods o con su expulsión
- Cálculo de los recursos disponibles para tus cargas de trabajo
- Cómo determinar si necesitas añadir más nodos de trabajo a tu clúster
Si hay menos PID, CPU o memoria disponibles de los que reserva el nodo de trabajo, « Kubernetes » comienza a expulsar pods para restablecer los recursos de computación y los PID suficientes. Los pods se vuelven a planificar en otro nodo trabajador si hay uno disponible. Si tus pods se expulsan con frecuencia, añade más nodos de trabajo a tu clúster o establece límites de recursos para tus pods.
Comprender los niveles de reserva de recursos
Los recursos que se reservan en tu nodo de trabajo dependen del número de PID, de la CPU y de la memoria con los que cuente dicho nodo. IBM Cloud Kubernetes Service define los niveles de PID, CPU y memoria tal y como se muestra en las siguientes tablas. Si tu nodo de trabajo cuenta con recursos de cálculo en varios niveles, se reserva un porcentaje de tus PID, CPU y recursos de memoria para cada nivel.
Los clústeres también tienen reservas y límites de ID de proceso (PID) para evitar que un pod utilice demasiados PID o garantizar que existan suficientes PID para kubelet y otros componentes del sistema de IBM Cloud Kubernetes Service.
Si se alcanzan las reservas o los límites de PID, Kubernetes no crea ni asigna nuevos PID hasta que se eliminan procesos suficientes para liberar los PID existentes. La cantidad total de PID en un nodo trabajador aproximadamente corresponde
a 8000 PID por GB de memoria en el nodo trabajador. Por ejemplo, un nodo trabajador con 16 GB de memoria tiene aproximadamente 128.000 PID (16 × 8,000 = 128,000).
Para comprobar cuántos recursos de computación se están utilizando actualmente en tu nodo de trabajo, ejecuta kubectl top node.
| Nivel de memoria | % o cantidad reservada | Ejemplo de nodo de trabajador b3c.4x16 (16 GB) |
Ejemplo de nodo trabajador mg1c.28x256 (256 GB) |
|---|---|---|---|
| Primero 4 GB (0 - 4 GB) | 25 % de memoria | 1 GB | 1 GB |
| Siguiente 4 GB (5 - 8 GB) | 20 % de memoria | 0,8 GB | 0,8 GB |
| Siguiente 8 GB (9 - 16 GB) | 10 % de memoria | 0,8 GB | 0,8 GB |
| Siguiente 112 GB (17 - 128 GB) | 6 % de memoria | N/D | 6,72 GB |
| GB restantes (129 GB+) | 2 % de memoria | N/D | 2,54 GB |
Reserva adicional por kubelet desahucio |
100 MB | 100 MB (cantidad fija) | 100 MB (cantidad fija) |
| Total reservado | (varía) | 2,7 GB de 16 GB total | 11,96 GB de 256 GB totales |
| Nivel de CPU | % o cantidad reservada | Ejemplo de nodo de trabajador b3c.4x16 (cuatro núcleos) |
Ejemplo de nodo trabajador mg1c.28x256 (28 núcleos) |
|---|---|---|---|
| Primer núcleo (núcleo 1) | 6 % de núcleos | 0,06 núcleos | 0,06 núcleos |
| Siguientes dos núcleos (núcleos 2 - 3) | 1 % de núcleos | 0,02 núcleos | 0,02 núcleos |
| Siguientes dos núcleos (núcleos 4 - 5) | 0,5 % de núcleos | 0,005 núcleos | 0,01 núcleos |
| Núcleos restantes (+6 núcleos) | 0,25 % de núcleos | N/D | 0,0575 núcleos |
| Total reservado | (varía) | 0,085 núcleos de cuatro en total | 0,1475 núcleos de 28 núcleos totales |
| PID totales | % reservado | % disponible para el pod |
|---|---|---|
| < 200.000 | 20 % de PID | 35 % de PID |
| 200.000 - 499.999 | 10 % de PID | 40 % de PID |
| ≥ 500.000 | 5 % de PID | 45 % de PID |
Nodo de trabajador b3c.4x16: 126.878 PID |
25.376 PID (20 %) | 44.407 PID (35%) |
Nodo de trabajador mg1c.28x256: 2.062.400 PID |
103.120 PID (5 %) | 928.085 PID (45 %) |
| Proveedor de infraestructura | Disco | % de disco reservado |
|---|---|---|
| Clásico | Disco secundario | 10 % |
| VPC | Disco de arranque | 10 % |
Los valores de nodo trabajador de ejemplo solo se muestran como ejemplo. El uso real puede variar ligeramente.