Déployer plusieurs node pools dans AKS avec Terraform

Bonjour,

Dans un cluster Kubernetes, une bonne pratique consiste à utiliser plusieurs node pools. Cette possibilité apportent comme avantages :

  • La réduction des coûts en ciblant des machines plus modestes pour nos workload de dev/tests.
  • Prévoir des types de VM spécifiques (optimisées en CPU / stockage par exemple, ou avec le support GPU) pour exécuter certaines applications.

multinodepool 1 - Déployer plusieurs node pools dans AKS avec Terraform

En Terraform voici comment le déploiement de plusieurs node pools pour son cluster Azure Kubernetes Services se présentent. Il faut utiliser la ressource “azurerm_kubernetes_cluster_node_pool” :

aksmultinodepool - Déployer plusieurs node pools dans AKS avec Terraform

Et vous noterez que l’on rattache le node pool au cluster grâce à la propriété kubernetes_cluster_id.

Le template est disponible ici, attention au préalable à paramétrer le fichier provider.tf et valoriser un compte de stockage existant dans le main (le bloc backend) 🙂

Ici vous verrez que je prévois 3 node pools :

  • Le default node pool avec des VM Standard_D2_V2
  • un node pool optimisé en terme de CPU
    • Déployé en utilisant des zones de disponibilité
    • Avec un autoscale actif pour provisionner entre 1 et 3 VM suivant la sollicitation du cluster.
  • un dernier nod pool avec des VM plus limité, mais donc moins chère pour nos worloads de dev/test. D’ailleurs ce nodepool, dans un but d’économie est configuré pour utiliser des instances de type spot !

nodepoolspot - Déployer plusieurs node pools dans AKS avec Terraform

A bientôt !

Thomas

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.