Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 sus recursos, las reservas de recursos también aumentan debido a una mayor necesidad de gestionar los 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 del host | 1 núcleo | 2 núcleos | 4 núcleos | 8 núcleos | 16 núcleos | 32 núcleos | 64 núcleos |
|---|---|---|---|---|---|---|---|
| CPU reservada para 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
kubeletdaemon tiene por defecto la política de expulsión memory.available < 100 Mi. 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,kubeletdesencadenará la finalización de uno de los pods en ejecución y liberará memoria en la máquina host.Tasa de reserva de memoria establecida según el valor más bajo de: 20 MB * el número máximo de pods admitidos en el nodo + 50 MB o el 25 % de los recursos totales 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áx. + 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.
- 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áx. + 50 MB = 650 MB para kube-reserved.
Nota:
Para personalizar kubeReserved los valores de CPU y memoria o hardEvictionThreshold en grupos de nodos de Linux, use la configuración de vista previa para la personalización de nodos y registre la marca de característica AKSNodeCustomizationPreview. Para obtener más información, consulte Personalización de la configuración del nodo para Azure Kubernetes Service (AKS) grupos de nodos.
Versiones de AKS anteriores a 1.29
-
El demonio
kubelettiene 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, elkubeletdesencadena la terminación de uno de los pods en ejecución y libera memoria en el equipo host. -
Una tasa decreciente de reservas de memoria para el correcto funcionamiento del demonio kubelet (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:
- Mantenga los nodos de agente en buen estado, incluidos algunos pods del sistema de hospedaje críticos para el mantenimiento del clúster.
- 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 de 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 conocer los procedimientos recomendados correspondientes, consulte Procedimientos recomendados para las funcionalidades básicas del programador en AKS.
Pasos siguientes
- Obtenga más información sobre la configuración de nodos personalizados en AKS.