Ajuste de escala automático vertical de pods

En esta página se proporciona una descripción general del ajuste de escala automático vertical de pod, y se explica cómo puedes usarlo con el fin de ajustar los requisitos de CPU y los requisitos de memoria para los contenedores. Esta página también proporciona material de referencia para los recursos personalizados del VerticalPodAutoscaler y los tipos relacionados.

Descripción general

El ajuste de escala automático vertical de pod (VPA) te libera de tener que decidir cuáles son los valores que tienes que especificar para los requisitos de CPU y memoria de un contenedor. El escalador automático te puede recomendar valores de requisitos de CPU y memoria, o puede actualizar de manera automática los valores de requisitos de CPU y memoria.

El ajuste de escala automático vertical de pod proporciona los siguientes beneficios:

  • Los nodos de clúster se usan de manera eficiente, porque los pods usan exactamente los recursos que necesitan.

  • Los pods se programan en nodos que tienen los recursos adecuados disponibles.

  • No es necesario que ejecutes tareas comparativas que requieren mucho tiempo para determinar los valores correctos de requisitos de CPU y memoria.

  • Se reduce el tiempo de mantenimiento, ya que el escalador automático puede ajustar los requisitos de CPU y memoria en el tiempo sin que tengas que realizar ninguna acción.

Limitaciones para Beta:

  • No habilites el ajuste de escala automático vertical de pod en clústeres con más de 1,000 nodos.

  • El ajuste de escala automático vertical de pod admite un máximo de 200 objetos VPA por clúster.

  • No se admite el ajuste de escala automático vertical de pod en clústeres regionales.

  • No uses el ajuste de escala automático vertical de pod con Ajuste de escala automático horizontal de pod (HPA) en CPU o memoria. Sin embargo, puedes usar VPA con HPA en personalizado y externo.

Ajuste de escala automático vertical de pod en modo automático

Debido a las limitaciones de Kubernetes, la única manera de modificar los requisitos de recursos de un pod en ejecución es volviendo a crear el pod. Así que si creas un VerticalPodAutoscaler con un updateMode en “Auto”, el VerticalPodAutoscaler expulsará un pod si necesita cambiar los requisitos de recursos del pod.

Para limitar la cantidad de reinicios del pod, usa un presupuesto de interrupción de pod. Para asegurarte de que tu clúster pueda manejar los tamaños nuevos de tu carga de trabajo, usa el aprovisionamiento automático de nodos.

Qué sigue

Referencia

VerticalPodAutoscaler v1beta1 autoscaling.k8s.io

Campos

TypeMeta

Grupo, versión y tipo de API.

metadata

ObjectMeta

Metadatos de objeto estándar.

spec

VerticalPodAutoscalerSpec

El comportamiento deseado del VerticalPodAutoscaler.

status

VerticalPodAutosclerStatus

El estado más reciente del VerticalPodAutoscaler.

VerticalPodAutoscalerSpec v1beta1 autoscaling.k8s.io

Campos
selector

LabelSelector

Una consulta de etiqueta que determina el conjunto de pods que controla el VerticalPodAutoscaler.

updatePolicy

PodUpdatePolicy

Especifica si se aplican las actualizaciones recomendadas cuando se inicia un pod, y si las actualizaciones recomendadas se aplican durante la vida útil del pod.

resourcePolicy

PodResourcePolicy

Especifica las políticas sobre cómo se ajustan los requisitos de CPU y memoria para los contenedores individuales.

VerticalPodAutoscalerList v1beta1 autoscaling.k8s.io

Campos

TypeMeta

Grupo, versión y tipo de API.

metadata

ObjectMeta

Metadatos de objeto estándar.

items

VerticalPodAutoscaler array

Una lista de objetos de VerticalPodAutoscaler.

PodUpdatePolicy v1beta1 autoscaling.k8s.io

Campos
updateMode

string

Especifica si se aplican las actualizaciones recomendadas cuando se inicia un pod, y si las actualizaciones recomendadas se aplican durante la vida útil del pod. Los valores posibles son “Apagado”, “Inicial”, “Volver a crear” y “Auto”.

PodResourcePolicy v1beta1 autoscaling.k8s.io

Campos
containerPolicies

ContainerResourcePolicy array

Un arreglo de políticas de recursos para contenedores individuales.

ContainerResourcePolicy v1beta1 autoscaling.k8s.io

Campos
containerName

string

El nombre del contenedor al cual se aplica la política. Si no se especifica, la política se usa como política predeterminada.

mode

ContainerScalingMode

Especifica si se aplican las actualizaciones recomendadas cuando se inicia un contenedor, y si las actualizaciones recomendadas se aplican durante la vida útil del contenedor. Los valores posibles con “Apagado” o “Auto”.

minAllowed

ResourceList

Especifica los requisitos de CPU y memoria mínimos que se permiten para el contenedor.

maxAllowed

ResourceList

Especifica los requisitos de CPU y memoria máximos que se permiten para el contenedor.

VerticalPodAutoscalerStatus v1beta1 autoscaling.k8s.io

Campos
recommendation

RecommendedPodResources

Los requisitos de CPU y memoria recomendados más recientes.

conditions

VerticalPodAutoscalerCondition array

Describe el estado actual del VerticalPodAutoscaler.

RecommendedPodResources v1beta1 autoscaling.k8s.io

Campos
containerRecommendation

RecommendedContainerResources array

Un arreglo de recomendaciones de recursos para contenedores individuales.

RecommendedContainerResources v1beta1 autoscaling.k8s.io

Campos
containerName

string

El nombre del contenedor al cual se aplica la recomendación.

target

ResourceList

Los requisitos de CPU y memoria recomendados para el contenedor.

lowerBound

ResourceList

Los requisitos de CPU y memoria mínimos recomendados para el contenedor. No se garantiza que esta cantidad sea suficiente para que la aplicación permanezca estable. Es probable que la ejecución con menos requisitos de CPU y memoria tenga un impacto considerable en el rendimiento o la disponibilidad.

upperBound

ResourceList

Los requisitos de CPU y memoria máximos recomendados para el contenedor. Es probable que los requisitos de CPU y memoria que superen estos valores se desperdicien.

uncappedTarget

ResourceList

La recomendación de recursos más reciente que procesó el escalador automático, solo en función del uso real de recursos y sin tener en cuenta la ContainerResourcePolicy. Puede variar de la recomendación delimitada si el uso real de recursos hace que el objetivo viole la ContainerResourcePolicy. Este campo solo se usa como indicador de estado; no afecta la asignación real de recursos.

VerticalPodAutoscalerCondition v1beta1 autoscaling.k8s.io

Campos
type

VerticalPodAutoscalerConditionType

El tipo de condición que se describe. Los valores posibles son “RecommendationProvided”, “LowConfidence”, “NoPodsMatched” y “FetchingHistory”.

status

ConditionStatus

El estado de la condición. Los posibles valores son Verdadero, Falso y Desconocido.

lastTransitionTime

Time

La última vez que la condición hizo una transición de un estado a otro.

reason

string

La razón por la cual se realizó la última transición de un estado a otro.

message

string

Una string legible que proporciona detalles sobre la última transición de un estado a otro.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...