En esta página, se muestra cómo escalar tus implementaciones en Google Kubernetes Engine (GKE) ajustando automáticamente tus recursos con métricas como la asignación de recursos, el tráfico del balanceador de cargas, las métricas personalizadas o varias métricas de forma simultánea. En esta página, también se proporcionan instrucciones paso a paso para configurar un perfil de Horizontal Pod Autoscaler (HPA), lo que incluye cómo ver, borrar, limpiar y solucionar problemas de tu objeto HPA. Un Deployment es un objeto de la API de Kubernetes que te permite ejecutar varias réplicas de Pods que se distribuyen entre los nodos de un clúster.
Esta página está dirigida a los operadores y desarrolladores que administran el ajuste de escala de aplicaciones en GKE y desean comprender cómo optimizar el rendimiento de forma dinámica y mantener la eficiencia en los costos a través del ajuste de escala automático horizontal de Pods. Para obtener más información sobre los roles comunes y las tareas de ejemplo a los que se hace referencia en el contenido de Google Cloud, consulta Roles y tareas comunes de los usuarios de GKE.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
- Habilita la API de Google Kubernetes Engine. Habilitar la API de Google Kubernetes Engine
- Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta el comando
gcloud components update
para obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos que se describen en este documento.
- Asegúrate de tener un clúster de Autopilot o Standard existente. Si necesitas uno, crea un clúster de Autopilot.
Versiones de API para objetos HorizontalPodAutoscaler
Cuando usas la consola de Google Cloud , los objetos HorizontalPodAutoscaler
se crean con la API deautoscaling/v2
.
Cuando usas kubectl
para crear o ver información sobre un escalador automático horizontal de Pods, puedes especificar la API autoscaling/v1
o la API autoscaling/v2
.
apiVersion: autoscaling/v1
es la predeterminada y te permite hacer ajuste automático de escala según el uso de CPU. Para realizar un ajuste de escala automático en función de otras métricas, se recomienda usarapiVersion: autoscaling/v2
. En el ejemplo de Crea la implementación de ejemplo, se usaapiVersion: autoscaling/v1
.apiVersion: autoscaling/v2
se recomienda para crear objetosHorizontalPodAutoscaler
nuevos. Te permite hacer un ajuste de escala automático en función de varias métricas, incluidas las métricas personalizadas o externas. En todos los demás ejemplos de este tema se usaapiVersion: autoscaling/v2
.
Para verificar qué versiones de la API son compatibles, usa el comando kubectl api-versions
.
Puedes especificar qué API usar cuando visualizas detalles sobre un escalador automático horizontal de Pods que usa apiVersion: autoscaling/v2
.
Crea la implementación de ejemplo
Antes de que puedas crear un escalador automático horizontal de Pods, debes crear la carga de trabajo que supervisa. En los ejemplos de este tema, se aplican diferentes configuraciones de Horizontal Pod Autoscaler a la siguiente implementación nginx
. Ejemplos separados muestran un escalador automático horizontal de Pods según el uso de recursos, la métrica personalizada o externa, y varias métricas.
Guarda lo siguiente en un archivo llamado nginx.yaml
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
resources:
# You must specify requests for CPU to autoscale
# based on CPU utilization
requests:
cpu: "250m"
Este manifiesto especifica un valor para las solicitudes de CPU. Si deseas ajustar la escala automática según el uso de un recurso como un porcentaje, debes especificar solicitudes para ese recurso. Si no especificas solicitudes, puedes hacer un ajuste de escala automático en función del valor absoluto del uso del recurso, como las miliCPU para el uso de CPU.
Para crear la implementación, aplica el manifiesto nginx.yaml
:
kubectl apply -f nginx.yaml
La implementación tiene spec.replicas
establecidas en 3, por lo que se implementan tres pods.
Puedes verificar esto con el comando kubectl get deployment nginx
.
En cada uno de los ejemplos de este tema, se aplica un Horizontal Pod Autoscaler diferente a un ejemplo de implementación de nginx.
Ajuste de escala automático según el uso de recursos
En este ejemplo, se crea un objeto HorizontalPodAutoscaler
para realizar un ajuste de escala automático de la
implementación nginx
cuando el uso de CPU
supera el 50% y garantiza que siempre haya un mínimo de 1
réplica y un máximo de 10 réplicas.
Puedes crear un Horizontal Pod Autoscaler que se oriente a la CPU con la consola de Google Cloud , el comandokubectl apply
o, solo para la CPU promedio, el comando kubectl autoscale
.
Console
Accede a la página Cargas de trabajo de la consola de Google Cloud .
Haz clic en el nombre de la implementación
nginx
.Haz clic en list Acciones > Ajuste de escala automático.
Especifica los siguientes valores:
- Cantidad mínima de réplicas: 1
- Cantidad máxima de réplicas: 10
- Métrica de ajuste de escala automático: CPU
- Objetivo: 50
- Unidad: %
Haz clic en Listo.
Haz clic en Ajuste de escala automático.
kubectl apply
Guarda el siguiente manifiesto YAML como un archivo llamado nginx-hpa.yaml
.
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: nginx
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx
# Set the minimum and maximum number of replicas the Deployment can scale to.
minReplicas: 1
maxReplicas: 10
# The target average CPU utilization percentage across all Pods.
targetCPUUtilizationPercentage: 50
Para crear el HPA, aplica el manifiesto con el siguiente comando:
kubectl apply -f nginx-hpa.yaml
kubectl autoscale
Para crear un objeto HorizontalPodAutoscaler
que solo apunte al uso de CPU promedio, puedes usar el comando kubectl autoscale
:
kubectl autoscale deployment nginx --cpu-percent=50 --min=1 --max=10
Para obtener una lista de los escaladores automáticos horizontales de Pods en el clúster, usa el siguiente comando:
kubectl get hpa
El resultado es similar a este:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
nginx Deployment/nginx 0%/50% 1 10 3 61s
Para obtener detalles sobre el Horizontal Pod Autoscaler, puedes usar la consola de Google Cloud o el comandokubectl
.
Console
Accede a la página Cargas de trabajo de la consola de Google Cloud .
Haz clic en el nombre de la implementación
nginx
.Consulta la configuración del escalador automático horizontal de Pods en la sección Escalador automático.
Ver más detalles sobre el ajuste de escala automático en la pestaña Eventos.
kubectl get
Para obtener detalles sobre el escalador automático horizontal de Pods, puedes usar kubectl get hpa
con la marca -o yaml
. El campo status
contiene información sobre la cantidad actual de réplicas y los eventos de ajuste de escala automático recientes.
kubectl get hpa nginx -o yaml
El resultado es similar a este:
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
annotations:
autoscaling.alpha.kubernetes.io/conditions: '[{"type":"AbleToScale","status":"True","lastTransitionTime":"2019-10-30T19:42:59Z","reason":"ScaleDownStabilized","message":"recent
recommendations were higher than current one, applying the highest recent recommendation"},{"type":"ScalingActive","status":"True","lastTransitionTime":"2019-10-30T19:42:59Z","reason":"ValidMetricFound","message":"the
HPA was able to successfully calculate a replica count from cpu resource utilization
(percentage of request)"},{"type":"ScalingLimited","status":"False","lastTransitionTime":"2019-10-30T19:42:59Z","reason":"DesiredWithinRange","message":"the
desired count is within the acceptable range"}]'
autoscaling.alpha.kubernetes.io/current-metrics: '[{"type":"Resource","resource":{"name":"cpu","currentAverageUtilization":0,"currentAverageValue":"0"}}]'
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"autoscaling/v1","kind":"HorizontalPodAutoscaler","metadata":{"annotations":{},"name":"nginx","namespace":"default"},"spec":{"maxReplicas":10,"minReplicas":1,"scaleTargetRef":{"apiVersion":"apps/v1","kind":"Deployment","name":"nginx"},"targetCPUUtilizationPercentage":50}}
creationTimestamp: "2019-10-30T19:42:43Z"
name: nginx
namespace: default
resourceVersion: "220050"
selfLink: /apis/autoscaling/v1/namespaces/default/horizontalpodautoscalers/nginx
uid: 70d1067d-fb4d-11e9-8b2a-42010a8e013f
spec:
maxReplicas: 10
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx
targetCPUUtilizationPercentage: 50
status:
currentCPUUtilizationPercentage: 0
currentReplicas: 3
desiredReplicas: 3
Antes de seguir los ejemplos restantes en esta página, borra el HPA:
kubectl delete hpa nginx
Cuando borras un escalador automático horizontal de Pods, la cantidad de réplicas de la implementación sigue igual. Una implementación no vuelve automáticamente a su estado anterior a la aplicación del escalador automático horizontal de Pods.
Puedes obtener más información sobre cómo borrar un Horizontal Pod Autoscaler.
Ajuste de escala automático basado en el tráfico del balanceador de cargas
El ajuste de escala automático basado en el tráfico es una función de GKE que integra señales de uso de tráfico de los balanceadores de cargas para ajustar automáticamente la escala de los Pods.
El uso del tráfico como una señal para el ajuste de escala automático puede ser útil porque el tráfico es un indicador principal de carga que se complementa con la CPU y la memoria. La integración incorporada en GKE garantiza que la configuración sea fácil y que el ajuste de escala automático reaccione rápidamente a los aumentos repentinos de tráfico para satisfacer la demanda.
El controlador de Gateway y sus funciones de administración del tráfico global habilitan el ajuste de escala automático basado en el tráfico. Para obtener más información, consulta Ajuste de escala automático basado en el tráfico.
El ajuste de escala automático basado en el tráfico del balanceador de cargas solo está disponible para las cargas de trabajo de Gateway.
Requisitos
El ajuste de escala automático basado en el tráfico tiene los siguientes requisitos:
- Es compatible con las versiones 1.31 y posteriores de GKE.
- API de puerta de enlace habilitada en tu clúster de GKE.
- Compatible con el tráfico que pasa por los balanceadores de cargas implementados mediante la API de Gateway y la GatewayClass
gke-l7-global-external-managed
,gke-l7-regional-external-managed
,gke-l7-rilb
ogke-l7-gxlb
.
Limitaciones
El ajuste de escala automático basado en el tráfico tiene las siguientes limitaciones:
- No es compatible con las GatewayClasses de varios clústeres (
gke-l7-global-external-managed-mc
,gke-l7-regional-external-managed-mc
,gke-l7-rilb-mc
ygke-l7-gxlb-mc
). - No es compatible con el tráfico que usa Services de tipo
LoadBalancer
. - Debe haber una relación clara y aislada entre los componentes involucrados en el ajuste de escala automático basado en el tráfico. Un Horizontal Pod Autoscaler debe dedicarse a escalar una sola Deployment (o cualquier recurso escalable) expuesta por un solo Service.
- Después de configurar la capacidad de tu servicio con el campo
maxRatePerEndpoint
, espera el tiempo suficiente (por lo general, un minuto, pero potencialmente hasta 15 minutos en clústeres grandes) para que el balanceador de cargas se actualice con este cambio antes de configurar el Horizontal Pod Autoscaler con métricas basadas en el tráfico. Esto garantiza que tu servicio no experimentará temporalmente una situación en la que tu clúster intente ajustarse automáticamente según las métricas que emite un balanceador de cargas que aún se está configurando. - Si se usa el ajuste de escala automático basado en el tráfico en un Service que se entrega a través de varios balanceadores de cargas (por ejemplo, a través de un Ingress y una Gateway, o de dos Gateways), es posible que el Horizontal Pod Autoscaler considere el valor de tráfico más alto de los balanceadores de cargas individuales para tomar decisiones de escalamiento, en lugar de la suma de los valores de tráfico de todos los balanceadores de cargas.
Implementa el ajuste de escala automático basado en el tráfico
En el siguiente ejercicio, se usa HorizontalPodAutoscaler
para ajustar automáticamente la escala del objeto Deployment store-autoscale
en función del tráfico que recibe. Una Gateway acepta el tráfico de entrada de Internet para los Pods. El escalador automático compara las señales de tráfico de la Gateway con la capacidad de tráfico por Pod configurada en el recurso de Service store-autoscale
. Cuando generas tráfico a la Gateway, influyes en la cantidad de Pods implementados.
En el siguiente diagrama, se muestra cómo funciona el ajuste de escala automático basado en el tráfico:
Para implementar el ajuste de escala automático basado en el tráfico, sigue estos pasos:
Para los clústeres estándar, confirma que las GatewayClasses estén instaladas en tu clúster. En los clústeres de Autopilot, las GatewayClasses se instalan de forma predeterminada.
kubectl get gatewayclass
El resultado confirma que los recursos GatewayClass de GKE están listos para usarse en tu clúster:
NAME CONTROLLER ACCEPTED AGE gke-l7-global-external-managed networking.gke.io/gateway True 16h gke-l7-regional-external-managed networking.gke.io/gateway True 16h gke-l7-gxlb networking.gke.io/gateway True 16h gke-l7-rilb networking.gke.io/gateway True 16h
Si no ves este resultado, habilita la API de Gateway en tu clúster de GKE.
Implementa la aplicación de muestra y el balanceador de cargas de Gateway en tu clúster:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/gke-networking-recipes/master/gateway/docs/store-autoscale.yaml
La aplicación de muestra crea lo siguiente:
- Una Deployment con 2 réplicas.
- Un servicio con un parámetro de configuración
GCPBackendPolicy
asociadomaxRatePerEndpoint
establecido en10
. Para obtener más información sobre las capacidades de la puerta de enlace, consulta Funciones de GatewayClass. - Una Gateway externa para acceder a la aplicación en Internet. Para obtener más información sobre cómo usar los balanceadores de cargas de Gateway, consulta Implementa puertas de enlace.
- Una HTTPRoute que hace coincidir todo el tráfico y lo envía al Service
store-autoscale
.
La capacidad del Service es un elemento fundamental cuando se usa el ajuste de escala automático basado en el tráfico, ya que determina la cantidad de tráfico por Pod que activa un evento de ajuste de escala automático. Se configura con un campo
maxRatePerEndpoint
en un GCPBackendPolicy asociado al Service, que define el tráfico máximo que un Service debe recibir en solicitudes por segundo, por Pod. La capacidad del servicio es específica de tu aplicación.Para obtener más información, consulta Determina la capacidad de tu Service.
Guarda el siguiente manifiesto como
hpa.yaml
:apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: store-autoscale spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: store-autoscale # Set the minimum and maximum number of replicas the Deployment can scale to. minReplicas: 1 maxReplicas: 10 # This section defines that scaling should be based on the fullness of load balancer # capacity, using the following configuration. metrics: - type: Object object: describedObject: kind: Service name: store-autoscale metric: # The name of the custom metric which measures how "full" a backend is # relative to its configured capacity. name: "autoscaling.googleapis.com|gclb-capacity-fullness" target: # The target average value for the metric. The autoscaler adjusts the number # of replicas to maintain an average capacity fullness of 70% across all Pods. averageValue: 70 type: AverageValue
En este manifiesto, se describe un
HorizontalPodAutoscaler
con las siguientes propiedades:minReplicas
ymaxReplicas
: Establecen la cantidad mínima y máxima de réplicas para esta Deployment. En esta configuración, el número de Pods puede escalar de 1 a 10 réplicas.describedObject.name: store-autoscale
: Es la referencia al Servicestore-autoscale
que define la capacidad de tráfico.scaleTargetRef.name: store-autoscale
: Es la referencia a la Deploymentstore-autoscale
que define el recurso escalado por el Horizontal Pod Autoscaler.averageValue: 70
: Es el valor objetivo promedio del 70% de uso de capacidad. Esto le da al Horizontal Pod Autoscaler un margen de crecimiento para que los Pods en ejecución puedan procesar el tráfico excesivo mientras se crean Pods nuevos.
El Horizontal Pod Autoscaler tiene como resultado el siguiente comportamiento de tráfico:
- La cantidad de Pods se ajusta entre 1 y 10 réplicas para alcanzar el 70% de la tasa máxima por extremo. Esto da como resultado 7 RPS por Pod cuando se configura
maxRatePerEndpoint=10
. - A más de 7 RPS por Pod, los Pods se escalan verticalmente hasta alcanzar su máximo de 10 réplicas o hasta que el tráfico promedio sea de 7 RPS por Pod.
- Si se reduce el tráfico, se reduce verticalmente la escala de los Pods a una tasa razonable mediante el algoritmo del Horizontal Pod Autoscaler.
También puedes implementar un generador de tráfico para validar el comportamiento del ajuste de escala automático basado en el tráfico.
A 30 RPS, la Deployment se escala a 5 réplicas para que cada réplica reciba, de manera ideal, 6 RPS de tráfico, que sería un 60% de uso por Pod. Esto está por debajo del uso objetivo del 70%, por lo que los Pods se escalan de manera adecuada. Según las fluctuaciones del tráfico, la cantidad de réplicas con ajuste de escala automático también puede fluctuar. Para obtener una descripción más detallada de cómo se calcula la cantidad de réplicas, consulta Comportamiento del ajuste de escala automático.
Ajuste de escala automático en función de una métrica personalizada o externa
Si deseas crear escaladores automáticos horizontales de Pods para métricas personalizadas y métricas externas, consulta Optimiza el ajuste de escala automático de Pods en función de las métricas.
Ajuste de escala automático en función de varias métricas
En este ejemplo, se crea un escalador automático horizontal de Pods que se escala automáticamente según el uso de CPU y una métrica personalizada llamada packets_per_second
.
Si seguiste el ejemplo anterior y aún tienes un escalador automático de horizontal de Pods llamado nginx
, bórralo antes de seguir este ejemplo.
En este ejemplo, se necesita apiVersion: autoscaling/v2
. Para obtener más información sobre las API disponibles, consulta las versiones de API para objetos HorizontalPodAutoscaler
.
Guarda este manifiesto YAML como un archivo llamado nginx-multiple.yaml
:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: nginx
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx
minReplicas: 1
maxReplicas: 10
metrics: # The metrics to base the autoscaling on.
- type: Resource
resource:
name: cpu # Scale based on CPU utilization.
target:
type: Utilization
averageUtilization: 50
# The HPA will scale the replicas to try and maintain an average
# CPU utilization of 50% across all Pods.
- type: Resource
resource:
name: memory # Scale based on memory usage.
target:
type: AverageValue
averageValue: 100Mi
# The HPA will scale the replicas to try and maintain an average
# memory usage of 100 Mebibytes (MiB) across all Pods.
# Uncomment these lines if you create the custom packets_per_second metric and
# configure your app to export the metric.
# - type: Pods
# pods:
# metric:
# name: packets_per_second
# target:
# type: AverageValue
# averageValue: 100
Aplica el manifiesto YAML:
kubectl apply -f nginx-multiple.yaml
Cuando se crea, el escalador automático horizontal de Pods supervisa la implementación de nginx
para el uso promedio de CPU, el uso promedio de la memoria y (si quitaste el comentario) la métrica personalizada packets_per_second
. El escalador automático horizontal de Pods escala automáticamente la implementación según la métrica cuyo valor crearía el evento de ajuste de escala automático más grande.
Configura el perfil de HPA de rendimiento
El perfil de HPA de rendimiento mejora el tiempo de reacción del Horizontal Pod Autoscaler, lo que le permite volver a calcular rápidamente una gran cantidad de objetos HorizontalPodAutoscaler
(hasta 1,000 objetos en las versiones secundarias 1.31 a 1.32 y 5,000 objetos en la versión 1.33 o posterior).
Este perfil se habilita automáticamente en los clústeres de Autopilot aptos con un plano de control que ejecuta la versión 1.32 de GKE o una posterior. En el caso de los clústeres de Standard, el perfil se habilita automáticamente en los clústeres aptos con un plano de control que ejecuta la versión 1.33 de GKE o una posterior.
Un clúster de Standard está exento de la habilitación automática del perfil de HPA de rendimiento si cumple con todas las siguientes condiciones:
- El clúster se está actualizando de una versión anterior a la 1.33 o una posterior.
- El clúster debe tener al menos un grupo de nodos con cualquiera de los siguientes tipos de máquinas:
e2-micro
,e2-custom-micro
,g1-small
of1-micro
. - El aprovisionamiento automático de nodos no está habilitado.
También puedes habilitar el perfil de HPA de rendimiento en clústeres existentes si cumplen con los requisitos.
Requisitos
Para habilitar el perfil de HPA de rendimiento, verifica que tus clústeres de Autopilot y estándar cumplan con los siguientes requisitos:
- Tu plano de control ejecuta la versión 1.31 o posterior de GKE.
- Si tu plano de control ejecuta la versión 1.31 de GKE, habilita la recopilación de métricas del sistema.
- La API de Autoscaling está habilitada en tu clúster.
- Todas las cuentas de servicio del nodo tienen asignado el rol
roles/autoscaling.metricsWriter
. - Si usas los Controles del servicio de VPC, verifica que la API de Autoscaling esté incluida en tu perímetro de servicio.
Habilita el perfil de HPA de rendimiento
Para habilitar el perfil de HPA de rendimiento en tu clúster, usa el siguiente comando:
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--project=PROJECT_ID \
--hpa-profile=performance
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster.LOCATION
: Zona o región de procesamiento (p.ej., us-central1-a o us-central1) para el clúster.PROJECT_ID
: El ID de tu proyecto de Google Cloud .
Inhabilita el perfil de HPA de rendimiento
Para inhabilitar el perfil de HPA de rendimiento en un clúster, usa el siguiente comando:
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--project=PROJECT_ID \
--hpa-profile=none
Reemplaza lo siguiente:
CLUSTER_NAME
: Es el nombre del clúster.LOCATION
: Zona o región de procesamiento (p.ej., us-central1-a o us-central1) para el clúster.PROJECT_ID
: El ID de tu proyecto de Google Cloud .
Visualiza detalles sobre un escalador automático horizontal de Pods
Para ver la configuración y las estadísticas del escalador automático horizontal de Pods, usa el siguiente comando:
kubectl describe hpa HPA_NAME
Reemplaza HPA_NAME
por el nombre del objeto HorizontalPodAutoscaler
.
Si el escalador automático horizontal de Pods usa apiVersion: autoscaling/v2
y se basa en varias métricas, el comando kubectl describe hpa
solo muestra la métrica de CPU. Para ver todas las métricas, usa el siguiente comando:
kubectl describe hpa.v2.autoscaling HPA_NAME
Reemplaza HPA_NAME
por el nombre del objeto HorizontalPodAutoscaler
.
El estado actual de cada escalador automático horizontal de Pods se muestra en el campo Conditions
, y los eventos de ajuste de escala automático aparecen en el campo Events
.
El resultado es similar a este:
Name: nginx
Namespace: default
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"autoscaling/v2","kind":"HorizontalPodAutoscaler","metadata":{"annotations":{},"name":"nginx","namespace":"default"},"s...
CreationTimestamp: Tue, 05 May 2020 20:07:11 +0000
Reference: Deployment/nginx
Metrics: ( current / target )
resource memory on pods: 2220032 / 100Mi
resource cpu on pods (as a percentage of request): 0% (0) / 50%
Min replicas: 1
Max replicas: 10
Deployment pods: 1 current / 1 desired
Conditions:
Type Status Reason Message
---- ------ ------ -------
AbleToScale True ReadyForNewScale recommended size matches current size
ScalingActive True ValidMetricFound the HPA was able to successfully calculate a replica count from memory resource
ScalingLimited False DesiredWithinRange the desired count is within the acceptable range
Events: <none>
Borra un escalador automático horizontal de Pods
Puedes borrar un Horizontal Pod Autoscaler con la consola Google Cloud o el comando kubectl delete
.
Console
Para borrar el escalador automático horizontal de Pods nginx
, haz lo siguiente:
Accede a la página Cargas de trabajo de la consola de Google Cloud .
Haz clic en el nombre de la implementación
nginx
.Haz clic en list Acciones > Ajuste de escala automático.
Haz clic en Borrar.
kubectl delete
Para borrar el escalador automático horizontal de Pods nginx
, usa el siguiente comando:
kubectl delete hpa nginx
Cuando borras un escalador automático horizontal de Pods, la implementación (o algún otro objeto de implementación) permanece en su escalamiento existente y no vuelve a la cantidad de réplicas en el manifiesto original de la implementación. Para escalar la implementación de forma manual de nuevo a tres pods, puedes usar el comando kubectl scale
:
kubectl scale deployment nginx --replicas=3
Realiza una limpieza
Si aún no lo hiciste, borra el escalador automático horizontal de Pods:
kubectl delete hpa nginx
Borra la implementación
nginx
:kubectl delete deployment nginx
Si lo deseas, borra el clúster.
Soluciona problemas
Para obtener asesoramiento sobre la solución de problemas, consulta Soluciona problemas del ajuste de escala automático horizontal de Pods.
¿Qué sigue?
- Obtén más información sobre el Ajuste de escala automático horizontal de Pods.
- Obtén más información sobre el Ajuste de escala automático vertical de Pods
- Obtén información para optimizar el ajuste de escala automático de Pods en función de las métricas.
- Obtén más información sobre el ajuste de escala automático de implementaciones con métricas personalizadas.
- Obtén más información sobre cómo asignar recursos de CPU a contenedores y Pods.
- Obtén más información sobre cómo asignar recursos de memoria a contenedores y Pods.