Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Node Resource Reservation Policy

Última actualización: Sep 04, 2026

ACK reserva CPU y memoria del nodo para Kubernetes y los componentes del sistema. Esto genera una diferencia entre la capacidad total del nodo (Capacity) y los recursos programables (Allocatable). ACK aplica una directiva de reserva predeterminada y también admite reservas personalizadas mediante la configuración de kubelet.

Límites

La reserva personalizada de recursos requiere Kubernetes 1.20 o posterior. Para actualizar, consulte Manually upgrade a cluster.

Alcance del impacto

Reserva de recursos personalizada y su alcance de impacto

Para modificar los valores de reserva, configure kubelet for a node pool. Los cambios se aplican de inmediato a los nodos existentes. Los nodos nuevos, incluidos los generados por escalado o mediante Add Existing Node, también utilizan la configuración actualizada.

Importante
  • No edite manualmente el archivo de configuración de kubelet desde la línea de comandos. Esta acción puede provocar conflictos de configuración y comportamientos inesperados durante las tareas de operación y mantenimiento del node pool.

  • Aumentar la reserva de recursos reduce los recursos asignables. En nodos con un uso elevado de recursos, esto puede desencadenar la expulsión de pods. Establezca los valores con precaución.

Alcance del impacto de la reserva de recursos predeterminada

ACK puede actualizar los valores de reserva predeterminados con el tiempo. Los valores actualizados se aplican automáticamente cuando se realizan cambios a nivel de nodo; por ejemplo, al actualizar el clúster o el node pool, o al modificar parámetros de kubelet. Si no se realizan dichos cambios, los nodos existentes conservan los valores anteriores para garantizar la estabilidad.

Consulta de recursos asignables del nodo

Consulte la capacidad total y los recursos asignables de un nodo:

kubectl describe node [NODE_NAME] | grep Allocatable -B 7 -A 6

Salida esperada:

Capacity:
  cpu:                4                 # Total CPU cores on the node.
  ephemeral-storage:  123722704Ki       # Total ephemeral storage on the node, in KiB.
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7925980Ki         # Total memory on the node, in KiB.
  pods:               64
Allocatable:
  cpu:                3900m             # Allocatable CPU cores.
  ephemeral-storage:  114022843818      # Allocatable ephemeral storage, in bytes.
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             5824732Ki         # Allocatable memory, in KiB.
  pods:               64

Cálculo de recursos asignables

Utilice esta fórmula para calcular los recursos asignables:Allocatable = Capacity − Reserved − Eviction threshold

Detalles de la fórmula:

Detalles de la directiva de reserva de recursos

Los recursos reservados dependen de varios factores:

  • Las instancias ECS con especificaciones más altas ejecutan más pods, por lo que ACK reserva más recursos para los componentes de Kubernetes.

  • Los nodos Windows reservan más recursos que los nodos Linux para el sistema operativo y los componentes de Windows Server. Consulte Create and manage Windows node pools.

ACK calcula los recursos reservados según rangos de CPU y memoria; el total equivale a la suma de todos los rangos. En Kubernetes 1.28, ACK optimizó el algoritmo para reducir las reservas. Consulte Manually upgrade a cluster.

Los recursos reservados se dividen equitativamente entre los componentes de Kubernetes (kubeReserved) y los procesos del sistema (systemReserved). En un nodo de 4 núcleos, ACK reserva 80 milinúcleos en Kubernetes 1.28+ (40 kubeReserved + 40 systemReserved), o 100 milinúcleos en las versiones 1.20 a 1.27 (50 + 50).

Directiva de reserva de recursos de CPU

Kubernetes 1.28 y posteriores

Reserva total de CPU para nodos de cómputo:

image

Para un nodo de 32 núcleos, la reserva total de CPU se calcula de la siguiente manera:

1000 × 6% + 1000 × 1% + 1000 × 2 × 0.5% + (32000 − 4000) × 0.25% = 150 millicores

Kubernetes 1.20 a 1.27

Reserva total de CPU para nodos de cómputo:

image

Para un nodo de 32 núcleos, la reserva total de CPU se calcula de la siguiente manera:

100 + (32000 − 4000) × 2.5% = 800 millicores

Directiva de reserva de recursos de memoria

Kubernetes 1.28 y posteriores

Fórmula de reserva total de memoria:

Total memory reservation = min(11 × ($max_num_pods) + 255, 25% × node memory). El valor final es el menor entre 11 × ($max_num_pods) + 255 y 25% of node memory.

  • $max_num_pods: Número máximo de pods compatibles en el nodo.

    Nota

    El número máximo de pods varía según el complemento de red. Consulte Maximum pods per node para obtener más detalles.

    Puede iniciar sesión en la Container Service Management Console y consultar el número máximo de pods en la página de Nodes.
    • Terway: Maximum pods per node = Maximum container-network pods + Host-network pods.

    • Flannel: Se establece durante la creación del clúster.

  • Node memory: Memoria utilizable real, en MiB.

Por ejemplo, con Terway (ENI compartida, múltiples IP) en una instancia ecs.g7.16xlarge (256 GiB de memoria): pods máximos = (8 − 1) × 30 + 3 = 213. Reserva total de memoria = min(11 × (210 + 3) + 255, 256 × 1024 × 25%) = 2598 MiB.

Kubernetes 1.20 a 1.27

Reserva total de memoria para un nodo de cómputo:

image

Para un nodo con 256 GiB de memoria, la reserva total de memoria se calcula de la siguiente manera:

4 × 25% + (8 − 4) × 20% + (16 − 8) × 10% + (128 − 16) × 6% + (256 − 128) × 2% = 11.88 GiB

Ejemplos de reservas de recursos predeterminadas para nodos ACK

Nota

Consulte Instance families para obtener detalles sobre los tipos de instancia ECS.

Recursos totales del nodo

Recursos reservados (Kubernetes 1.28 y posteriores)

Recursos reservados (Kubernetes 1.20 a 1.27)

Tipo de instancia de ejemplo

CPU (núcleos)

Memoria

(GiB)

Máximo de pods por nodo

(se toma como ejemplo el modo de ENI compartida y múltiples IP de Terway)

CPU

(milinúcleo)

Memoria

(MiB)

CPU (milinúcleos)

Memoria (MiB)

Tipos de instancia ECS c7

2

4

15

70

420

100

1024

4

8

48

80

783

100

1843

8

16

48

90

783

200

2662

16

32

213

110

2598

400

3645

32

64

213

150

2598

800

5611

64

128

213

230

2598

1600

9543

128

256

423

390

4908

2400

12164

Tipos de instancia ECS ebmc7a

256

512

453

710

5238

3040

17407

Preguntas frecuentes

¿Cómo consulto la CPU y la memoria totales de un nodo?

CPU

Consulte el total de núcleos de CPU:

cat /proc/cpuinfo | grep processor

Salida esperada:

processor       : 0
processor       : 1
processor       : 2
processor       : 3

Memoria

Consulte la memoria total:

cat /proc/meminfo | grep MemTotal

Salida esperada:

MemTotal:        7660952 kB

¿Por qué la memoria disponible es menor que la especificación del tipo de instancia?

Las especificaciones del tipo de instancia incluyen la memoria total (incluido el uso del sistema operativo), por lo que la memoria disponible siempre es menor. Consulte After purchasing an instance, why does the displayed memory differ from the instance type specification?.

Referencias

  • Personalice las reservas de recursos y los umbrales de expulsión mediante configuring kubelet for a node pool.

  • Las solicitudes totales de pods en un nodo no deben exceder los recursos asignables; de lo contrario, los pods no se podrán programar. Utilice resource profiling de ACK para analizar el uso histórico y establecer solicitudes precisas para cargas de trabajo nativas de Kubernetes. Consulte Create a Deployment.