Recursos asignados a pods aprovisionados por nodos virtuales

Descubra los límites y otros factores que se deben tener en cuenta en la asignación de recursos de CPU, memoria y almacenamiento a pods aprovisionados por nodos virtuales al utilizar Container Engine for Kubernetes (OKE).

Al utilizar nodos virtuales, la asignación de recursos se realiza en el nivel de pod (en lugar de en el nivel de nodo de trabajador).

Asignación de Recursos de CPU y Memoria

Para calcular el número de CPU (expresadas en CPU de Oracle u OCPU) y la cantidad de memoria que se debe asignar a los pods aprovisionados por nodos virtuales, Container Engine for Kubernetes tiene en cuenta:

  • las solicitudes y límites de CPU y memoria para cada contenedor especificado en la especificación de pod, si está presente
  • el número de contenedores en el pod
  • los requisitos de tiempo de ejecución de kube-proxy y contenedor (0.25GB de memoria, CPU insignificante)

Los siguientes mínimos se aplican a las solicitudes de CPU y memoria de pod:

  • 0.125 OCPU
  • 0.5GB de memoria

Con respecto a los límites de CPU y memoria y las solicitudes especificadas en la especificación de pod para contenedores, Container Engine for Kubernetes aplica las siguientes reglas al calcular la asignación de OCPU y memoria:

  • Si se especifica un límite en la especificación de pod pero no hay ninguna solicitud, Container Engine for Kubernetes utiliza el valor límite.
  • Si se especifica una solicitud pero no hay límite, Container Engine for Kubernetes utiliza el valor de solicitud.
  • Si se especifica una solicitud y un límite, Container Engine for Kubernetes utiliza el valor límite.
  • Si no se especifica ni una solicitud ni un límite, Container Engine for Kubernetes utiliza 0,125 OCPU y 0.5GB por contenedor.

Dado que los pods aprovisionados por nodos virtuales siempre vienen con una capacidad asegurada, recomendamos establecer límites y solicitudes con el mismo valor.

El número máximo de CPU que se pueden asignar a los pods aprovisionados por nodos virtuales depende de la unidad (y el procesador) especificada para el pool de nodos virtuales. Por ejemplo, en el caso de Pod.Standard.E3. Flex y Pod.Standard.E4. Unidades flexibles (AMD), el número máximo es de 64 núcleos (128 vCPUs).

El número de OCPU asignadas a los pods aprovisionados por nodos virtuales también determina el ancho de banda de red disponible para los pods, con 1 Gbps disponibles por OCPU sujeto a los siguientes límites:

  • un límite máximo de ancho de banda de 40 Gbps
  • un límite mínimo de ancho de banda de 1 Gbps
Nota

Al calcular la asignación de OCPU y memoria, Container Engine for Kubernetes actualmente:

  • redondea la asignación de CPU al número entero más cercano de OCPU
  • redondea la asignación de memoria al número entero más cercano de GB

Asignación de Almacenamiento

Los pod aprovisionados por nodos virtuales tienen asignados 15 GB de espacio de almacenamiento, en los que se almacenan los sistemas de archivos raíz de los contenedores que se ejecutan en el pod. Tenga en cuenta que las imágenes de contenedor consumen parte de esa asignación de almacenamiento de 15 GB. La asignación restante está disponible para la aplicación para su uso como almacenamiento temporal.

Facturación de recursos

Al ejecutar un trabajo de Kubernetes en nodos virtuales, tenga en cuenta que se le seguirán facturando los recursos que utilice el trabajo mientras exista, incluso cuando el trabajo haya finalizado o haya fallado. Por lo tanto, para evitar que se le facturen recursos innecesariamente, suprima el trabajo una vez que haya terminado. Por ejemplo, mediante un comando como kubectl delete job <job-name> o kubectl delete -f <job-spec>.yaml.