Recursos disponibles para tus cargas de trabajo

En esta página se muestra cómo determinar la cantidad de CPU y memoria disponibles en un nodo para ejecutar tus cargas de trabajo en Google Distributed Cloud.

Recursos reservados

En cada nodo del clúster, Google Distributed Cloud reserva los siguientes recursos para los componentes del sistema operativo y los componentes principales de Kubernetes:

  • 80 milinúcleos + 1% de la capacidad de la CPU
  • 330 MiB + 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. A continuación, Google Distributed Cloud reserva lo siguiente:

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

El sistema operativo y los componentes principales de Kubernetes no se ejecutan como pods, sino como procesos normales. Los recursos que quedan, además de estos recursos reservados, están disponibles para los pods.

Umbral de desahucio

Para determinar cuánta memoria está disponible para los pods, también debes tener en cuenta el umbral de desalojo. Google Distributed Cloud establece un umbral de desalojo de 100 MiB. Esto significa que, si la memoria disponible en un nodo es inferior a 100 MiB, es posible que kubelet expulse uno o varios pods.

Recursos asignables

Los recursos de un nodo que están disponibles para los 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 umbral de desalojo de 100 MiB. Entonces, la memoria asignable es:

8 GiB - 680 MiB - 100 MiB = 7220 MiB

Recursos disponibles para tus 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 pods que ejecutan complementos de Google Distributed Cloud. Los complementos incluyen el controlador de entrada, el servicio de entrada, el agente de Connect, los componentes de red, los componentes de registro y más.

En un nodo concreto, para determinar los recursos disponibles para tus cargas de trabajo, empieza con los recursos asignables y, a continuación, resta los recursos utilizados por los complementos.

El problema es que los complementos no se distribuyen de forma uniforme entre los nodos de un clúster de Google Distributed Cloud. Un nodo puede tener tres complementos y otro nodo puede tener diez. Además, los distintos complementos requieren cantidades diferentes de CPU y memoria.

Por lo general, los complementos que se ejecutan en un nodo requieren lo siguiente:

  • 200 milinúcleos 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 lo que indica la regla general anterior. Por ejemplo, un nodo puede ejecutar un complemento de Prometheus que requiera 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.

Siguientes pasos

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