L'escalator est un autoscaler horizontal optimisé par lot ou travail pour Kubernetes
Il est conçu pour des charges de travail en lot ou en lot qui ne peuvent pas être drainées de force et déplacées lorsque le cluster doit évoluer - l'escalator s'assurera que les pods ont été achevés sur les nœuds avant de les terminer. Il est également optimisé pour augmenter le cluster le plus rapidement possible pour s'assurer que les pods ne sont pas laissés dans un état en attente.
Calculez les demandes et la capacité de déterminer s'il faut progresser, vers le bas ou rester à l'échelle actuelle
Attend jusqu'à ce que les gousses non-daémons sur les nœuds se terminent avant de terminer le nœud
Conçu pour fonctionner sur des groupes de l'échelle de mise à l'échelle sélectionnés pour permettre au Kubernetes Autoscaler par défaut de continuer à mettre à l'échelle des charges de travail basées sur les services
Terminer automatiquement les nœuds les plus anciens en premier
Prise en charge de Slack Space pour assurer un espace supplémentaire en cas de pic de gousses programmées
Ne termine pas ou ne facteur pas les nœuds bouclés en calculs - permet aux nœuds bouclés de persister pour le débogage
Prise en charge de différents fournisseurs de cloud - AWS uniquement pour le moment
Métriques de mise à l'échelle et d'utilisation
Élection du leader afin que vous puissiez exécuter un déploiement HA dans un cluster.
Prise en charge de base pour plusieurs types d'instances dans un groupe de nœuds.
La nécessité de cet autoScaler est dérivée de nos propres expériences avec de très grandes charges de travail par lots planifiées et l'autoscaler par défaut n'absence pas le cluster assez rapidement. Ces charges de travail ne peuvent pas être drainées par l'autoscaler par défaut et doivent se terminer avant que le nœud ne puisse être terminé.
Voir les documents
Kubernetes Version 1.24+. L'escalator a été testé et déployé sur 1,24+ et plus récent. Les anciennes versions de Kubernetes peuvent avoir des bogues ou des problèmes qui l'empêcheront de fonctionner correctement.
GO Version 1.20+
Les dépendances et leurs versions verrouillées se trouvent dans go.mod
et go.sum
.
# Récupérer les dépendances et construire une construction d'escalatory
aller exécuter cmd / main.go --kubEconfig = ~ / .kube / config --nodeGroups = nodegroups_config.yaml
Voir Déploiement pour la documentation complète de déploiement.
# Build the docker iMagedocker build -t atlassian / escalator. # Créer une configuration RBACKubectl Create -F Docs / Deployment / Escalator-RBAC.YAML # Create Config Map - Modifier pour s'adapter à votre NeedsKubectl Create -F DOCS / DELAGEMENT / ESCALATOR-CM.YAML # Créer DeploymentKubectl Créer -F Docs / Deployment / Escalator-Deployment.yaml
Voir configuration
faire un test
Par exemple, pour tester le package du contrôleur:
aller tester ./pkg/controller
Tirez les demandes, les problèmes et les commentaires bienvenus. Pour les demandes de traction:
Ajouter des tests pour de nouvelles fonctionnalités et des corrections de bogues
Suivez le style existant (nous utilisons les goreturns pour formater et escalator de peluches)
Séparer les modifications non liées en plusieurs demandes de traction
Voir les problèmes existants pour que les choses commencent à contribuer.
Pour des changements plus importants, assurez-vous d'abord de commencer une discussion en créant un problème et en expliquant le changement prévu.
Atlassian exige des contributeurs pour signer un contrat de licence de contributeur, connu sous le nom de CLA. Cela sert de dossier indiquant que le contributeur a le droit de contribuer le code / documentation / traduction au projet et est disposé à l'utiliser dans les distributions et les travaux dérivés (ou est disposé à transférer la propriété).
Avant d'accepter vos contributions, nous vous demandons de suivre le lien approprié ci-dessous pour signer numériquement le CLA. Le CLA d'entreprise est destiné à ceux qui contribuent en tant que membre d'une organisation et le CLA individuel est destiné à ceux qui contribuent en tant qu'individu.
CLA pour les contributeurs des entreprises
CLA pour les individus
Copyright (C) Atlassian 2018 et autres. Apache 2.0 sous licence, voir le fichier de licence.