¿Existe una solicitud de memoria predeterminada y \ o límites para pods \ contenedores en k8s \ openshift?
Hola, compañeros de DevOps:
Estoy tratando de entender si es una solicitud base y \ o un límite por pod \ contenedor en k8s u Openshift como son hoy o si conoce un cambio en el futuro con respecto a eso.
He visto esta respuesta: ¿Cuál es la memoria predeterminada asignada para un pod que indica que no hay ninguna, al menos para la implementación de Google de k8s y me gustaría estar seguro de eso también para el estado actual de k8s y Openshift en implementaciones locales.
actualmente ejecutando el clúster Enterprise openshift 3.11.16 y pronto se transferirá a 4.6.4, por lo que mi pregunta también se refiere a la implementación de RedHat de construir sobre k8s predeterminados (Openshift).
¿Existe alguna solicitud base o valores límite para un contenedor \ pod?
EDITAR: ¿También hay alguna forma en que k8s o openshift predecirían la solicitud de memoria del contenedor por el lenguaje de desarrollo de la aplicación o las variables de entorno configuradas para la implementación (como desde el comando java container RUN o env: JVM_OPTS -Xms1G -Xmx1G)?
Respuestas
De forma predeterminada, no hay solicitudes de recursos ni límites, lo que significa que cada pod se crea utilizando BestEffort QoS . Si desea configurar valores predeterminados para solicitudes y límites, debe hacer uso de LimitRange .
Los pods BestEffort, por definición, son "para que un pod reciba una clase de QoS de BestEffort, los contenedores en el pod no deben tener ningún límite o solicitud de memoria o CPU". Los pods BestEffort tienen la prioridad más baja para el programador de Kubernetes y pueden ser desalojados en caso de contención de recursos.
Todo lo dicho anteriormente es cierto para todas las distribuciones de Kubernetes, incluido OpenShift.
No hay un límite o una solicitud predeterminados. Para configurar los recursos predeterminados, debe crear un recurso LimitRange como se describe aquí:https://docs.openshift.com/container-platform/3.11/dev_guide/compute_resources.html#dev-viewing-limit-ranges
Si desea que cada nuevo proyecto se cree con ciertos límites de recursos, puede modificar la plantilla de proyecto predeterminada como se describe aquí: https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects
Esto tampoco cambia en 4.6, solo la implementación de cómo modificar LimitRange o la plantilla de proyecto predeterminada. (La metodología es exactamente la misma)
En cuanto a su cuestión de predecir los recursos de las aplicaciones, hay algunos jugadores en torno a este tema. Solo he oído hablar de turbonomic, que incluso puede cambiar los recursos de sus implementaciones automáticamente mediante la utilización y tal vez también algunas métricas personalizadas.