Compartir por


Reservas de recursos de nodo en Azure Kubernetes Service (AKS)

En este artículo, obtendrá información acerca de las reservas de recursos de nodo en Azure Kubernetes Service (AKS).

Reservas de recursos

AKS usa recursos de nodo para ayudar a que los nodos funcionen como parte del clúster. Este uso puede provocar una discrepancia entre los recursos totales del nodo y los recursos asignables en AKS.

AKS reserva dos tipos de recursos, CPU y memoria, en cada nodo para mantener el rendimiento y la funcionalidad del nodo. A medida que un nodo aumenta en los recursos, las reservas de recursos también crecen debido a una mayor necesidad de administración de pods implementados por el usuario. Tenga en cuenta que no puede cambiar las reservas de recursos en un nodo.

Reservas de CPU

La CPU reservada depende del tipo de nodo y la configuración del clúster, lo que podría dar lugar a una CPU menos fácil de usar debido a la ejecución de características adicionales. En la tabla siguiente se muestran las reservas de CPU en millicores:

Núcleos de CPU en el host 1 núcleo 2 núcleos 4 núcleos 8 núcleos 16 núcleos 32 núcleos 64 núcleos
CPU reservada de Kube (millicores) 60 100 140 180 260 420 740

Reservas de memoria

En AKS, la memoria reservada consta de la suma de dos valores:

AKS 1.29 y versiones posteriores

  • kubeletdemonio tiene la regla de expulsión de memory.available <100 Mi de manera predeterminada. Esta regla garantiza que un nodo tenga al menos 100 Mi asignables en todo momento. Cuando un host esté por debajo de ese umbral de memoria disponible, kubelet desencadenará la finalización de uno de los pods en ejecución y liberará memoria en la máquina host.

  • Tasa de reservas de memoria establecer según el valor menor de: 20 MB * Pods máximos admitidos en el Nodo + 50 MB o el 25 % del total de recursos de memoria del sistema.

    Ejemplos:

    • Si la máquina virtual (VM) proporciona 8 GB de memoria y el nodo admite hasta 30 pods, AKS reserva 20 MB * 30 Pods máximos + 50 MB = 650 MB para kube-reserved. Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable.
    • Si la máquina virtual proporciona 4 GB de memoria y el nodo admite hasta 70 pods, AKS reserva 25 % * 4 GB = 1000 MB para kube-reserved, ya que es menor que 20 MB * 70 Max Pods + 50 MB = 1450 MB.

    Para obtener más información, consulte Configuración del número máximo de pods por nodo en un clúster de AKS.

Versiones de AKS anteriores a 1.29

  • kubeletdemonio tiene la regla de expulsión memory.available < 750 Mi de manera predeterminada. Esta regla garantiza que un nodo tenga al menos 750 Mi asignables en todo momento. Cuando un host está por debajo de ese umbral de memoria disponible, el kubelet desencadena la terminación de uno de los pods en ejecución y libera memoria en el equipo host.
  • Tasa regresiva de reservas de memoria para que el demonio “kubelet” funcione correctamente (kube-reserved).
    • 25 % de los primeros 4 GB de memoria
    • 20 % de los siguientes 4 GB de memoria (hasta 8 GB)
    • 10 % de los siguientes 8 GB de memoria (hasta 16 GB)
    • 6 % de los siguientes 112 GB de memoria (hasta 128 GB)
    • 2 % de cualquier memoria de más de 128 GB

Nota:

AKS reserva un adicional de 2 GB para los procesos del sistema en nodos de Windows que no forman parte de la memoria calculada.

Las reglas de asignación de memoria y CPU están diseñadas para:

  • mantienen los nodos de agente en buen estado, incluidos algunos pods del sistema host críticos para el mantenimiento del clúster y
  • hacen que el nodo informe de un volumen menor de memoria y CPU asignables que del que informaría si no formase parte de un clúster de Kubernetes.

Por ejemplo, si un nodo ofrece 7 GB, informa del 34 % de memoria no disponible, incluido el umbral de expulsión duro 750 Mi.

0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved

Además de las reservas para Kubernetes mismo, el sistema operativo del nodo subyacente también reserva una cantidad de recursos de CPU y memoria para mantener las funciones del sistema operativo.

Para consultar los procedimientos recomendados asociados, consulteProcedimientos recomendados para características básicas del programador en Azure Kubernetes Service (AKS).

Pasos siguientes