Si l'utilisation des ressources de votre application suit un schéma prévisible et récurrent, utilisez CronHPA (Cron Horizontal Pod Autoscaler) pour mettre à l'échelle les pods selon un planning défini. CronHPA est idéal pour les scénarios présentant des pics de trafic prévisibles ou pour l'exécution de tâches planifiées.
Avant de commencer
Container Service for Kubernetes (ACK) propose plusieurs solutions pour la mise à l'échelle des charges de travail (au niveau de la couche d'ordonnancement) et la mise à l'échelle des nœuds (au niveau de la couche de ressources). Avant de démarrer, consultez la rubrique sur la mise à l'échelle automatique afin de comprendre les cas d'utilisation et les limites de chaque solution.
Modèle et paramètres CronHPA
CronHPA est implémenté par kubernetes-cronhpa-controller, un outil de mise à l'échelle automatique des pods basé sur le temps. Il utilise une syntaxe de type cron pour configurer des politiques de mise à l'échelle planifiées, ce qui permet d'ajuster dynamiquement les ressources pour les charges de travail soumises à des fluctuations de trafic périodiques. CronHPA s'applique à tout objet Kubernetes prenant en charge la sous-ressource scale, comme les Deployments et les StatefulSets.
Étape 1 : Installer le module complémentaire CronHPA
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Components and Add-ons .
Cliquez sur l'onglet Application Management, recherchez ack-kubernetes-cronhpa-controller et suivez les instructions à l'écran pour installer le module complémentaire.
Étape 2 : Créer une tâche CronHPA
Avant de créer une tâche CronHPA, assurez-vous que le module complémentaire CronHPA est en cours d'exécution dans votre cluster et que l'application cible ne possède qu'un seul objet HPA. L'exemple suivant montre comment créer une tâche CronHPA pour une application sans état. La procédure est similaire pour les autres types de charges de travail.
Lors de la création d'une application
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
Sur la page Deployments, cliquez sur Create from Image.
-
Sur la page Create, configurez les informations de base, le conteneur, le service et les paramètres de mise à l'échelle planifiée pour créer un Deployment compatible avec CronHPA.
Pour obtenir des instructions détaillées et les descriptions des paramètres, consultez la rubrique Créer une charge de travail sans état (Deployment). Les paramètres clés sont décrits ci-dessous.
Basic Information : configurez le nom de l'application et le nombre de réplicas.
Container : configurez l'image et spécifiez les ressources CPU et mémoire requises pour le conteneur.
-
Advanced :
-
Dans la section Scaling, cochez la case Enable pour CronHPA. Si le module complémentaire n'est pas installé, suivez les invites pour l'installer. Configurez ensuite les conditions et les paramètres de mise à l'échelle planifiée.
Scheduled Task Name : le nom de la tâche CronHPA.
Desired Number of Replicas : le nombre cible de réplicas pour l'application à l'heure planifiée.
Scaling Schedule : le planning de la tâche de mise à l'échelle. Pour plus d'informations, consultez Kubernetes CronHPA Controller.
-
Pour les applications existantes
Depuis la page Workloads
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
-
Cliquez sur le nom de la charge de travail cible, puis cliquez sur l'onglet Pod Scaling. Dans la section CronHPA, cliquez sur Create et configurez la tâche CronHPA.
Paramètre
Description
Job Name
Le nom de la tâche CronHPA.
Desired Number of Replicas
Le nombre de réplicas auquel l'application est mise à l'échelle à l'heure planifiée.
Scaling Schedule
Le planning de la tâche de mise à l'échelle. Pour plus d'informations sur la définition d'un planning pour une tâche CronHPA, consultez AliyunContainerService/kubernetes-cronhpa-controller.
Page Workload Scaling
Cette page est disponible uniquement pour les utilisateurs figurant sur la liste d'autorisation. Pour demander l'accès, submit a ticket.
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workload Scaling.
Dans le coin supérieur droit de la page, cliquez sur Create Auto Scaling.
-
Cliquez sur l'onglet HPA and CronHPA, Select Workload, puis cochez la case CronHPA dans la section Configure Auto Scaling Policy.
Vous pouvez ajouter plusieurs tâches CronHPA. Configurez la politique CronHPA selon les instructions et cliquez sur OK.
CronHPA Task Name : un nom personnalisé pour l'objet CronHPA.
Job Name : un nom personnalisé pour la tâche CronHPA.
Desired Number of Replicas : le nombre cible de réplicas pour l'application à l'heure planifiée.
Scaling Schedule : le planning de la tâche de mise à l'échelle. Pour plus d'informations, consultez Kubernetes CronHPA Controller.
Utilisation de kubectl
-
Créez un fichier nommé
cronhpa.yamlet copiez-y le contenu suivant.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 -
Exécutez la commande suivante pour créer une tâche CronHPA pour une charge de travail existante :
kubectl apply -f cronhpa.yamlSortie attendue :
cronhorizontalpodautoscaler.autoscaling.alibabacloud.com/cronhpa-sample created
Opérations connexes
Gérer les tâches CronHPA
Après avoir créé une tâche CronHPA, vous pouvez consulter son statut dans la liste CronHPA. Pour ajouter une nouvelle tâche ou modifier une tâche existante, utilisez l'une des méthodes suivantes :
-
Depuis la page Workload Scaling
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workload Scaling.
Cliquez sur l'onglet CronHPA. Dans la colonne Actions de la tâche CronHPA cible, cliquez sur Edit.
-
Depuis la page Workloads (en utilisant un Deployment comme exemple)
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
Sur la page Deployments, cliquez sur Details pour le Deployment cible dans la colonne Actions, puis cliquez sur l'onglet Pod Scaling. Dans la colonne Actions de la section CronHPA, cliquez sur Add or Modify Job.
Utiliser CronHPA avec HPA
Pour plus d'informations, consultez la rubrique Rendre CronHPA compatible avec HPA.