Aller au contenu principal

VictoriaMetrics sur GKE Autopilot

VictoriaMetrics sur GKE Autopilot

VictoriaMetrics est une base de données de séries temporelles rapide, économique et compatible avec Prometheus — le backend auto-hébergé de stockage de métriques de référence à associer au module Grafana de ce catalogue. Elle accepte l'ingestion via Prometheus remote_write, le protocole de ligne InfluxDB, Graphite et OpenTSDB en HTTP simple, et répond aux requêtes compatibles PromQL. Ce module déploie VictoriaMetrics sur GKE Autopilot en s'appuyant sur le socle App_GKE, qui provisionne et gère l'infrastructure Google Cloud et Kubernetes partagée.

Il n'existe aucune variante Cloud Run de ce module — voir le §1 ci-dessous pour en connaître la raison.

Ce guide se concentre sur les services cloud utilisés par VictoriaMetrics 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​

VictoriaMetrics s'exécute sur Autopilot sous forme de charge de travail de base de données de séries temporelles à nœud unique et avec état. Le déploiement assemble un ensemble ciblé de services Google Cloud :

FonctionnalitéService Google CloudRemarques
CalculGKE AutopilotUn seul pod VictoriaMetrics, 1 vCPU / 1 GiB par défaut
Stockage persistantPersistent Disk via un PVC de StatefulSetRequis — monté sur /victoria-metrics-data ; classe de stockage standard (HDD pd-standard) par défaut
SecretsaucunVictoriaMetrics n'a aucune authentification intégrée — aucun secret Secret Manager n'est créé
EntréeCloud Load BalancingClusterIP par défaut (interne uniquement, à dessein — voir ci-dessous) ; LoadBalancer ou domaine personnalisé lorsque la collecte ou l'interrogation depuis l'extérieur est réellement nécessaire

Pourquoi uniquement GKE : VictoriaMetrics stocke ses données de séries temporelles sous forme de fichiers locaux sur disque mappés en mémoire (mmap) (confirmé par la FAQ officielle : "VictoriaMetrics stores data in block storage..."). Cela est incompatible avec le système de fichiers éphémère propre à chaque révision de Cloud Run, ainsi qu'avec la sémantique de verrouillage de fichiers et de mmap de GCS FUSE — la même catégorie de contrainte déjà documentée pour ClickHouse, Elasticsearch et MongoDB dans ce catalogue. VictoriaMetrics_GKE exige donc un véritable PersistentVolumeClaim de type bloc (stateful_pvc_enabled = true par défaut) et n'a pas d'équivalent Cloud Run.

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

  • Aucune base de données SQL, aucun Redis. VictoriaMetrics gère sa propre TSDB intégrée. Aucune instance Cloud SQL n'est créée ; enable_redis est codé en dur à false.
  • Une seule instance par défaut, et ce n'est pas un réglage « à augmenter plus tard ». max_instance_count = 1 — VictoriaMetrics en mode nœud unique n'a aucun clustering ni aucune réplication intégrés. Deux pods écrivant sur le même PVC corrompraient les données.
  • Le PVC du StatefulSet est requis, pas facultatif. Contrairement à certaines applications avec état de ce catalogue pour lesquelles un repli GCS FUSE existe, VictoriaMetrics n'a aucun repli — ses fichiers de données mappés en mémoire ne sont pas compatibles avec FUSE, même en mode dégradé. stateful_pvc_enabled = true est la valeur par défaut et doit le rester.
  • ClusterIP par défaut — c'est correct, pas un bug. VictoriaMetrics est conçu pour être alimenté et interrogé en interne par des clients compatibles Prometheus (un émetteur remote_write, vmagent ou Grafana) s'exécutant dans le même cluster, et non exposé comme une application web publique. C'est le même schéma, confirmé comme correct, que celui déjà documenté pour Qdrant et PhpMyAdmin dans ce catalogue — ne le « corrigez » pas en LoadBalancer en supposant qu'il s'agit du bug de copier-coller ClusterIP touchant l'ensemble du parc constaté ailleurs ; ce n'est vraiment pas le cas ici.
  • Classe de stockage HDD par défaut. stateful_pvc_storage_class = "standard" (pd-standard), et non la classe standard-rwo sur SSD que de nombreux autres modules avec état utilisent par défaut — VictoriaMetrics est documenté comme tolérant aux stockages à latence élevée et à faible IOPS, ce qui évite de puiser dans le quota serré SSD_TOTAL_GB.
  • Configuration par flags CLI, pas par variables d'environnement. VictoriaMetrics n'a aucune configuration par variables d'environnement. L'ENTRYPOINT de l'image personnalisée fixe directement -storageDataPath, -httpListenAddr et -retentionPeriod — voir le §4.
  • Un unique point de terminaison /health sert à la fois la sonde de démarrage et la sonde de vivacité — il n'y a pas de distinction séparée entre disponibilité et activité.

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 — la charge de travail VictoriaMetrics​

Le pod VictoriaMetrics s'exécute sur Autopilot, qui facture le CPU et la mémoire que le pod demande réellement. max_instance_count = 1 maintient un seul pod en fonctionnement — la mise à l'échelle horizontale n'est volontairement pas prise en charge pour ce déploiement à nœud unique.

  • Console : Kubernetes Engine → Workloads → sélectionnez la charge de travail VictoriaMetrics pour voir les pods, les événements et l'utilisation des ressources. Kubernetes Engine → Services & Ingress affiche la ClusterIP (ou l'IP externe si LoadBalancer est utilisé).
  • CLI :
    kubectl get pods,svc -n "$NAMESPACE"
    kubectl logs -n "$NAMESPACE" statefulset/<service-name> --tail=100
    kubectl describe pod -n "$NAMESPACE" -l app=<service-name>

Consultez App_GKE pour la gestion d'Autopilot et du type de charge de travail (StatefulSet).

B. Stockage persistant — PVC du StatefulSet (le seul backend pris en charge)​

VictoriaMetrics conserve ses fichiers de données de séries temporelles dans /victoria-metrics-data. Contrairement à plusieurs autres applications avec état de ce catalogue, il n'existe aucun repli GCS FUSE — un véritable PersistentVolumeClaim de type bloc est requis. La classe de stockage est standard (HDD pd-standard) par défaut.

  • Console : Kubernetes Engine → Storage → PersistentVolumeClaims. Compute Engine → Disks pour voir le Persistent Disk sous-jacent.
  • CLI :
    # PVC status
    kubectl get pvc -n "$NAMESPACE"
    kubectl describe pvc -n "$NAMESPACE"

    # Confirm the mount and inspect on-disk data files inside the pod
    kubectl exec -n "$NAMESPACE" <pod-name> -- ls -la /victoria-metrics-data

Consultez App_GKE pour les mécanismes des PVC de StatefulSet et les options de classe de stockage en général.

C. Aucun secret Secret Manager​

VictoriaMetrics n'a aucune authentification intégrée ; VictoriaMetrics_Common ne génère et ne stocke donc aucun secret. L'accès est entièrement contrôlé au niveau réseau — par la valeur par défaut ClusterIP, ou par IAP / Cloud Armor si le service est délibérément rendu accessible de l'extérieur. Il n'y a rien à récupérer dans Secret Manager pour ce module.

D. Réseau et entrée​

Par défaut, la charge de travail n'est exposée qu'à l'intérieur du cluster via un service ClusterIP — le mode d'accès prévu est Grafana, vmagent ou un émetteur Prometheus remote_write s'exécutant dans le même cluster. Passez service_type à LoadBalancer uniquement si vous avez réellement besoin de collecter ou d'interroger les données depuis l'extérieur du cluster (et ajoutez d'abord vos propres contrôles d'accès — VictoriaMetrics lui-même n'en applique aucun).

  • Console : Kubernetes Engine → Services & Ingress ; VPC network → IP addresses (lorsqu'une IP statique est réservée).
  • CLI :
    kubectl get svc -n "$NAMESPACE"
    gcloud compute addresses list --project "$PROJECT"

Consultez App_GKE pour les détails sur les domaines personnalisés, Cloud CDN et l'IP statique.

E. Cloud Logging et Monitoring​

Les sorties stdout/stderr des pods sont envoyées vers Cloud Logging ; les métriques GKE sont envoyées vers Cloud Monitoring. Des tests de disponibilité (sur /health) et des règles d'alerte facultatifs sont disponibles, mais ils n'ont de sens qu'une fois le service accessible depuis l'endroit d'où part le test.

  • 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 VictoriaMetrics​

  • Aucun amorçage de base de données, aucun job d'initialisation. VictoriaMetrics gère sa propre TSDB intégrée. C'est un binaire autonome sans notion de schéma ni de migration — aucun job d'initialisation n'est injecté par défaut, et aucune n'est nécessaire. La charge de travail commence à servir dès que son répertoire de données est monté.
  • Point de terminaison de santé. Un unique point de terminaison /health non authentifié (qui renvoie OK) sert à la fois les sondes de démarrage et d'activité — il n'y a pas de séparation entre disponibilité et activité, contrairement aux applications dont la séquence de démarrage est plus lourde.
  • Comment les métriques ENTRENT. VictoriaMetrics accepte plusieurs protocoles d'ingestion en HTTP simple sur le port 8428 :
    • Prometheus remote_write → POST /api/v1/write
    • Protocole de ligne InfluxDB → /write
    • Protocole Graphite plaintext / pickle
    • OpenTSDB /api/put et telnet put
    • Son propre agent piloté par une configuration de collecte, vmagent, peut également être déployé en sidecar (via additional_services) pour récupérer les métriques depuis des points de terminaison Prometheus /metrics, à l'image de ce que ferait un serveur Prometheus autonome.
  • Comment l'INTERROGER. VictoriaMetrics expose une API de requête compatible PromQL (/api/v1/query, /api/v1/query_range, /api/v1/series, ...) — la même surface que l'API HTTP de Prometheus elle-même. Pointez Grafana vers elle en utilisant le type de source de données Prometheus, avec l'URL définie sur le nom DNS interne du service VictoriaMetrics (ou son URL externe, s'il est exposé), sans plugin requis.
  • La rétention est intégrée à l'image, et non configurable à l'exécution. -retentionPeriod=12 (12 mois) est compilé dans l'ENTRYPOINT de l'image personnalisée (voir le §4). Elle n'est pas exposée sous forme de variable Terraform — la modifier nécessite d'éditer VictoriaMetrics_Common/scripts/Dockerfile et de forcer un nouveau build.
  • Aucun clustering. Ce module déploie VictoriaMetrics en mode nœud unique. VictoriaMetrics dispose également d'une édition « cluster » (vminsert/vmstorage/ vmselect) pour la mise à l'échelle horizontale, mais il s'agit d'une topologie de déploiement entièrement différente, qui n'est pas celle que provisionne ce module.

4. Variables de configuration​

Les variables sont regroupées exactement comme elles apparaissent sur la plateforme de déploiement. Seuls les paramètres propres à VictoriaMetrics ou notables pour lui 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(required)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_namevictoriametricsNom de base des ressources. Ne le modifiez pas après le premier déploiement.
application_display_nameVictoriaMetricsNom convivial affiché dans la console.
application_versionlatestTag de l'image VictoriaMetrics. latest est associé à une version épinglée et éprouvée (v1.148.0) comme argument de build du Dockerfile, car l'image amont n'a pas de tag latest flottant qui lui soit propre.

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.
memory_limit1GiMémoire par pod. Environ 1 GB de RAM pour 1M de séries temporelles actives est la recommandation de dimensionnement amont ; maintenez l'utilisation propre de VictoriaMetrics sous environ 50 % de la mémoire disponible pour laisser de la marge au cache de pages du système d'exploitation.
min_instance_count1Nombre minimal de réplicas. Conservez 1 — un StatefulSet avec replicas=0 n'a rien pour servir les requêtes.
max_instance_count1Nombre maximal de réplicas. Doit rester à 1 — aucun clustering ni aucune réplication en mode nœud unique.
enable_vertical_pod_autoscalingfalseLaisser Autopilot ajuster automatiquement les demandes de ressources (désactive le HPA sur le CPU et la mémoire).
enable_image_mirroringtrueDupliquer l'image VictoriaMetrics dans Artifact Registry pour éviter les limites de débit de Docker Hub.
timeout_seconds300Délai d'expiration des requêtes en secondes (0–3600).
termination_grace_period_seconds60Nombre de secondes pendant lesquelles Kubernetes attend, après SIGTERM, que VictoriaMetrics écrive sur disque les écritures en cours.

Groupe 5 — Variables d'environnement et secrets​

VariableValeur par défautDescription
environment_variables{}Variables d'environnement supplémentaires. VictoriaMetrics ne lit pas les variables d'environnement pour sa configuration — uniquement des flags CLI intégrés à l'image (§4 ci-dessus) ; les valeurs définies ici n'ont aucun effet sur le binaire en cours d'exécution, sauf s'il lit justement cette variable exacte, ce qui n'est pas le cas par défaut.
secret_environment_variables{}Correspondance variable d'environnement → nom de secret Secret Manager. Non renseignée par défaut — VictoriaMetrics n'a aucune authentification intégrée.
secret_propagation_delay30Nombre de secondes d'attente après la création d'un secret avant de poursuivre.
secret_rotation_period2592000sPériode de rappel de rotation de Secret Manager (30 jours par défaut). Non applicable, sauf si vous ajoutez vos propres secrets.

Groupe 6 — Backend GKE et cluster​

VariableValeur par défautDescription
gke_cluster_name""Nom du cluster cible. Découvert automatiquement s'il est vide.
gke_cluster_selection_modeprimaryStratégie de sélection du cluster : explicit, round-robin ou primary.
namespace_name""Espace de noms Kubernetes. Généré automatiquement s'il est vide.
workload_typenullSe résout automatiquement en StatefulSet lorsque stateful_pvc_enabled = true (la valeur par défaut).
service_typeClusterIPMode d'exposition du Service. ClusterIP est correct et voulu ici — voir le §1.
session_affinityNoneNone ou ClientIP.
enable_network_segmentationfalseCréer des ressources NetworkPolicy Kubernetes pour la micro-segmentation.
configure_service_meshfalseActiver l'injection Istio pour l'espace de noms de l'application.

Groupe 7 — Configuration du StatefulSet​

VariableValeur par défautDescription
stateful_pvc_enabledtrueRequis — les fichiers de données sur disque local de VictoriaMetrics, mappés en mémoire, ne sont pas compatibles avec GCS FUSE, même comme repli. Doit rester à true.
stateful_pvc_size20GiTaille du PVC par pod. Dimensionnez-le pour contenir toute la fenêtre de rétention (12 mois par défaut) plus le surcoût des fusions — environ 20 % d'espace libre recommandé.
stateful_pvc_mount_path/victoria-metrics-dataChemin du PVC dans le conteneur. Doit correspondre au flag -storageDataPath intégré à l'image.
stateful_pvc_storage_classstandardHDD pd-standard par défaut — VictoriaMetrics est documenté comme tolérant aux faibles IOPS, ce qui évite le quota serré SSD_TOTAL_GB.
stateful_headless_servicenullCréer un Service headless pour des identités réseau stables.
stateful_pod_management_policynullOrderedReady garantit des redémarrages séquentiels sûrs.
stateful_update_strategynullRollingUpdate pour des mises à jour sans interruption de service.
stateful_fs_group3000GID fsGroup défini dans le contexte de sécurité du pod. VictoriaMetrics s'exécute avec l'UID 1000/GID 2000 ; 3000 garantit que le PVC est accessible en écriture par le groupe.

Groupe 8 — Quota de ressources​

VariableValeur par défautDescription
enable_resource_quotafalsePlafonner 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éger la disponibilité pendant les mises à niveau des nœuds. Avec max_instance_count = 1, le pod unique ne peut pas être évincé tout en respectant pdb_min_available = 1 — tenez-en compte dans la planification des mises à niveau des nœuds.
pdb_min_available1Nombre minimal de pods disponibles pendant les interruptions volontaires.
enable_topology_spreadfalseSans intérêt avec un seul réplica.

Groupe 10 — Observabilité et santé​

VariableValeur par défautDescription
startup_probe/health, délai de 15sSonde HTTP.
liveness_probe/health, délai de 30sSonde HTTP. Même point de terminaison que pour le démarrage — VictoriaMetrics ne distingue pas disponibilité et activité.
uptime_check_configdisabledTest de disponibilité Cloud Monitoring facultatif sur /health. Utile uniquement si le service est accessible depuis l'endroit d'où part le test.
alert_policies[]Règles d'alerte facultatives sur les métriques.

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

VariableValeur par défautDescription
initialization_jobs[]VictoriaMetrics ne nécessite aucun job d'initialisation par défaut — il est autonome, sans notion de schéma ni de migration.
cron_jobs[]CronJobs Kubernetes pour la maintenance périodique, par exemple un export scripté d'instantané vmbackup.
additional_services[]Services sidecar ou auxiliaires déployés aux côtés de VictoriaMetrics — par exemple un sidecar vmagent de collecte et de transfert.

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

Intégration standard Cloud Build / Cloud Deploy d'App_GKE — consultez App_GKE. Entrées principales : enable_cicd_trigger, github_repository_url, github_token, enable_cloud_deploy, enable_binary_authorization.

Groupe 13 — NFS​

VariableValeur par défautDescription
enable_nfsfalseVictoriaMetrics utilise un PVC de type bloc pour le stockage — activez NFS uniquement pour des jobs personnalisés nécessitant un système de fichiers partagé.
nfs_mount_path/mnt/nfsChemin de montage dans le conteneur.
network_tags["nfsserver"]Tags réseau des nœuds/pods GKE ; nfsserver est requis lorsque NFS est activé.

Groupe 14 — Cloud Storage et Artifact Registry​

VariableValeur par défautDescription
create_cloud_storagetrueProvisionner les buckets GCS définis dans storage_buckets. VictoriaMetrics lui-même ne déclare aucun bucket par défaut — son intégration GCS/S3 sert uniquement aux sauvegardes, jamais de stockage servant les requêtes en direct.
storage_buckets / gcs_volumes[]Buckets supplémentaires / montages GCS FUSE, sans rapport avec le stockage principal.
manage_storage_kms_iam / enable_artifact_registry_cmekfalseOptions CMEK.
max_images_to_retain7Nombre maximal d'images de conteneur récentes à conserver dans Artifact Registry (pour l'image issue du build personnalisé).

Groupe 17 — Sauvegarde et maintenance​

VariableValeur par défautDescription
backup_schedule0 2 * * *Planification cron des sauvegardes automatiques (UTC). Aucun mécanisme de sauvegarde par défaut n'est câblé pour VictoriaMetrics au-delà du point d'accroche générique de planification du socle — utilisez cron_jobs avec vmbackup pour des sauvegardes par instantané tenant compte de l'application.
backup_retention_days7Durée de rétention.
enable_backup_import / backup_source / backup_uri / backup_formatoptions de restaurationRestaurer à partir d'une sauvegarde lors du déploiement.

Groupe 19 — Domaine personnalisé, IP statique et réseau​

VariableValeur par défautDescription
enable_custom_domaintrueProvisionner la Kubernetes Gateway API avec des certificats SSL. N'a de sens que lorsque le service est délibérément rendu accessible de l'extérieur — service_type reste ClusterIP par défaut.
application_domains[]Noms d'hôte à servir.
reserve_static_iptrueRéserver une IP externe stable.

Groupe 20 — Identity-Aware Proxy (IAP)​

VariableValeur par défautDescription
enable_iapfalseExiger une connexion Google via Kubernetes Gateway. Nécessite enable_custom_domain. Recommandé plutôt qu'un simple LoadBalancer si VictoriaMetrics est un jour exposé hors du cluster, puisqu'il n'a aucune authentification propre.
iap_authorized_users / iap_authorized_groups[]Personnes autorisées à accéder.
iap_oauth_client_id / iap_oauth_client_secret""Requis lorsque IAP est activé (sensibles).

Groupe 21 — Cloud Armor​

VariableValeur par défautDescription
enable_cloud_armorfalseAssocier une règle Cloud Armor (WAF) au backend de l'Ingress GKE.
admin_ip_ranges[]Plages CIDR autorisées pour l'accès privilégié.
enable_cdnfalseActiver Cloud CDN via GCPBackendPolicy. Sans intérêt pour une API de métriques.

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

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

5. Aucune base de données SQL, aucun Redis, aucun secret​

Trois éléments que ce module ne provisionne délibérément pas, contrairement à la plupart des modules applicatifs de ce catalogue :

  • Aucune instance Cloud SQL. database_type = "NONE" est fixé par VictoriaMetrics_Common. VictoriaMetrics est lui-même une base de données.
  • Aucun Redis. enable_redis est codé en dur à false dans main.tf, ce qui remplace la valeur par défaut true d'App_GKE.
  • Aucun secret Secret Manager. La sortie secret_ids de VictoriaMetrics_Common vaut toujours {}. Il n'y a ni clé d'API, ni mot de passe administrateur, ni identifiant d'aucune sorte à récupérer — le contrôle d'accès se fait entièrement au niveau réseau (service_type, IAP, Cloud Armor).

6. Sorties​

Ces valeurs sont renvoyées après 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_ipsCorrespondance des ClusterIP des services propres à chaque étape (Cloud Deploy).
service_external_ipIP externe du LoadBalancer (lorsqu'une IP statique est réservée).
service_urlURL permettant d'atteindre l'API HTTP de VictoriaMetrics — DNS interne *.svc.cluster.local par défaut.
statefulset_nameNom du StatefulSet.
storage_bucketsBuckets Cloud Storage créés — vide par défaut (VictoriaMetrics n'en déclare aucun).
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 de configuration personnalisés (vide par défaut).
deployment_id / tenant_id / resource_prefixIdentifiants de nommage.
project_id / project_numberIdentifiants du projet.
cicd_enabled / cicd_configurationÉtat et détails de la CI/CD.
github_repository_url / github_repository_owner / github_repository_nameDépôt GitHub connecté.
artifact_registry_repository / cloudbuild_trigger_name / cloudbuild_trigger_idRegistre et déclencheur de build.
kubernetes_readyIndique si le cluster et la charge de travail sont prêts.
vpc_sc_enabled / vpc_sc_perimeter_name / vpc_sc_dry_run_modeÉtat de VPC-SC.
audit_logging_enabled / artifact_registry_cmek_enabledÉtat des journaux d'audit et de CMEK.

7. 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_enabledtrue (par défaut, requis)CritiqueSans PVC, il n'existe aucun mode de stockage pris en charge pour ce module — les fichiers de données de VictoriaMetrics, mappés en mémoire, ne sont pas compatibles avec GCS FUSE, même comme repli. Ne le désactivez pas.
stateful_pvc_mount_path/victoria-metrics-data (par défaut)CritiqueDoit correspondre au flag -storageDataPath intégré à l'image personnalisée. En cas de discordance, le PVC est monté à un endroit où le binaire n'écrit jamais, et toutes les données résident dans la couche éphémère du pod — perdues à chaque redémarrage.
service_typeClusterIP (par défaut) — ne le « corrigez » pas en LoadBalancerCritique (en cas de modification imprudente)C'est la valeur par défaut confirmée comme correcte pour cette application, et non le bug de copier-coller ClusterIP touchant l'ensemble du parc documenté ailleurs dans ce catalogue. VictoriaMetrics n'a aucune authentification intégrée — l'exposer via LoadBalancer sans IAP ni Cloud Armor rend toutes les métriques ingérées lisibles, modifiables et supprimables par quiconque peut atteindre l'IP.
application_namedéfini une seule foisCritiqueImmuable après le premier déploiement ; le modifier recrée l'espace de noms et le PVC, ce qui fait perdre tout l'historique des métriques ingérées.
max_instance_count1 (fixe)CritiqueVictoriaMetrics en mode nœud unique n'a ni clustering ni réplication — un second réplica écrivant sur le même PVC corrompt les fichiers de données. Il n'existe aucun moyen pris en charge de mettre ce module à l'échelle horizontalement ; utilisez l'édition cluster distincte de VictoriaMetrics (que ce module ne déploie pas) si vous en avez besoin.
-retentionPeriod (intégré à l'image)12 mois (par défaut)ÉlevéCe n'est pas une variable Terraform — modifier la rétention nécessite d'éditer VictoriaMetrics_Common/scripts/Dockerfile et de forcer un nouveau build de l'image. Les données plus anciennes que la fenêtre de rétention sont supprimées par VictoriaMetrics lui-même selon son propre calendrier ; il n'y a ni suppression réversible ni corbeille.
environment_variablessans effet sur la configuration de VictoriaMetricsMoyenVictoriaMetrics ne lit aucune variable d'environnement pour sa propre configuration — uniquement des flags CLI intégrés à l'image. Ne vous attendez pas à ce qu'une variable d'environnement de type VICTORIA_METRICS_* modifie le comportement ; ce ne sera pas le cas, sauf si le binaire amont lit justement ce nom exact (ce qui n'est pas le cas par défaut).
stateful_pvc_sizegénéreuse (20 Gi+, à dimensionner selon rétention × débit d'ingestion)ÉlevéUn PVC sous-dimensionné se remplit à mesure que les données de la fenêtre de rétention s'accumulent ; un disque plein interrompt l'ingestion et les fusions. La capacité d'un PVC ne peut pas être réduite après sa création, et l'augmenter nécessite un redimensionnement tenant compte du StatefulSet.
stateful_pvc_storage_classstandard (HDD, par défaut)MoyenNe peut pas être modifiée après la création du PVC sans migration des données. Le HDD est la valeur par défaut raisonnable (VictoriaMetrics tolère les faibles IOPS) — passer à standard-rwo/SSD n'a d'intérêt que pour une très forte concurrence de requêtes et puise dans le quota serré SSD_TOTAL_GB.
application_versionépingler un tag précis en productionMoyenlatest est associé à une version épinglée fixe (v1.148.0) au moment du build dans ce module — contrairement à d'autres applications, « latest » ne dérive donc pas silencieusement ici lors d'un nouveau build. Épinglez tout de même explicitement si vous avez besoin d'une reproductibilité stricte entre environnements.
min_instance_count1MoyenLa mise à l'échelle à zéro ne laisse rien pour servir les requêtes ni accepter l'ingestion ; aucun comportement de rechargement au démarrage à froid n'est fiable pour un backend de métriques dont d'autres systèmes dépendent en permanence.
quota_memory_requests / _limitsunités binairesCritiqueLes entiers nus sont des octets et bloquent toute planification.
enable_iap / enable_cloud_armorà activer si service_type est un jour modifié par rapport à ClusterIPÉlevéVictoriaMetrics n'applique aucun contrôle d'accès propre — tout ce qui peut atteindre le port peut lire et écrire toutes les données de métriques.
pdb_min_available vs min_instance_counttenir compte de l'interactionMoyen1/1 (les valeurs par défaut) signifie que le pod unique ne peut pas être évincé volontairement tout en respectant le PDB — cela peut bloquer les mises à niveau des nœuds jusqu'à ce que Kubernetes se rabatte sur d'autres stratégies d'éviction.

Pour le comportement du socle évoqué tout au long de cette page — 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. La configuration applicative propre à VictoriaMetrics est décrite dans VictoriaMetrics_Common.

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