Cet article est partagé par la communauté Huawei Cloud « Faire face à des scénarios de mise à l'échelle élastiques d'entreprise complexes grâce à la combinaison HPA+CronHPA », auteur : Cloud Container Future.
arrière-plan
Dans le cluster k8s, la mise à l'échelle automatique horizontale du conteneur (HPA) peut automatiquement augmenter et réduire le nombre de réplicas de charge de travail (répliques) en fonction de l'utilisation des ressources du conteneur et dans la plage de réplicas définie. Les échelles HPA sont basées sur des seuils d'indicateurs. Les indicateurs courants incluent le processeur et la mémoire. Il peut également être mis à l'échelle grâce à des indicateurs personnalisés, tels que le QPS, le nombre de connexions, etc. Mais il existe un scénario : il y a un certain retard dans la mise à l'échelle basée sur des indicateurs. Ce type de retard comprend principalement : le délai de collecte (niveau minute), le délai de jugement (niveau minute) et le délai de mise à l'échelle (niveau minute). Ce type de délai d'une minute ne peut pas s'adapter à l'augmentation rapide du trafic professionnel à court terme, ce qui peut entraîner une surcharge du processeur de l'application et un allongement du temps de réponse.
La mise à l'échelle automatique horizontale planifiée des conteneurs (CronHPA ) est un complément à HPA. Pour les entreprises ayant des périodes de pointe sur des périodes fixes, le nombre d'instances de conteneurs peut être augmenté à l'avance pour éviter les baisses de performances causées par un trafic commercial soudain et des retards commerciaux. Lorsque l’activité est au plus bas, un recyclage programmé des ressources est déclenché.
Dans certains scénarios commerciaux, il existe des pics de trafic et des pics et des creux évidents. Si les stratégies CronHPA et HPA sont configurées en même temps, la situation suivante peut se produire : avant l'arrivée du pic d'activité, la tâche planifiée CronHPA étend la copie du conteneur métier. à l'avance, et à ce moment-là, HPA peut détecter que l'utilisation des ressources est très faible et déclencher la mise à l'échelle de l'instance, provoquant l'échec de la stratégie de pré-mise à l'échelle.
Le service Huawei Cloud CCE prend en charge la configuration conjointe de la politique CronHPA et de la politique HPA, et définit dynamiquement les limites supérieure et inférieure de la plage de copie HPA pour ajuster le nombre d'instances de conteneur d'entreprise.
Exemple d'utilisation
Dans la vie quotidienne, de nombreux scénarios commerciaux connaissent des pics et des creux évidents en cas d'explosion du trafic et sont très sensibles aux délais de réponse, tels que :
1. Jeux en ligne : X Game Client, un jeu en ligne à grande échelle, connaît une forte augmentation du nombre de joueurs pendant les périodes de pointe telles que les soirs, les week-ends et les jours fériés, provoquant une augmentation instantanée de la charge sur le serveur de jeu. Avec le temps, si le nombre de copies chargées augmente lentement, cela peut provoquer un décalage du réseau et dégrader considérablement l'expérience de jeu ;
2. Vidéo en direct : X Video Live APP, lorsque certains événements, compétitions et autres diffusions en direct à grande échelle démarrent, le nombre de téléspectateurs augmentera rapidement, ce qui entraînera une forte augmentation de la charge du serveur et une augmentation de la latence du réseau, ce qui entraînera une forte augmentation de la charge du serveur et une augmentation de la latence du réseau. à son tour, cela entraîne une perte d’utilisateurs regardant la diffusion en direct ;
3. Promotion du commerce électronique : La plate-forme de commerce électronique X suscite généralement l'enthousiasme des utilisateurs lors de ses activités promotionnelles, ce qui entraîne une augmentation significative des visites des utilisateurs et une forte augmentation de la charge du serveur. Si le conteneur commercial n'est pas étendu à temps, cela est probable. que les utilisateurs L'expérience est dégradée, ce qui peut entraîner de graves interruptions d'activité ;
4. Transactions financières : La plateforme de trading financier X implique une variété de produits financiers, qui nécessitent tous une réponse en temps réel. Le retard du réseau a un impact important sur l'efficacité et la précision des transactions. Pendant les périodes de pointe, le volume des transactions augmentera considérablement et la latence du réseau augmentera également.
Les scénarios commerciaux ci-dessus nécessitent tous un support réseau efficace et stable et sont très sensibles à la latence du réseau . Si le conteneur métier n'est pas étendu à temps, la latence du réseau sera trop élevée, l'expérience utilisateur sera dégradée et même les opérations commerciales normales seront affectées.
Ce qui suit prend le service vidéo en direct comme exemple pour présenter comment effectuer une configuration de mise à l'échelle élastique. Supposons qu'il y ait une diffusion en direct populaire de 8h30 à 22h00 tous les soirs. Pendant cette période, le nombre de visites d'utilisateurs augmentera fortement, puis le trafic diminuera lentement jusqu'à atteindre un creux. Afin de réduire les coûts, vous pouvez utiliser la configuration suivante pour augmenter le nombre d'instances de conteneur d'entreprise à l'avance avant l'arrivée du pic de trafic. Une fois le pic de trafic passé, réduisez progressivement le nombre d'instances de conteneur en fonction du flux d'activité :
1. Dans la console CCE, cliquez sur le nom du cluster pour saisir le cluster.
2. Cliquez sur « Charge de travail » dans la barre de navigation de gauche, puis cliquez sur « Plus > Auto Scaling » dans la colonne d'opération de la charge de travail cible.
3. Sélectionnez « Politique HPA+CronHPA » pour le type de politique, activez la stratégie HPA et activez la stratégie CronHPA en même temps . À ce stade, CronHPA ajustera régulièrement le nombre maximum et minimum d'instances de la politique HPA.
4. Définir la politique HPA
Définissez la plage d'instances et la stratégie système, comme indiqué ci-dessous. HPA ajustera dynamiquement le nombre d'instances du conteneur dans la plage de 1 à 10 en fonction de l'utilisation du processeur du conteneur d'entreprise actuel lorsque l'utilisation du processeur est supérieure à 80 %. , il augmentera automatiquement la capacité lorsque l'utilisation du processeur est faible, réduira automatiquement le nombre d'instances de conteneur d'entreprise à 60 %.
5. Configurer la politique CronHPA
Configurez les tâches planifiées, comme indiqué dans la figure ci-dessous
Stratégie 1 : Ajustez la plage de numéros d'instance de la politique HPA de 1-10 à 8-10 à 20h00 ;
Stratégie 2 : Ajustez la plage de numéros d'instance de la stratégie HPA de 8-10 à 1-10 à 22h30.
6. Répétez les étapes ci-dessus. Vous pouvez ajouter plusieurs règles de stratégie, mais l'heure de déclenchement des stratégies ne peut pas être la même .
7. Une fois les réglages terminés, cliquez sur "Créer"
Une fois la configuration ci-dessus terminée, CronHPA ajustera le nombre d'instances de stratégie HPA de 1-10 à 8-10 à 20h00 avant le pic de trafic. À ce moment-là, HPA augmentera le nombre d'instances commerciales à au moins 8 pour. la période à venir. Préparez-vous au prochain pic de trafic. Attendez 22h30 après la fin du pic de trafic pour ajuster la plage de numéros d'instance de stratégie HPA de 8-10 à 1-10. À ce moment-là, HPA réduira le nombre d'instances de conteneur d'entreprise à une valeur appropriée en fonction des conditions de trafic de l'entreprise. pour réduire le coût d’utilisation.
Analyse de liaison CronHPA et HPA
HPA est un contrôleur utilisé pour contrôler la mise à l'échelle horizontale des pods. HPA vérifie périodiquement les données d'utilisation des ressources des pods, calcule le nombre de réplicas requis pour atteindre la valeur cible configurée pour les ressources HPA, puis ajuste le champ des réplicas de la ressource cible ( comme le déploiement).
CronHPA prend en charge l'ajustement régulier du nombre maximum et minimum d'instances de la politique HPA pour établir une liaison avec HPA afin de répondre à la mise à l'échelle de la charge de travail dans des scénarios complexes.
Étant donné que HPA et CronHPA agissent tous deux sur le même objet de déploiement, il existe un problème de conflit. Les deux stratégies de mise à l'échelle sont indépendantes l'une de l'autre. L'opération effectuée ultérieurement écrasera l'opération effectuée précédemment, ce qui empêchera l'effet de mise à l'échelle de répondre aux attentes. cette situation doit être évitée.
Afin d'éviter les problèmes ci-dessus, nous avons amélioré CronHPA pour prendre en charge l'application des règles CronHPA sur les politiques HPA. CronHPA ajuste uniquement la configuration des politiques de HPA, et le nombre d'instances de conteneurs métier est uniquement géré par HPA, réalisant ainsi la collaboration. travail des deux stratégies élastiques.
Résumer
La politique HPA fournie par la communauté k8s prend en charge l'expansion et la contraction automatiques en fonction de l'utilisation du processeur, de la mémoire et d'autres ressources du conteneur métier dans le cadre du nombre d'instances configuré. En superposant la stratégie d'expansion planifiée de CronHPA, on s'attend à ce qu'avant l'arrivée du pic d'activité, le nombre de copies de conteneurs d'entreprise soit augmenté à l'avance via la tâche planifiée de CronHPA. Cependant, à ce stade, HPA peut détecter que l'utilisation des ressources est très faible. et déclencher une réduction des instances, entraînant une stratégie de pré-expansion invalide. Le service Huawei Cloud CCE combine HPA et CronHPA pour obtenir une synergie organique entre les stratégies d'élasticité des indicateurs et les stratégies d'élasticité temporelle, répondant ainsi aux scénarios de mise à l'échelle élastiques complexes des entreprises clientes.
Documentation de référence :
https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale/
https://support.huaweicloud.com/usermanual-cce/cce_10_0415.html
Cliquez pour suivre et découvrir les nouvelles technologies de Huawei Cloud dès que possible~
L'équipe chinoise d'IA de Microsoft a fait ses valises et s'est rendue aux États-Unis, impliquant des centaines de personnes. Combien de revenus un projet open source inconnu peut-il rapporter ? Huawei a officiellement annoncé que la position de la station miroir open source de l'Université des sciences et technologies de Yu Huazhong a été ajustée. L'accès au réseau externe a été officiellement ouvert. Les fraudeurs ont utilisé TeamViewer pour transférer 3,98 millions ! Que doivent faire les fournisseurs de postes de travail à distance ? La première bibliothèque de visualisation frontale et fondateur du célèbre projet open source de Baidu, ECharts - un ancien employé d'une société open source bien connue qui "est allée à la mer" a annoncé la nouvelle : après avoir été interpellé par ses subordonnés, le technicien Le leader est devenu furieux et grossier et a licencié l'employée enceinte. OpenAI a envisagé d'autoriser l'IA à générer du contenu pornographique. Microsoft a déclaré à la Fondation Rust qu'elle avait fait un don de 1 million de dollars américains. Veuillez me dire quel est le rôle de time.sleep(6) ici. ?