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 Kubernetes Engine (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 va a asignar a los pods aprovisionados por nodos virtuales, Kubernetes Engine tiene en cuenta lo siguiente:
- 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, Kubernetes Engine aplica las siguientes reglas al calcular la OCPU y la asignación de memoria:
- Si se especifica un límite en la especificación de pod pero no hay ninguna solicitud, Kubernetes Engine utiliza el valor límite.
- Si se especifica una solicitud pero no hay límite, Kubernetes Engine utiliza el valor de solicitud.
- Si se especifican una solicitud y un límite, Kubernetes Engine utiliza el valor límite.
- Si no se especifica ninguna solicitud ni un límite, Kubernetes Engine 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
Al calcular la asignación de OCPU y memoria, Kubernetes Engine 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
.