Aller au contenu principal

Tiers et quotas

Bêta

Fonctionnalité en cours de déploiement. L'interface décrite ici est celle de la prochaine livraison : elle peut encore évoluer, et n'est pas forcément activée sur votre tenant.

La grille et le quota sont en place sur tous les tenants ; la commande sng tenant tier est en cours de déploiement.

Chaque tenant a un tier qui fixe ce qu'il peut consommer : CPU et mémoire garantis, maximum utilisable, stockage, nombre de conteneurs, et, pour la supervision, nombre de moniteurs et fréquence minimale. Un tenant est créé en 3XS. Monter est toujours possible ; descendre exige que la consommation courante tienne dans le tier visé.

La grille​

TierCPU garantiMémoire garantieCPU maxMémoire maxStockageExemplaires
3XS0,51 Gi12 Gi2 Gi10
2XS0,51 Gi24 Gi10 Gi20
XS12 Gi48 Gi50 Gi40
S48 Gi48 Gi100 Gi40
M612 Gi612 Gi250 Gi60
L1248 Gi1248 Gi500 Gi120
XL32128 Gi32128 Gi1 Ti200
2XL64512 Gi64512 Gi2 Ti800
3XL192768 Gi192768 Gi4 Ti2000
  • Garanti : la somme des réservations de vos conteneurs (leur size) ne peut pas dépasser cette valeur. C'est ce que vous êtes sûr d'avoir.
  • Max : la somme des limites de vos conteneurs. Un conteneur peut y puiser ponctuellement quand de la capacité est disponible.
  • Stockage : volume total que vos volumes persistants peuvent demander.
  • Exemplaires : nombre d'exemplaires de services (réplicas compris, exécutions de jobs comprises) qui peuvent tourner en même temps.

Le quota de ressources est par tenant.

Le nombre de tenants est lui aussi limité : chaque compte paie au plus 5 tenants, tous clusters confondus. Au-delà, la création répond 403 tenant_quota_exceeded ; supprimer un tenant libère une place. Voir Cycle de vie d'un tenant.

Anciens noms

Les noms XXS, XXL et XXXL restent acceptés et désignent 3XS, 2XL et 3XL (sng tenant tier set XXL équivaut à sng tenant tier set 2XL). Un tenant créé avant cette grille garde les mêmes ressources : son tier s'affiche sous le nom correspondant de la grille actuelle (un ancien XS s'affiche 2XS, un ancien S s'affiche XS).

Ce que la supervision y ajoute​

Le même tier borne la supervision :

TierMoniteursIntervalle minimalPages de statutCanaux
3XS105 min12
2XS252 min15
XS501 min210
S751 min210
M10030 s310
L25030 s520
XL50030 s1020
2XL100030 s2050
3XL250030 s5050

Un moniteur qui demande un intervalle plus court que le minimum du tier est refusé (IntervalBelowTier), de même qu'un moniteur, une page ou un canal de trop (QuotaExceeded). Voir Moniteurs.

Lire le tier et la consommation​

sng tenant tier show
tenant acme: tier XS
RESOURCE USED HARD
requests.cpu 750m 1
requests.memory 1536Mi 2Gi
limits.cpu 1500m 4
limits.memory 3Gi 8Gi
requests.storage 5Gi 50Gi
…

requests.* se compare à la colonne Garanti, limits.* à la colonne Max, requests.storage au Stockage ; la dernière ligne compte les exemplaires en cours, à comparer à la colonne Exemplaires.

Juste après la création du tenant, la ligne usage not available yet (…) peut apparaître pendant une minute.

Avec --json, les mêmes données : {"tenant":"acme","tier":"XS","keys":[…],"hard":{…},"used":{…}}.

Changer de tier​

sng tenant tier list # la grille, depuis l'API
sng tenant tier set S
tenant acme: tier XS -> S (…)

Le changement est effectif dans la minute. Il exige l'action tier:write, incluse dans la policy admin.

Descendre n'est accepté que si la consommation courante tient dans le tier visé. Sinon :

tier too small: cannot downgrade to 3XS: requests.memory 1536Mi > 1Gi

Réduisez d'abord (sng app scale, suppression de services, size plus petit), puis réessayez. Si la consommation n'est pas encore connue (tenant tout juste créé), la descente est refusée par prudence (503) : réessayez une minute plus tard.

Quand le quota est atteint​

Un déploiement qui dépasserait le quota n'échoue pas à l'application du manifeste : il reste en attente, et le status de l'App porte la raison QuotaExceeded sur le service concerné. Trois issues : réduire la size du service, réduire le nombre d'exemplaires, ou monter de tier.

sng app describe shop
App : shop
Statut : en cours
SERVICE KIND IMAGE PHASE URL DETAIL
worker deployment acme/worker:2.1.0 Progressing - QuotaExceeded exceeded quota … requested: requests.memory=4Gi, used: requests.memory=1Gi, limited: requests.memory=2Gi

Si ça ne marche pas​

MessageCauseCorrection
tier too small: cannot downgrade to …La consommation actuelle dépasse le tier viséRéduire la consommation, puis réessayer
503 sur sng tenant tier setConsommation pas encore connueRéessayer une minute plus tard
forbidden (…)Il manque tier:writeDemander la policy admin à un administrateur
Un service reste en QuotaExceededLe tier est pleinRéduire size ou replicas, ou monter de tier

Pour aller plus loin​

  • La size d'un service (Tailles et ressources) dimensionne un conteneur ; le tier dimensionne le tenant. Les deux se composent.
  • Vous ne modifiez le tier que par sng tenant tier set ou l'API (PUT /v1/tier). Un manifeste ne peut pas le changer.
  • Routes API : GET /v1/tiers (grille), GET /v1/tier (tier courant et consommation), PUT /v1/tier avec {"tier":"S"}.

Voir aussi​