Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Cloud Container Engine/ Guía del usuario/ Nodos/ Descripción del nodo/ Descripción de los recursos de nodos reservados
Actualización más reciente 2024-09-10 GMT+08:00

Descripción de los recursos de nodos reservados

Algunos de los recursos del nodo necesitan ejecutar algunos componentes y recursos necesarios del sistema de Kubernetes para que el nodo forme parte de su clúster. Por lo tanto, el número total de recursos de nodo y el número de recursos de nodo asignables en Kubernetes son diferentes. Cuanto más grandes sean las especificaciones del nodo, más se desplegará los contenedores en el nodo. Por lo tanto, es necesario reservar más recursos de nodo para ejecutar los componentes de Kubernetes.

Para garantizar la estabilidad del nodo, se reservará una cierta cantidad de recursos de nodo de CCE para los componentes de Kubernetes (como kubelet, kube-proxy y docker) en función de las especificaciones del nodo.

CCE calcula los recursos que se pueden asignar a los nodos de usuario de la siguiente manera:

Recursos asignables = Importe total - Importe reservado - Umbral de desalojo

El umbral de desahucio de memoria se fija en 100 MB.

Cuando aumenta la memoria consumida por todos los pods de un nodo, pueden producirse los siguientes comportamientos:

  1. Cuando la memoria disponible del nodo es menor que el umbral de desalojo, kubelet se activa para desalojar el pod. Para obtener más información sobre el umbral de desalojo en Kubernetes, consulte Desalojo de presión de nodo.
  2. Si un nodo activa un evento de insuficiencia de memoria del sistema operativo (OOM) antes de que el kubelet recupere la memoria, el sistema termina el contenedor. Sin embargo, a diferencia del desalojo del pod, kubelet reinicia el contenedor basado en el RestartPolicy del pod.

Reglas para la reserva de memoria de nodo (v1)

Para grupos de v1.21.4-r0, v1.23.3-r0 o posteriores, el modelo de reserva de memoria de nodo se optimiza a V2. Para obtener más información, véase Reglas para reservar memoria de nodo (v2).

Puede utilizar la siguiente fórmula para calcular cuánta memoria debe reservar para ejecutar contenedores en un nodo:

Cantidad total reservada = memoria reservada para componentes del sistema + memoria reservada para kubelet para gestionar pods

Tabla 1 Reglas de reserva para componentes del sistema

Memoria total (TM)

Memoria reservada para componentes del sistema

TM ≤ 8 GB

0 MB

8 GB < TM ≤ 16 GB

[(TM – 8 GB) x 1024 x 10%] MB

16 GB < TM ≤ 128 GB

[8 GB x 1024 x 10% + (TM – 16 GB) x 1024 x 6%] MB

TM > 128 GB

(8 GB x 1024 x 10% + 112 GB x 1024 x 6% + (TM – 128 GB) x 1024 x 2%) MB

Tabla 2 Reglas de reserva para kubelet

Memoria total (TM)

Número de pods

Memoria reservada para kubelet

TM ≤ 2 GB

-

TM x 25%

TM > 2 GB

0 < Máx. pods en un nodo ≤ 16

700 MB

16 < Máx. pods en un nodo ≤ 32

[700 + (máx. pods en un nodo – 16) x 18.75] MB

32 < Máx. pods en un nodo ≤ 64

[1024 + (máx. pods en un nodo - 32) x 6.25] MB

64 < Máx. pods en un nodo ≤ 128

[1230 + (máx. pods en un nodo - 64) x 7.80] MB

Máx. pods en un nodo > 128

[1740 + (máx. pods en un nodo - 128) x 11.20] MB

Para un nodo de pequeña capacidad, ajuste el número máximo de instancias en función de los requisitos del sitio. Como alternativa, al crear un nodo en la consola de CCE, puede ajustar el número máximo de instancias para el nodo en función de las especificaciones del nodo.

Reglas para reservar memoria de nodo (v2)

Para grupos de v1.21.4-r0, v1.23.3-r0 o posteriores, el modelo de reserva de memoria de nodo se optimiza a V2 y se puede ajustar dinámicamente usando los parámetros de grupo de nodos kube-reserved-mem y system-reserved-mem. Para obtener más información, véase Gestión de un grupo de nodos.

La memoria de nodo reservado total del modelo V2 es igual a la suma de la reservada para el SO y la reservada para que CCE gestione los pods.

La memoria reservada incluye las partes básicas y flotantes. Para el sistema operativo, la memoria flotante depende de las especificaciones del nodo. Para CCE, la memoria flotante depende del número de pods en un nodo.

Tabla 3 Reglas para reservar memoria de nodo (v2)

Reservado para

Básico/flotante

Reserva

Utilizada por

SO

Básicos

400 MB (fijo)

Componentes de servicio del sistema operativo como sshd y systemd-journald.

Flotante (dependiendo de la memoria del nodo)

25MB/GB

Kernel

CCE

Básicos

500 MB (fijo)

Componentes del motor de contenedores, como kubelet y kube-proxy, cuando el nodo está descargado

Flotante (dependiendo del número de pods en el nodo)

Docker: 20 MB/pod

containerd: 5 MB/pod

Componentes del motor de contenedores cuando aumenta el número de pods

NOTA:

Cuando el modelo v2 reserva memoria para un nodo de forma predeterminada, el número máximo predeterminado de pods se estima en función de la memoria. Para obtener más información, véase Número máximo predeterminado de pods en un nodo.

Reglas para reservar CPU de nodo

Tabla 4 Reglas de reserva de CPU de nodo

Núcleos totales de la CPU (Total)

Núcleos de CPU reservados

Total ≤ 1 núcleo

Total x 6%

1 núcleo < Total ≤ 2 núcleos

1 núcleo x 6% + (Total - 1 núcleo) x 1%

2 núcleos < Total ≤ 4 núcleos

1 núcleo x 6% + 1 núcleo x 1% + (Total - 2 núcleos) x 0.5%

Total > 4 núcleos

1 núcleo x 6% + 1 núcleo x 1% + 2 núcleos x 0.5% + (Total - 4 núcleos) x 0.25%

Número máximo predeterminado de pods en un nodo

Tabla 5 Número máximo predeterminado de pods en un nodo

Memoria

Número máximo predeterminado de pods

4 GB

20

8 GB

40

16 GB

60

32 GB

80

64 GB o más

110