provisionner un cluster kubernetes gke avec terraform pour des microservices node.js
14/01/2026
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
Ownerou droitterraform.admin. - Terraform v1.5+ installé (
terraform version). - gcloud SDK et
kubectlconfiguré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
gcspour locker l’état. - Least privilege : créez un service account dédié à Terraform.
- Versioning : définissez
required_versionetproviderlocked. - 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.

