>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Go

Comment Arrêter de Trop Payer pour le Cloud et Commencer à Vivre avec l'Autoscaler Kubernetes

Imaginez ceci : vous avez lancé une campagne publicitaire, le trafic explose, et vos pods dans Kubernetes commencent à « s'étouffer » sous la charge. Ou l'inverse : la nuit tombe, les utilisateurs dorment, mais des dizaines d'instances coûteuses continuent de tourner dans le cloud, grugeant le budget de votre entreprise. Ça vous parle ?

D'ordinaire, dans des moments pareils, les gens se souviennent de l'autoscaling. Dans l'écosystème Kubernetes, c'est le dépôt kubernetes/autoscaler qui s'en occupe. Ce n'est pas un simple utilitaire, mais tout un ensemble d'outils qui aident le cluster à « respirer » avec la charge. J'ai décidé de voir ce qu'il y a dedans et pourquoi c'est un incontournable pour tout environnement de production.

Ce qui se cache sous le capot

Le dépôt abrite trois composants principaux. Chacun résout sa propre tâche spécifique, et ils sont souvent confondus entre eux.

Cluster Autoscaler : Quand le « fer » ne suffit plus

C'est probablement l'outil le plus populaire de l'ensemble. Sa mission est simple : si des pods apparaissent dans le cluster qui ne peuvent pas démarrer par manque de ressources (statut Pending), Cluster Autoscaler contacte le fournisseur cloud pour demander l'ajout d'un nouveau nœud.

Ça fonctionne aussi dans l'autre sens. Si un nœud reste à moitié vide pendant longtemps et que ses pods peuvent être déplacés en toute sécurité vers d'autres nœuds, l'autoscaler supprime le matériel superflu. Ce sont des économies directes, surtout si vous êtes sur AWS, GCP ou Azure.

Vertical Pod Autoscaler (VPA) : La magie du calibrage des ressources

Là où Cluster Autoscaler change le nombre de nœuds, VPA change la « taille » des pods eux-mêmes. Souvent les développeurs définissent requests et limits à l'œil. Le résultat, c'est soit l'application qui plante avec OutOfMemory, soit on réserve 2 Go de RAM alors que seulement 200 Mo sont nécessaires.

VPA surveille la consommation réelle des ressources et ajuste automatiquement les limites. Le projet est actuellement en statut bêta, mais il fait déjà quelque chose de vraiment cool — le mode recommandation. Vous pouvez simplement observer les ressources qu'il suggère de définir, sans lui confier le redémarrage automatique des pods.

Addon Resizer : Micro-gestion pour les services système

C'est une version simplifiée de l'autoscaler vertical. Elle est destinée aux services dont la consommation de ressources évolue linéairement avec la taille du cluster. Par exemple, le metrics server a besoin de plus de mémoire si vous avez 100 nœuds au lieu de 10. Addon Resizer surveille le nombre de nœuds et ajuste les composants auxiliaires en conséquence.

Comment ça marche en pratique

Disons que vous utilisez Go. Pour commencer à travailler avec le code du projet en local, vous devez suivre la structure de chemins à laquelle Kubernetes est habitué. Le code doit se trouver dans k8s.io, pas dans github.com.

Point intéressant : Cluster Autoscaler prend en charge des dizaines de fournisseurs. Il n'y a pas que les géants comme AWS, mais aussi des solutions spécifiques pour les clusters bare-metal ou locaux. Si vous construisez votre propre service cloud, vous devrez implémenter l'interface CloudProvider, et votre cluster apprendra lui aussi à se mettre à l'échelle.

Pourquoi c'est important pour les développeurs

Beaucoup думают, что autoscaling — это задача DevOps-инженера. На самом деле, понимание того, как работает vertical-pod-autoscaler, значительно упрощает жизнь backend-разработчикам.

  1. Вы можете забыть о гадании при настройке ресурсов.
  2. Приложения становятся более устойчивыми к внезапным всплескам трафика.
  3. Вы видите реальный профиль потребления памяти и процессора вашего кода.

Кстати, в репозитории есть официальные Helm charts для быстрой установки. Это гораздо удобнее, чем пытаться развернуть манифесты вручную.

Стоит ли внедрять прямо сейчас?

Если вы работаете в облаке и счета за инфраструктуру растут, то Cluster Autoscaler — это основа. Он окупает время настройки в первый же месяц работы.

С Vertical Pod Autoscaler ситуация сложнее. Поскольку он перезапускает поды для изменения ресурсов (пока K8s не получит полноценные in-place resource updates), его нужно использовать осторожно. Я бы предложил начать с режима Recommender. Вы получите список советов по оптимизации ресурсов, но VPA ничего не изменит.

Проект жив и здоров, за ним стоит огромное сообщество (почти 9000 звезд и тысячи форков). Если у вас есть вопросы, люди активны в канале Kubernetes Slack #sig-autoscaling.

Так что если ваш кластер всё ещё статичен — посмотрите этот репозиторий. Пора заставить облако работать на вас, а не против вас.

Projets similaires