• 1. provisionner un cluster kubernetes gke avec terraform pour des microservices node.js

  • 1.1. Prérequis

  • 1.2. Étape 1 : écrire la configuration Terraform

  • 1.3. Étape 2 : initialiser et déployer

  • 1.4. Étape 3 : déployer vos microservices Node.js

  • 1.5. Étape 4 : configurer l’auto-scaling et la surveillance

  • 1.6. Bonnes pratiques

  • 1.7. Conclusion

provisionner un cluster kubernetes gke avec terraform pour des microservices node.js

Image de provisionner un cluster kubernetes gke avec terraform pour des microservices node.js

Dans un contexte où l’agilité et la fiabilité de l’infrastructure sont primordiales, automatiser la création et la gestion d’un cluster Kubernetes sur Google Cloud (GKE) avec Terraform vous fait gagner en rapidité et en robustesse. Ce guide s’adresse aux équipes DevOps et aux développeurs Node.js qui souhaitent passer d’un déploiement manuel à une infrastructure as code reproductible.

provisionner un cluster kubernetes gke avec terraform pour des microservices node.js

Prérequis

  • Un compte Google Cloud Platform avec rôle Owner ou droit terraform.admin.
  • Terraform v1.5+ installé (terraform version).
  • gcloud SDK et kubectl configurés (gcloud init).
  • Docker pour packager vos microservices Docker.
  • Un projet Git contenant votre application Node.js.

Étape 1 : écrire la configuration Terraform

Créez un dossier infra/ et un fichier main.tf :

# main.tf
provider "google" {
  project = var.project_id
  region  = var.region
}

resource "google_container_cluster" "gke_cluster" {
  name     = "cluster-nodejs"
  location = var.zone

  initial_node_count = 3

  node_config {
    machine_type = "e2-medium"
    oauth_scopes = ["https://www.googleapis.com/auth/cloud-platform"]
  }
}

output "kubeconfig" {
  value = google_container_cluster.gke_cluster.endpoint
}

Définissez les variables dans variables.tf et un fichier terraform.tfvars pour project_id, region et zone.

Étape 2 : initialiser et déployer

$ cd infra
$ terraform init
$ terraform plan -out plan.tfplan
$ terraform apply plan.tfplan

Ce processus crée votre cluster GKE en moins de 5 minutes. Vous pouvez récupérer les identifiants :

$ gcloud container clusters get-credentials cluster-nodejs --zone europe-west1-b

Étape 3 : déployer vos microservices Node.js

Dans votre repo app/, ajoutez un Dockerfile et un manifeste Kubernetes :

# app/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ms-api
spec:
  replicas: 2
  selector:
    matchLabels:
      app: ms-api
  template:
    metadata:
      labels:
        app: ms-api
    spec:
      containers:
      - name: ms-api
        image: gcr.io/${PROJECT_ID}/ms-api:latest
        ports:
        - containerPort: 3000

Build et push de l’image :

$ docker build -t gcr.io/${PROJECT_ID}/ms-api:latest ./app
$ docker push gcr.io/${PROJECT_ID}/ms-api:latest
$ kubectl apply -f app/deployment.yaml

Étape 4 : configurer l’auto-scaling et la surveillance

# Horizontal Pod Autoscaler
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: ms-api-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: ms-api
  minReplicas: 2
  maxReplicas: 5
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 60

Installez le metrics-server sur GKE pour activer l’HPA.

Bonnes pratiques

  • État Terraform à distance : utilisez un backend gcs pour locker l’état.
  • Least privilege : créez un service account dédié à Terraform.
  • Versioning : définissez required_version et provider locked.
  • Gestion des secrets : stockez vos clés dans Secret Manager ou Vault.
  • Rollback : conservez les plans Terraform et suivez les logs GKE pour diagnostics.
  • Sécurité réseau : segmentez vos pods via NetworkPolicies.
  • Optimisation des coûts : passez sur des nœuds preemptibles pour les environnements non critiques.

Conclusion

Avec cette approche Infrastructure as Code, vous obtenez un cluster Kubernetes standardisé, facile à reproduire et à faire évoluer. Les microservices Node.js se déploient sans effort, et l’auto-scaling vous garantit de répondre dynamiquement à la charge.

Envie d’aller plus loin ? Découvrez nos offres d’augmentation d’effectif tech ou obtenez un devis gratuit pour votre projet.

Image de l’histoire secrète du hack viral de dropbox : comment un simple referral a conquis le monde

l’histoire secrète du hack viral de dropbox : comment un simple referral a conquis le monde

Découvrez l’anecdote du parrainage qui a propulsé Dropbox à 500 millions d’utilisateurs et les leçons de ce hack viral devenu cas d’école.
Image de next.js 14 alpha : performances de rendu et caching améliorés pour vos apps web

next.js 14 alpha : performances de rendu et caching améliorés pour vos apps web

Découvrez comment Next.js 14 alpha booste vos apps web avec un SSR plus rapide, un caching granulaire, un composant Image optimisé et des rapports de performance intégrés
Image de optimiser le pipeline ci/cd pour une application node.js avec github actions et docker v26

optimiser le pipeline ci/cd pour une application node.js avec github actions et docker v26

Optimisez étape par étape builds, tests, scan sécurité et déploiement d’une app Node.js avec un pipeline CI/CD sous GitHub Actions et Docker v26.
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Nous contacter