Recursos disponibles para las cargas de trabajo

En esta página, se muestra cómo determinar cuánta CPU y memoria está disponible en un nodo para ejecutar tus cargas de trabajo en clústeres de Anthos alojados en VMware (GKE On-Prem).

Recursos reservados

En cada nodo del clúster, los clústeres de Anthos alojados en VMware reserva los siguientes recursos para los componentes del sistema operativo y los componentes principales de Kubernetes:

  • 80 millicores + el 1% de la capacidad de CPU
  • 330 MiB + el 5% de la capacidad de memoria

Por ejemplo, supongamos que un nodo tiene la capacidad predeterminada de 4 núcleos de CPU y 8 GiB de memoria. Luego, los clústeres de Anthos alojados en VMware reservan lo siguiente:

  • 80 millicores + el 1% de 4 núcleos = 120 millicores
  • 330 MiB + el 5% de 8 GiB = 730 MiB

Los componentes del sistema operativo y los componentes principales de Kubernetes no se ejecutan como Pods, sino que se ejecutan como procesos comunes. Los recursos restantes, además de estos recursos reservados, están disponibles para los Pods.

Límite de expulsiones

A fin de determinar la cantidad de memoria disponible para los pods, también debes considerar el límite de expulsiones. Los clústeres de Anthos alojados en VMware establecen un umbral de expulsión de 100 MiB. Esto significa que si la memoria disponible en un nodo está por debajo del límite de 100 MiB, el kubelet podría expulsar uno o más Pods.

Recursos asignables

Los recursos en un nodo que están disponibles para Pods se denominan recursos asignables. Calcula los recursos asignables de la siguiente manera:

  • Allocatable CPU = CPU Capacity - Reserved CPU
  • Allocatable Memory = Memory Capacity - Reserved Memory - Eviction Threshold

Por ejemplo, supongamos que un nodo tiene 8 GiB de capacidad de memoria, 680 MiB de memoria reservada y un límite de expulsiones de 100 MiB. Entonces, la memoria asignable es la siguiente:

8 GiB - 680 MiB - 100 MiB = 7220 MiB

Recursos disponibles para las cargas de trabajo

Los recursos asignables de un nodo son los recursos disponibles para los Pods. Esto incluye los pods que ejecutan tus cargas de trabajo y los que ejecutan los complementos de clústeres de Anthos alojados en VMware. Los complementos incluyen el controlador y el servicio de entrada, el agente de Connect, los componentes de herramientas de redes, los componentes de registro y mucho más.

En un nodo determinado, a fin de determinar los recursos disponibles para tus cargas de trabajo, comienza con los recursos asignables y, luego, resta los recursos que usan los complementos.

El desafío es que los complementos no se distribuyen de manera uniforme entre los nodos de un clúster de clústeres de Anthos alojados en VMware. Un nodo puede tener tres complementos, y otro nodo puede tener diez complementos. Además, los distintos complementos requieren diferentes cantidades de CPU y memoria.

Como regla general, puedes calcular que los complementos que se ejecutan en un nodo requieren lo siguiente:

  • 200 millicores de CPU
  • 100 MiB de memoria

Ahora puedes calcular los recursos disponibles en un nodo para tus cargas de trabajo de la siguiente manera:

  • Allocatable CPU - 200 millicores
  • Allocatable memory - 100 MiB

Algunos nodos requieren más recursos para los complementos de los que indica la regla general anterior. Por ejemplo, un nodo puede ejecutar un complemento de Prometheus que requiere 2 GiB de memoria. Sin embargo, si tu clúster tiene más de unos pocos nodos, es razonable suponer que la regla general se aplica a la mayoría de los nodos.

¿Qué sigue?

Para obtener más información sobre el concepto de recursos asignables, consulta Recursos asignables en la documentación de GKE en Google Cloud.