1 of 12

Ajuster la taille de son cluster Kubernetes pour aider les développeurs dans leurs recettes

Thomas Labarussias

1

Meetup virtuel AWS #8 - 19 mai 2021

2 of 12

Je suis

2

Thomas Labarussias

SRE chez Qonto

github.com/Issif

untappd.com/user/Issif

3 of 12

3

Leader européen de la gestion financière pour les PME et les indépendants

150k clients

présent dans 4 pays

4 of 12

Un peu de contexte

4

Tous nos microservices (~120) sont déployés dans Kubernetes

Un environnement de production stable et facile à anticiper

Un environnement de staging mouvant et difficile à anticiper

pas d’effet capital pour nous, désolé

5 of 12

Pourquoi notre staging remue?

5

Avant (25min)

manuel

statique

Maintenant (4min)

automatique

elastique

~150 développeurs

~50 microservices

utilisation de feature branches

1 branch = 1 environnement complet

6 of 12

Et ça donne quoi?

6

+12000 pods

7 of 12

Utilisation d’EKS

  • AWS gère pour nous le dimensionnement du control-plane
  • Accès aux fonctionnalités des autoscaling groups pour les nodes
  • déploiements et gestion du cycle de vie avec Terraform
  • Attention à la taille de vos subnets

Comment gérer tout ça?

7

8 of 12

Utilisation de cluster-autoscaler

  • Ajout de nodes si des pods sont en pending
  • Retrait des nodes si ils sont idle

Comment gérer tout ça?

8

9 of 12

Adaptation des configurations des ressources tierces

  • max_connections pour RDS PostgreSQL
  • utiliser des read replicas RDS PostgreSQL si possible

Anticiper les limites des services tiers

  • penser au rate limit des webservices

Comment gérer tout ça?

9

10 of 12

Spécialisation des nodes

  • Règles de scale-in/scale-out différentes
  • Types d’instance différents (€)
  • Cycles de vie différents (stabilité)

Comment gérer tout ça?

10

microservices

(70-300 nodes)

monitoring

(3-6 nodes)

proxies

(6-9 nodes)

11 of 12

Assurer le scale-down

  • aws-termination-handler
  • Extinction propre des pods avant de les forcer à se

Nettoyer

  • cronjob de cleanup (vieilles branches, branche mergées)

Comment gérer tout ça?

11

12 of 12

12

Questions?

merci