web-dev-qa-db-fra.com

À Kubettes, comment puis-je accumuler un déploiement à zéro quand il est inactif

Je gère un service assez intensif de ressources sur un cluster Kubettes pour soutenir les activités CI. Seule une seule réplique est nécessaire, mais elle utilise beaucoup de ressources (16 CPU), et elle n'est nécessaire que pendant les heures de travail en général (de la semaine, de 8 heures à 18h00). Mon cluster s'exécute dans un nuage et est configuré avec l'autoscalage par instance, de sorte que ce service est mis à l'échelle à zéro, cette instance peut être terminée.

Le service est un code tiers qui ne peut pas être modifié (bien, pas facilement). C'est un service HTTP assez typique autre que ce que son travail est assez intensif de la CPU.

Quelles options existent pour réduire automatiquement ce déploiement jusqu'à zéro quand il est inactif?

Je préférerais ne pas configurer un horaire à l'échelle de haut/bas pendant les heures de travail, car occasionnellement des activités CI sont effectuées en dehors des heures normales. J'aimerais que la mise à l'échelle soit dynamique (par exemple, une échelle à zéro lorsqu'elle est inactive pendant> 30 minutes ou à une échelle à une fois lorsque une connexion entrante arrive).

6
Patrick

basé sur la documentation, il ne supporte pas les minreplicas = 0 jusqu'à présent. Lisez ce fil: - https://github.com/kubettes/kubernettes/issues/69687 . et pour configurer HPA correctement, vous pouvez utiliser cette formule pour configurer la POD requise: -

desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]

vous pouvez également configurer HPA en fonction des métriques Prométheus Suivez ce lien: -

https://itnext.io/horizontal-pod-autoscale-with-custom-metrics-8cb13e9d475

0