Aller au contenu principal

MongoDB sur GKE Autopilot

MongoDB sur GKE Autopilot

MongoDB est la base de données documentaire NoSQL la plus populaire au monde, utilisée par des organisations de toutes tailles pour la gestion de contenu, les pipelines de données IoT, les backends mobiles et les feature stores d'IA/ML lorsque les schémas relationnels sont trop rigides. Ce module déploie MongoDB sur GKE Autopilot en s'appuyant sur le socle App_GKE, qui provisionne et gère l'infrastructure Google Cloud et Kubernetes partagée.

Ce guide se concentre sur les services cloud utilisés par MongoDB et sur la manière de les explorer et de les exploiter depuis la console Google Cloud et la ligne de commande. Pour les mécanismes communs à toutes les applications GKE — Workload Identity, entrée, mise à l'échelle automatique, CI/CD, Cloud Armor, IAP, Binary Authorization, VPC Service Controls, sauvegardes et cycle de vie du déploiement — reportez-vous au guide du socle App_GKE plutôt que de les répéter ici.


1. Vue d'ensemble​

MongoDB s'exécute sous forme de StatefulSet sur GKE Autopilot. Le déploiement assemble un ensemble ciblé de services Google Cloud :

FonctionnalitéService Google CloudRemarques
CalculGKE Autopilot (StatefulSet)1 vCPU / 2 GiB par défaut, mode nœud unique
Stockage persistantPersistent Disk (PVC SSD)StorageClass standard-rwo, 20 GiB par défaut, monté sur /data/db
SecretsSecret ManagerMot de passe root MongoDB généré automatiquement
Images de conteneurArtifact RegistryImage officielle mongo mise en miroir dans le registre du projet
RéseauVPC / Service GKEClusterIP par défaut pour un accès interne au cluster ; passez à LoadBalancer uniquement si un accès externe au protocole filaire brut est nécessaire

Valeurs par défaut judicieuses à connaître d'emblée :

  • Pas de Cloud SQL. MongoDB est son propre moteur de base de données ; Cloud SQL n'est pas provisionné et enable_cloudsql_volume est codé en dur à false.
  • Un PVC adossé à un SSD est indispensable. Sans PVC de StatefulSet, toutes les données sont perdues à chaque redémarrage du pod. stateful_pvc_enabled = true sélectionne automatiquement un StatefulSet.
  • Mode nœud unique uniquement. min_instance_count et max_instance_count sont tous deux fixés à 1. Les replica sets MongoDB nécessitent une configuration supplémentaire de clé d'authentification et de rs.initiate() qui sort du cadre de ce module.
  • Le mot de passe root est généré automatiquement. MONGO_INITDB_ROOT_PASSWORD est généré et stocké dans Secret Manager lors du premier déploiement ; vous ne le définissez jamais en clair.
  • Sondes TCP sur le port 27017. MongoDB parle son propre protocole filaire binaire, et non HTTP — les sondes HTTP échouent systématiquement.
  • fsGroup 999 est codé en dur. L'image officielle MongoDB exécute mongod avec l'UID/GID 999 ; Kubernetes attribue automatiquement le point de montage du PVC à ce GID.

2. Services Google Cloud et comment les explorer​

Toutes les commandes supposent que vous avez exécuté gcloud container clusters get-credentials <cluster> --region <region> --project <project> et que PROJECT, REGION et NAMESPACE sont définis. L'espace de noms et les autres identifiants figurent dans les sorties du déploiement.

A. GKE Autopilot — le StatefulSet MongoDB​

MongoDB s'exécute sous forme de StatefulSet à pod unique sur Autopilot, qui provisionne les nœuds à la demande et facture le CPU et la mémoire réellement demandés par le pod. Autopilot doit provisionner un nœud, attacher le PVC et récupérer l'image avant le démarrage de mongod — la sonde de démarrage accorde jusqu'à ~8 minutes pour couvrir ces étapes.

  • Console : Kubernetes Engine → Workloads → sélectionnez le StatefulSet MongoDB pour consulter l'état du pod, les événements et l'utilisation des ressources. Kubernetes Engine → Services & Ingress affiche la ClusterIP ou l'adresse IP externe du LoadBalancer.
  • CLI :
    kubectl get statefulset,pods,svc -n "$NAMESPACE"
    kubectl logs -n "$NAMESPACE" statefulset/<statefulset-name> --tail=100
    kubectl describe pod -n "$NAMESPACE" <pod-name> # events and probe status

Consultez App_GKE pour savoir comment sont gérés Autopilot, la mise à l'échelle et le type de charge de travail StatefulSet.

B. Persistent Disk — PVC SSD​

Les données MongoDB résident sur un PVC Persistent Disk SSD (StorageClass standard-rwo) monté sur /data/db dans le conteneur. Le PVC est provisionné automatiquement par GKE à la création du StatefulSet et persiste indépendamment des redémarrages de pods, des mises à jour progressives et des évictions de nœuds.

  • Console : Kubernetes Engine → Storage → PersistentVolumeClaims pour voir le PVC et son volume associé. Compute Engine → Disks pour voir le Persistent Disk sous-jacent.
  • CLI :
    kubectl get pvc -n "$NAMESPACE"
    kubectl describe pvc -n "$NAMESPACE" <pvc-name> # capacity, access mode, status
    # Check disk usage inside the running pod:
    kubectl exec -n "$NAMESPACE" <pod-name> -- df -h /data/db

La taille du PVC est définie au moment du déploiement par stateful_pvc_size (valeur par défaut 20Gi). La taille du PVC ne peut pas être réduite après sa création. Provisionnez au moins 2 à 3 fois le volume de données initial attendu pour éviter le plantage No space left on device.

C. Secret Manager — mot de passe root​

Le mot de passe root MongoDB (MONGO_INITDB_ROOT_PASSWORD) est généré automatiquement lors du premier déploiement et stocké sous forme de secret Secret Manager. Il est injecté dans le pod via le pilote Secret Store CSI et n'apparaît jamais en clair.

  • Console : Security → Secret Manager.
  • CLI :
    gcloud secrets list --project "$PROJECT" --filter="name~mongo-root-password"
    gcloud secrets versions access latest \
    --secret=<secret-name> --project "$PROJECT"

Pour récupérer le mot de passe root en vue d'une connexion mongosh :

ROOT_PASS=$(gcloud secrets versions access latest \
--secret=<resource-prefix>-mongo-root-password --project "$PROJECT")
kubectl exec -n "$NAMESPACE" <pod-name> -- \
mongosh --username admin --password "$ROOT_PASS" --authenticationDatabase admin

Consultez App_GKE pour l'intégration Secret Store CSI et la rotation.

D. Artifact Registry — image de conteneur​

L'image officielle mongo est mise en miroir dans l'Artifact Registry du projet avant le déploiement, de sorte que les pods ne la récupèrent jamais directement depuis Docker Hub. L'URI de l'image en miroir figure dans la sortie container_image.

  • Console : Artifact Registry → sélectionnez le dépôt.
  • CLI :
    gcloud artifacts docker images list \
    <region>-docker.pkg.dev/$PROJECT/<registry-repo> --project "$PROJECT"

E. Réseau et entrée​

Par défaut, le Service Kubernetes de MongoDB est de type ClusterIP — MongoDB est un backend de base de données destiné à être consommé par d'autres charges de travail du cluster (par exemple RocketChat), et ClusterIP fournit déjà un accès inter-espaces de noms au sein du cluster via le DNS ; aucun LoadBalancer n'est donc nécessaire. Passez à LoadBalancer uniquement si un accès externe au protocole filaire brut de MongoDB (port 27017) est réellement nécessaire.

  • Console : Kubernetes Engine → Services & Ingress ; VPC network → IP addresses.
  • CLI :
    kubectl get svc -n "$NAMESPACE"
    # Get the LoadBalancer external IP:
    kubectl get svc -n "$NAMESPACE" <service-name> \
    -o jsonpath='{.status.loadBalancer.ingress[0].ip}'

La sortie mongodb_endpoint fournit l'URI de connexion prête à l'emploi (mongodb://<ip>:27017 pour LoadBalancer ou l'URI DNS interne au cluster pour ClusterIP).

Consultez App_GKE pour les domaines personnalisés, les adresses IP statiques et les détails sur Cloud CDN.

F. Cloud Logging et Monitoring​

Les sorties stdout/stderr des pods (y compris les journaux de démarrage et de requêtes de mongod) sont envoyées vers Cloud Logging. Les métriques GKE et Persistent Disk sont envoyées vers Cloud Monitoring.

  • Console : Logging → Logs Explorer ; Monitoring → Dashboards / Alerting.
  • CLI :
    gcloud logging read \
    'resource.type="k8s_container" AND resource.labels.namespace_name="'"$NAMESPACE"'"' \
    --project "$PROJECT" --limit 50

3. Comportement de l'application MongoDB​

  • Mode autonome uniquement. Ce module déploie une seule instance mongod. Les replica sets MongoDB (change streams, transactions, réplication de l'oplog) nécessitent des fichiers de clé d'authentification et une configuration rs.initiate() qui sortent du cadre de ce module. max_instance_count est imposé à 1.
  • Initialisation au premier démarrage. Au tout premier démarrage avec un PVC vierge, MongoDB crée l'utilisateur root (MONGO_INITDB_ROOT_USERNAME, par défaut admin) et la base de données initiale (MONGO_INITDB_DATABASE, par défaut admin). Ces valeurs sont immuables une fois le PVC écrit — les modifier après le premier déploiement n'a aucun effet (le script d'initialisation ne s'exécute qu'une fois par répertoire de données).
  • Dimensionnement du cache WiredTiger. Le moteur de stockage WiredTiger de MongoDB dimensionne par défaut son cache à environ (memory_limit − 1 GiB) × 0.5. Avec la limite par défaut de 2Gi, le cache fait ~500 MiB, ce qui suffit pour le développement. Portez memory_limit à 4Gi–8Gi pour les charges de travail documentaires de production.
  • Tolérance de la sonde de démarrage. GKE Autopilot doit provisionner un nœud, attacher le PVC et récupérer l'image avant le démarrage de mongod. La sonde de démarrage accorde jusqu'à ~8 minutes (failure_threshold = 45, vérification toutes les 10 secondes). Lors des redémarrages ultérieurs du pod sur un nœud déjà prêt, le démarrage est beaucoup plus rapide.
  • Vidage du journal à l'arrêt. termination_grace_period_seconds est fixé à 60 secondes (par défaut) afin que Kubernetes attende que mongod vide le journal d'écriture anticipée avant de tuer le processus de force — ce qui évite la corruption du journal.
  • Chaîne de connexion. Le format correct pour se connecter avec l'identifiant root est :
    mongodb://<username>:<password>@<host>:<port>/<db>?authSource=admin
    Le paramètre authSource=admin est obligatoire pour se connecter à des bases de données autres que admin avec le compte root.
  • Sondes de santé. Les sondes de démarrage et de vivacité utilisent toutes deux type = "TCP" sur le port 27017. MongoDB parle son propre protocole filaire binaire — les sondes HTTP échouent systématiquement avec une erreur de protocole.
  • Aucune tâche planifiée. MongoDB ne nécessite aucun job cron côté plateforme. Les tâches applicatives (construction d'index, index TTL) sont gérées depuis l'application ou via mongosh.

4. Variables de configuration​

Les variables sont regroupées exactement comme elles apparaissent sur la plateforme de déploiement. Seuls les paramètres propres à MongoDB ou notables pour celui-ci sont listés ; toutes les autres entrées sont héritées d'App_GKE avec leur comportement et leurs valeurs par défaut standard.

Groupe 1 — Projet et identité​

VariableValeur par défautDescription
project_id(obligatoire)Projet Google Cloud cible.
regionus-central1Région de la charge de travail et des ressources régionales.

Groupe 2 — Environnement de déploiement​

VariableValeur par défautDescription
tenant_iddemoSuffixe court qui rend les noms de ressources uniques par environnement.
support_users[]Adresses e-mail auxquelles sont accordés l'accès au projet et les alertes de surveillance.
resource_labels{}Libellés appliqués à toutes les ressources pour le suivi des coûts et de la propriété.

Groupe 3 — Identité de l'application​

VariableValeur par défautDescription
application_namemongodbNom de base des ressources. Ne le modifiez pas après le premier déploiement.
application_display_nameMongoDBNom convivial affiché dans la console.
application_description(défini)Annotation de description de la charge de travail.
application_version7.0Tag de version de l'image MongoDB ; incrémentez-le pour déployer une nouvelle version. Les mises à niveau majeures modifient le format sur disque — testez sur un réplica avant de mettre à niveau la production.
mongo_root_usernameadminNom d'utilisateur root (MONGO_INITDB_ROOT_USERNAME). Immuable après la première écriture du PVC.
mongo_initdb_databaseadminBase de données initiale créée au premier démarrage. Immuable après la première écriture du PVC.

Groupe 4 — Exécution et mise à l'échelle​

VariableValeur par défautDescription
deploy_applicationtrueDéfinissez false pour provisionner uniquement l'infrastructure.
cpu_limit1000mCPU par pod. Passez à 2000m pour les charges de travail riches en agrégations.
memory_limit2GiMémoire par pod. Cache WiredTiger ≈ (limit − 1 GiB) × 0.5 ; passez à 4Gi–8Gi en production.
min_instance_count1Nombre minimal de réplicas. Doit valoir 1 en mode nœud unique.
max_instance_count1Nombre maximal de réplicas. Imposé à 1 — les replica sets ne sont pas pris en charge par ce module.
container_port27017Port du protocole filaire MongoDB. Définit à la fois le port du Service et le port d'écoute de mongod.
enable_image_mirroringtrueMet en miroir l'image mongo dans Artifact Registry avant le déploiement.
enable_vertical_pod_autoscalingfalseLaisse Autopilot ajuster automatiquement les demandes de ressources.

Groupe 5 — Variables d'environnement et secrets​

VariableValeur par défautDescription
environment_variables{}Paramètres supplémentaires non secrets. MONGO_INITDB_ROOT_USERNAME et MONGO_INITDB_DATABASE sont injectés automatiquement.
secret_environment_variables{}Références Secret Manager injectées sous forme de variables d'environnement. Fournissez ici MONGO_INITDB_ROOT_PASSWORD pour utiliser un mot de passe personnalisé au lieu de celui généré automatiquement.
secret_propagation_delay30Nombre de secondes d'attente après la création du secret du mot de passe root avant le démarrage du pod.
secret_rotation_period2592000sFréquence des notifications de rotation de Secret Manager.

Groupe 6 — Backend GKE et cluster​

VariableValeur par défautDescription
service_typeClusterIPClusterIP limite l'accès à l'intérieur du cluster (suffisant pour les consommateurs internes au cluster via le DNS) ; LoadBalancer expose le port 27017 avec une adresse IP externe.
workload_typenullSe résout automatiquement en StatefulSet lorsque stateful_pvc_enabled = true.
session_affinityNoneAucune persistance de session n'est nécessaire pour les connexions au protocole filaire MongoDB.
gke_cluster_name""Nom du cluster GKE ; laissez vide pour la découverte automatique.
namespace_name""Espace de noms Kubernetes ; laissez vide pour le générer automatiquement.
termination_grace_period_seconds60Délai de grâce permettant à mongod de vider le journal avant SIGKILL.
deployment_timeout600Nombre de secondes pendant lesquelles Terraform attend le déploiement du StatefulSet (couvre le provisionnement du nœud et l'attachement du PVC).
enable_network_segmentationfalseCrée des ressources NetworkPolicy Kubernetes pour restreindre le trafic entrant/sortant.

Groupe 7 — StatefulSet / PVC​

VariableValeur par défautDescription
stateful_pvc_enablednullDéfinissez true pour activer un StatefulSet adossé à un PVC. Obligatoire pour la durabilité des données.
stateful_pvc_size20GiTaille du stockage. Ne peut pas être réduite après la création ; provisionnez 2 à 3 fois le volume de données attendu.
stateful_pvc_mount_path/data/dbDoit correspondre au --dbpath de MongoDB. Ne le modifiez pas.
stateful_pvc_storage_classstandard-rwoValeur SSD par défaut de GKE Autopilot. Utilisez premium-rwo pour les charges de travail à haut débit.
stateful_headless_servicenullCrée un Service headless pour des entrées DNS de pod stables.
stateful_pod_management_policynullOrdre de création des pods OrderedReady ou Parallel.
stateful_update_strategynullRollingUpdate ou OnDelete.
stateful_fs_group0GID fsGroup (remarque : 999 est codé en dur dans le module pour MongoDB — cette variable n'a aucun effet).

Groupe 8 — Quota de ressources​

VariableValeur par défautDescription
enable_resource_quotafalsePlafonne le CPU, la mémoire et le nombre d'objets de l'espace de noms.
quota_memory_requests / quota_memory_limits""Doivent utiliser des unités binaires (4Gi, 8192Mi) — les entiers nus sont interprétés comme des octets et bloquent la planification.

Groupe 9 — Règles de fiabilité​

VariableValeur par défautDescription
enable_pod_disruption_budgettrueProtège la disponibilité pendant les mises à niveau des nœuds.
pdb_min_available1Nombre minimal de pods disponibles pendant une interruption (pour MongoDB à nœud unique, 1 est la seule valeur raisonnable).
enable_topology_spreadfalseRépartit les pods entre les zones.

Groupe 10 — Observabilité et santé​

VariableValeur par défautDescription
startup_probe_configTCP, 20s delay, failure_threshold 18Entrée de sonde TCP au niveau du socle sur le port 27017. La véritable sonde de démarrage du conteneur est codée en dur dans le module avec failure_threshold = 45 (~8 minutes) pour couvrir le provisionnement du nœud GKE Autopilot, l'attachement du PVC et la récupération de l'image — voir la section 3.
health_check_configTCP, 30s delay, failure_threshold 3Sonde de vivacité TCP sur le port 27017.
uptime_check_configdésactivéTest de disponibilité — désactivé par défaut, car MongoDB est un service interne.
alert_policies[]Règles d'alerte facultatives sur les métriques Cloud Monitoring.

Groupe 11 — Jobs et tâches planifiées​

VariableValeur par défautDescription
initialization_jobs[]Jobs Kubernetes exécutés avant le démarrage du pod MongoDB. Non requis pour MongoDB — aucun job d'amorçage de la base de données n'est nécessaire.
cron_jobs[]CronJobs planifiés. MongoDB n'a aucune tâche planifiée obligatoire côté plateforme.

Groupe 12 — CI/CD et intégration GitHub​

Intégration Cloud Build / Cloud Deploy standard d'App_GKE — voir App_GKE. Entrées clés : enable_cicd_trigger, github_repository_url, github_token, enable_cloud_deploy.

Groupe 13 — Système de fichiers (NFS)​

VariableValeur par défautDescription
enable_nfsfalseNFS n'est pas nécessaire pour MongoDB — utilisez plutôt le PVC du StatefulSet.

Groupe 14 — Cloud Storage et Artifact Registry​

VariableValeur par défautDescription
create_cloud_storagefalseMongoDB ne nécessite pas de bucket GCS.
manage_storage_kms_iam / enable_artifact_registry_cmekfalseOptions CMEK pour le stockage et le registre.
max_images_to_retain7Nombre d'images récentes à conserver dans Artifact Registry.

Groupe 17 — Sauvegarde et maintenance​

VariableValeur par défautDescription
backup_schedule0 2 * * *Cron de sauvegarde automatique mongodump (UTC). Vérifiez que le job de sauvegarde est actif — une sauvegarde manquée combinée à la suppression du PVC entraîne une perte de données définitive.
backup_retention_days7Durée de conservation ; portez-la à 30–90 pour la production ou la conformité.

Groupe 19 — Domaine personnalisé et IP statique​

VariableValeur par défautDescription
enable_custom_domaintrueProvisionne l'entrée HTTPS Gateway (nom d'hôte <ip>.nip.io sans configuration lorsque application_domains est vide) — inhabituel pour un service de base de données non HTTP ; le trafic mongodb:// réel est servi par le Service LoadBalancer L4, et non par cette entrée HTTP(S).
application_domains[]Noms de domaine personnalisés.
reserve_static_iptrueAdresse IP externe stable d'un redéploiement à l'autre.
network_tags["nfsserver"]Tags réseau des nœuds/pods pour les règles de pare-feu.

Groupe 20 — Identity-Aware Proxy (IAP)​

IAP n'est pas recommandé pour MongoDB (une base de données, et non une application web). Restreignez plutôt l'accès via service_type = "ClusterIP" ou une NetworkPolicy Kubernetes.

VariableValeur par défautDescription
enable_iapfalseNon recommandé pour MongoDB. Utilisez une NetworkPolicy ou ClusterIP.

Groupe 21 — Cloud Armor​

VariableValeur par défautDescription
enable_cloud_armorfalseAssocie une règle Cloud Armor au backend de l'Ingress.
admin_ip_ranges[]Plages CIDR autorisées pour l'accès privilégié.

Groupe 22 — VPC Service Controls et journalisation d'audit​

VariableValeur par défautDescription
enable_vpc_scfalseApplique un périmètre VPC-SC (nécessite organization_id).
vpc_cidr_ranges / vpc_sc_dry_run(défini)Plages CIDR du niveau d'accès / mode simulation (dry-run).
enable_audit_loggingfalseJournaux Cloud Audit Logs détaillés.

5. Sorties​

Ces valeurs sont renvoyées lors d'un déploiement réussi et constituent le moyen le plus rapide de localiser et d'explorer les ressources en cours d'exécution.

SortieDescription
service_nameNom du Service Kubernetes.
namespaceEspace de noms dans lequel s'exécute la charge de travail.
service_cluster_ipClusterIP interne au cluster.
stage_service_cluster_ipsTable des ClusterIP des services propres à chaque étape (Cloud Deploy).
service_external_ipAdresse IP externe du LoadBalancer (lorsque le type de service est LoadBalancer).
mongodb_endpointURI de connexion MongoDB prête à l'emploi (mongodb://...). Les déploiements ClusterIP renvoient l'URI DNS interne au cluster ; les déploiements LoadBalancer renvoient l'URI externe.
statefulset_nameNom du StatefulSet.
storage_bucketsBuckets Cloud Storage créés (vide par défaut pour MongoDB).
network_name / network_exists / regionsRéseau VPC, présence, régions disponibles.
container_image / container_registryImage déployée et dépôt Artifact Registry.
monitoring_enabled / monitoring_notification_channelsÉtat de la surveillance et canaux.
initialization_jobsNoms des éventuels jobs d'initialisation exécutés.
deployment_id / tenant_id / resource_prefixIdentifiants de nommage.
project_id / project_numberIdentifiants du projet.
cicd_enabled / cicd_configurationÉtat et détails du CI/CD.
github_repository_url / github_repository_owner / github_repository_nameDétails du dépôt GitHub.
artifact_registry_repository / cloudbuild_trigger_name / cloudbuild_trigger_idRegistre et déclencheur de build.
kubernetes_readyIndique si le cluster/la charge de travail est prêt.
vpc_sc_enabled / vpc_sc_perimeter_name / vpc_sc_dry_run_modeÉtat de VPC-SC.
audit_logging_enabled / artifact_registry_cmek_enabledÉtat de la journalisation d'audit et de CMEK.

6. Pièges de configuration et valeurs par défaut judicieuses​

Risque : Critique (perte de données / panne / sécurité) — Élevé (service dégradé) — Moyen (coût ou dégradation partielle) — Faible (mineur).

ParamètreValeur judicieuseRisqueConséquence en cas d'erreur
stateful_pvc_enabledtrueCritiqueSans PVC, toutes les données MongoDB sont perdues à chaque redémarrage de pod, mise à jour progressive ou éviction de nœud.
stateful_pvc_mount_path/data/db (par défaut)CritiqueDoit correspondre au --dbpath de MongoDB. Un montage ailleurs fait écrire mongod dans la couche éphémère — toutes les données sont perdues au redémarrage.
MONGO_INITDB_ROOT_PASSWORDgénéré automatiquement (par défaut)CritiqueMongoDB démarre sans authentification si la variable d'environnement est absente. Tout appelant à l'intérieur du cluster obtient un accès administrateur sans restriction. Ne la supprimez ni ne la videz jamais.
mongo_root_username / mongo_initdb_databaseà définir une seule foisCritiqueIntégrés au répertoire de données lors de la première initialisation. Les modifier après la création du PVC provoque un échec du démarrage.
quota_memory_requests / quota_memory_limitsunités binaires (4Gi)CritiqueLes entiers nus sont interprétés comme des octets par Kubernetes, ce qui bloque toute planification de pods.
stateful_pvc_size20Gi au minimum, à dimensionner selon la chargeÉlevéUn disque plein fait planter mongod avec No space left on device. Provisionnez 2 à 3 fois le volume de données attendu. La taille ne peut pas être réduite après la création.
memory_limit4Gi en productionÉlevéLe cache WiredTiger représente ~50 % de (limit − 1 GiB). Un cache insuffisant provoque des E/S disque excessives et une forte dégradation des requêtes.
workload_typenull (StatefulSet automatique avec PVC)ÉlevéDéfinir explicitement Deployment avec stateful_pvc_enabled = true échoue au moment du plan. MongoDB autonome nécessite un StatefulSet pour une association stable du PVC.
application_versiontester d'abord les mises à niveau majeuresÉlevéLes mises à niveau de version majeure de MongoDB modifient le format de stockage sur disque. Le retour à une version antérieure n'est pas pris en charge. Testez toujours sur un réplica du PVC de production.
backup_scheduleactif et testéÉlevéMongoDB n'a pas de sauvegarde automatique intégrée en dehors du job mongodump de ce module. Une sauvegarde manquée combinée à la suppression du volume persistant lors de la destruction entraîne une perte de données définitive.
service_typeClusterIP pour les services de la couche base de données (déjà la valeur par défaut)ÉlevéLoadBalancer expose le port 27017 avec une adresse IP publique. Conservez la valeur par défaut ClusterIP sauf si un accès externe est explicitement requis, et utilisez des règles de pare-feu ou une NetworkPolicy si vous la changez.
termination_grace_period_seconds60 (par défaut)ÉlevéUn délai de grâce trop court risque de corrompre le journal à l'arrêt si les écritures en cours n'ont pas été vidées.
cpu_limit2000m en productionMoyenLes pipelines d'agrégation et la construction d'index sont gourmands en CPU. En dessous de 500m, les requêtes complexes se dégradent fortement.
replica setautonome uniquementÉlevéCe module est à nœud unique. Les change streams, les transactions et la réplication de l'oplog nécessitent un replica set — utilisez un déploiement basé sur Helm pour les topologies multinœuds.
enable_iapfalse (par défaut)FaibleIAP ne s'applique pas aux services de base de données. Utilisez plutôt une NetworkPolicy ou ClusterIP pour le contrôle d'accès.

Pour le comportement du socle évoqué tout au long de ce guide — IAM et Workload Identity, mise à l'échelle automatique, entrée et certificats, CI/CD, Cloud Armor, IAP, Binary Authorization, VPC-SC, sauvegardes et mise en miroir des images — consultez App_GKE. MongoDB_GKE n'a pas de module Common distinct ; toute la configuration propre à MongoDB est autonome au sein du module.

Need RAD to do something it does not do yet? Request it on the roadmap, or vote on what is already there.