Si el uso de recursos de su aplicación sigue un patrón recurrente y predecible, puede utilizar CronHPA (Cron Horizontal Pod Autoscaler) para escalar pods según un horario. CronHPA es ideal para escenarios con picos de tráfico predecibles o para ejecutar tareas programadas.
Antes de empezar
Container Service for Kubernetes (ACK) ofrece varias soluciones para el escalado de cargas de trabajo (en la capa de programación) y el escalado de nodos (en la capa de recursos). Antes de comenzar, lea auto scaling para comprender los casos de uso y las limitaciones de cada solución.
Plantilla y parámetros de CronHPA
CronHPA se implementa mediante kubernetes-cronhpa-controller, un autoscalador de pods basado en tiempo. Utiliza una sintaxis similar a cron para configurar políticas de escalado programado, lo que permite ajustar dinámicamente los recursos para cargas de trabajo con fluctuaciones periódicas de tráfico. CronHPA se puede aplicar a cualquier objeto de Kubernetes que admita el subrecurso scale, como Deployments y StatefulSets.
Paso 1: Instalar el complemento CronHPA
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Components and Add-ons .
Haga clic en la pestaña Application Management, busque ack-kubernetes-cronhpa-controller y siga las instrucciones en pantalla para instalar el complemento.
Paso 2: Crear un trabajo de CronHPA
Antes de crear un trabajo de CronHPA, asegúrese de que el complemento CronHPA se esté ejecutando en su clúster y de que la aplicación destino tenga solo un objeto HPA. El siguiente ejemplo muestra cómo crear un trabajo de CronHPA para una aplicación sin estado. El procedimiento es similar para otros tipos de cargas de trabajo.
Al crear una aplicación
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
En la página Deployments, haga clic en Create from Image.
-
En la página Create, configure la información básica, el contenedor, el servicio y los ajustes de escalado programado para crear un Deployment compatible con CronHPA.
Para obtener instrucciones detalladas y descripciones de los parámetros, consulte Create a stateless workload (Deployment). Los parámetros clave se describen a continuación.
Basic Information: Configure el nombre de la aplicación y el número de réplicas.
Container: Configure la imagen y especifique los recursos de CPU y memoria obligatorios para el contenedor.
-
Advanced:
-
En la sección Scaling, seleccione la casilla Enable para CronHPA. Si el complemento no está instalado, siga las indicaciones para instalarlo. Luego, configure las condiciones y los parámetros de escalado programado.
Scheduled Task Name: El nombre del trabajo de CronHPA.
Desired Number of Replicas: El número objetivo de réplicas para la aplicación a la hora programada.
Scaling Schedule: El horario para el trabajo de escalado. Para más información, consulte Kubernetes CronHPA Controller.
-
Para aplicaciones existentes
Desde la página Workloads
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
Haga clic en el nombre de la carga de trabajo destino y luego en la pestaña Pod Scaling. En la sección CronHPA, haga clic en Create y configure el trabajo de CronHPA.
Parámetro
Descripción
Job Name
El nombre del trabajo de CronHPA.
Desired Number of Replicas
El número de réplicas al que escala la aplicación a la hora programada.
Scaling Schedule
El horario para el trabajo de escalado. Para más información sobre cómo establecer un horario para un trabajo de CronHPA, consulte AliyunContainerService/kubernetes-cronhpa-controller.
Página Workload Scaling
Esta página solo está disponible para usuarios incluidos en la lista de permitidos. Para solicitar acceso, envíe un ticket.
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Workload Scaling.
En la esquina superior derecha de la página, haga clic en Create Auto Scaling.
-
Haga clic en la pestaña HPA and CronHPA, en Select Workload y luego seleccione la casilla de CronHPA en la sección Configure Auto Scaling Policy.
Puede agregar varios trabajos de CronHPA. Configure la política de CronHPA según las indicaciones y haga clic en OK.
CronHPA Task Name: Un nombre personalizado para el objeto CronHPA.
Job Name: Un nombre personalizado para el trabajo de CronHPA.
Desired Number of Replicas: El número objetivo de réplicas para la aplicación a la hora programada.
Scaling Schedule: El horario para el trabajo de escalado. Para más información, consulte Kubernetes CronHPA Controller.
Mediante kubectl
-
Cree un archivo llamado
cronhpa.yamly copie el siguiente contenido en él.apiVersion: autoscaling.alibabacloud.com/v1beta1 kind: CronHorizontalPodAutoscaler metadata: name: cronhpa-sample namespace: default spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: nginx-deployment-basic excludeDates: - "* * * 15 11 *" - "* * * * * 5" jobs: - name: "scale-down" schedule: "30 */1 * * * *" targetSize: 1 runOnce: false - name: "scale-up" schedule: "0 */1 * * * *" targetSize: 3 runOnce: true -
Ejecute el siguiente comando para crear un trabajo de CronHPA para una carga de trabajo existente:
kubectl apply -f cronhpa.yamlSalida esperada:
cronhorizontalpodautoscaler.autoscaling.alibabacloud.com/cronhpa-sample created
Operaciones relacionadas
Gestión de trabajos de CronHPA
Después de crear un trabajo de CronHPA, puede consultar su estado en la lista de CronHPA. Para agregar un nuevo trabajo o modificar uno existente, utilice uno de los siguientes métodos:
-
Desde la página Workload Scaling
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Workload Scaling.
Haga clic en la pestaña CronHPA. En la columna Actions del trabajo de CronHPA destino, haga clic en Edit.
-
Desde la página Workloads (con un Deployment como ejemplo)
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
En la página Deployments, haga clic en Details para el Deployment destino en la columna Actions y luego haga clic en la pestaña Pod Scaling. En la columna Actions de la sección CronHPA, haga clic en Add or Modify Job.
Uso de CronHPA con HPA
Para más información, consulte Make CronHPA compatible with HPA.