Ce document explique comment déployer Spanner Omni sur des machines virtuelles (VM). Ce déploiement ne comporte pas de chiffrement. Si vous souhaitez configurer rapidement un environnement de test ou de validation de concept pour évaluer Spanner Omni, la création d'un déploiement non sécurisé est le moyen le plus rapide de commencer, car vous n'avez pas besoin de configurer l'authentification mTLS ni d'autres mesures de sécurité. Toutefois, en raison des risques de sécurité, tels que le trafic réseau non chiffré et l'accès ouvert, nous ne recommandons pas cette configuration pour les environnements de production. Vous pouvez choisir entre un déploiement sur un seul serveur ou un déploiement régional sur plusieurs zones.
La version Preview de Spanner Omni ne prend pas en charge le chiffrement TLS et cesse d'écrire des données 90 jours après la création d'un déploiement. Pour bénéficier d'un accès anticipé à l'édition avec toutes les fonctionnalités, contactez Google.
Avant de commencer
Avant de configurer un déploiement non sécurisé, assurez-vous de remplir les conditions suivantes :
Accès SSH : disposez d'un accès SSH à chaque machine du déploiement pour télécharger et exécuter le binaire Spanner Omni.
Connectivité : toutes les machines du déploiement peuvent se connecter les unes aux autres.
Mise en réseau : votre configuration réseau autorise la communication TCP sur les ports
15000à15025.Stockage : chaque machine dispose de suffisamment d'espace de stockage pour héberger les données gérées par le déploiement.
Configuration système requise : assurez-vous que votre configuration répond à toutes les exigences du système.
Configuration vSphere : si vous exécutez Spanner Omni sur la plate-forme de virtualisation vSphere, désactivez la virtualisation du compteur d'horodatage (TSC). Ajoutez
monitor_control.virtual_rdtsc = FALSEau fichier de configuration.vmxde la machine virtuelle.
Étape 1 : Déterminer la topologie de déploiement
Spanner Omni utilise une hiérarchie d'emplacements, de zones et de serveurs pour définir sa topologie de déploiement. Vous pouvez choisir parmi les topologies suivantes en fonction de vos objectifs de disponibilité :
Serveur unique : le déploiement comporte un seul serveur qui s'exécute sur une seule machine.
Zone unique : le déploiement s'exécute sur plusieurs serveurs répartis sur une seule zone.
Emplacement unique, zones multiples (déploiement répliqué) : le déploiement s'exécute sur plusieurs serveurs répartis sur plusieurs zones dans un seul emplacement.
Emplacements multiples, zones multiples : le déploiement s'exécute sur plusieurs serveurs répartis sur plusieurs emplacements et plusieurs zones.
Pour en savoir plus, consultez Termes clés de Spanner Omni et Configurations de déploiement de Spanner Omni.
Pour tout déploiement autre qu'un serveur unique, créez un fichier de configuration YAML nommé deployment.yaml qui définit la topologie. Ne spécifiez que les serveurs racine dans ce fichier. Ajoutez les serveurs non racine ultérieurement.
Exemple : Déploiement multizone répliqué
L'exemple suivant montre une configuration pour un déploiement régional sur trois zones.
name: regional-deployment
location:
- name: us-central1
zone:
- name: us-central1-a
location: us-central1
single_server: false
root_server:
- host: rootserver1
- name: us-central1-b
location: us-central1
single_server: false
root_server:
- host: rootserver2
- name: us-central1-c
location: us-central1
single_server: false
root_server:
- host: rootserver3
Exemple : Déploiement multizone
L'exemple suivant montre une configuration pour un déploiement sur trois emplacements.
name: multi-location-deployment
location:
- name: us-central1
- name: europe-west2
- name: asia-southeast1
zone:
- name: us-central1-a
location: us-central1
single_server: false
root_server:
- host: rootserver1
- name: europe-west2-a
location: europe-west2
single_server: false
root_server:
- host: rootserver2
- name: asia-southeast1-a
location: asia-southeast1
single_server: false
root_server:
- host: rootserver3
Étape 2 : Télécharger et configurer le binaire
Répétez ces étapes pour chaque machine du déploiement :
Créez un répertoire pour le binaire et accédez à celui-ci.
Téléchargez le binaire :
gsutil cp gs://spanner-omni/VERSION/spanner-omni-VERSION-linux-x86_64.tar.gz .Vous pouvez également utiliser
scpou d'autres outils de transfert de fichiers pour copier le binaire sur vos VM.Extrayez le binaire :
tar -xvf spanner-omni-VERSION-linux-x86_64.tar.gz
Étape 3 : Démarrer les serveurs
Créez un répertoire de base sur chaque serveur pour stocker les données, les métadonnées et les journaux. Si un serveur doit redémarrer, spécifiez le même répertoire pour assurer la continuité.
Option A : Déploiement sur un seul serveur
Pour un déploiement sur un seul serveur, exécutez la commande suivante :
spanner start-single-server --base-dir=SPANNER_BASE_DIR
Une fois le serveur démarré, passez à l'étape 6 : Interagir avec le déploiement.
Option B : Déploiement avec scaling horizontal
Pour les déploiements avec scaling horizontal, démarrez le serveur sur chaque machine. Les options --server-address et --zone correspondent aux valeurs de votre configuration de déploiement. Le réseau résout le server_address.
spanner start --root --server-address=RESOLVABLE_HOSTNAME --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Exemple :
spanner start --root --server-address=rootserver1 --zone=us-central-1a --base-dir=./spanbasedir
Étape 4 : Créer le déploiement
Pour créer le déploiement, procédez comme suit :
Copiez le fichier
deployment.yamlque vous avez créé à l'étape 1 : Déterminer la topologie de déploiement sur l'un des serveurs racine.Sur ce serveur racine, exécutez la commande suivante pour créer le déploiement :
spanner deployment create --config-file=deployment.yamlLa console de chaque machine affiche des messages indiquant que le déploiement est prêt.
Validez le déploiement en listant les zones :
spanner deployment zones listLe résultat liste les emplacements, les zones et les serveurs que vous avez spécifiés dans
deployment.yaml.
Étape 5 : Configurer un équilibreur de charge (facultatif)
Configurez un équilibreur de charge TCP avec les détails suivants :
| Paramètre | Valeur |
|---|---|
| Protocole | TCP |
| Adresse IP du backend | Adresses IP de vos serveurs |
| Port | 15000 (ou le port que vous utilisez dans l'option --server-address) |
| URL de vérification de l'état | http://SERVER_IP:15012/healthz |
| Stratégie d'équilibrage | Round robin (à tour de rôle) |
Pour les déploiements multizones, vous pouvez configurer un équilibreur de charge par emplacement et un équilibreur de charge principal pour répartir le trafic sur tous les emplacements.
Étape 6 : Interagir avec le déploiement
Une fois votre déploiement prêt, vous pouvez interagir avec lui à l'aide de la CLI à partir de n'importe quelle VM ou machine locale. Si vous exécutez la CLI à partir d'une machine distincte, telle qu'un ordinateur portable de développeur, téléchargez et extrayez le package de la CLI. Pour en savoir plus, consultez Démarrage rapide à l'aide de la CLI Spanner Omni.
Pour interagir avec votre déploiement, procédez comme suit :
Créez une base de données :
spanner --deployment-endpoint=LOAD_BALANCER_IP_OR_SERVER_IP databases create DATABASE_NAMEOuvrez l'interface SQL :
spanner sql --database=DATABASE_NAMECréez une table et insérez des données :
CREATE TABLE names ( nameId INT64 NOT NULL, name STRING(100) ) PRIMARY KEY (nameId); INSERT INTO names (nameId, name) VALUES (1, "Jack");Vérifiez la base de données et les données :
Pour lister les bases de données :
bash spanner databases listLa sortie ressemble à ceci :
NAME ÉTAT VERSION_RETENTION_PERIOD EARLIEST_VERSION_TIME ENABLE_DROP_PROTECTION DATABASE_NAME READY 1h 2025-02-07T12:25:30Z faux Pour interroger la table:
bash spanner sql --database=DATABASE_NAMEExécutez les commandes SQL suivantes :
SHOW TABLES; SELECT * FROM names;
Étape 7 : Mettre à l'échelle le déploiement (facultatif)
Pour mettre à l'échelle la capacité dans une zone, vous pouvez ajouter des serveurs non racine. Exécutez la commande suivante sur chaque nouveau serveur :
spanner start --server-address=NON_ROOT_HOSTNAME --join-servers=SERVER1:PORT1,SERVER2:PORT2,SERVER3:PORT3 --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Étape 8 : Observer le déploiement (facultatif)
Pour surveiller l'état et les performances de votre déploiement, vous pouvez configurer la collecte, la visualisation et les alertes de métriques. Vous pouvez également collecter des traces distribuées pour analyser la latence des requêtes.
Configurer Prometheus
Les serveurs Spanner Omni exportent des métriques au format Prometheus sur le port 15012. Ajoutez le code suivant à vos scrape_configs dans prometheus.yml :
scrape_configs:
- job_name: 'spanner'
static_configs:
- targets: ['HOST1:15012', 'HOST2:15012', 'HOSTN:15012']
Configurer Grafana
Pour afficher les données de surveillance dans Grafana :
Provisionnez la source de données Prometheus en créant un fichier dans
provisioning/datasources:apiVersion: 1 datasources: - name: Prometheus uid: prometheus type: prometheus access: proxy url: http://PROMETHEUS_HOST:PROMETHEUS_PORT jsonData: httpMethod: POST manageAlerts: false prometheusType: Prometheus prometheusVersion: PROMETHEUS_VERSION cacheLevel: 'High' disableRecordingRules: false incrementalQueryOverlapWindow: 10mCréez un tableau de bord dans l'interface utilisateur Grafana ou provisionnez-le à l'aide de
provisioning/dashboards.
Configurer des alertes
Configurez des alertes à l'aide de l'interface utilisateur Grafana ou des fichiers de configuration. Par exemple, vous pouvez déclencher une alerte si le 95e centile (p95) de la latence des transactions dépasse 100 millisecondes. Pour obtenir la liste des alertes disponibles, consultez Utiliser les alertes Prometheus pour surveiller Spanner Omni.
Collecter et analyser des traces
Collectez des informations de traçage distribué au format OTLP et visualisez-les avec des outils tels que Jaeger.
Configurez un collecteur de traces compatible avec OTLP. Pour Jaeger :
export COLLECTOR_OTLP_ENABLED=true jaeger-all-in-oneAssurez-vous que le port OTLP autorise le trafic réseau entre Spanner Omni et le collecteur.
Définissez la variable d'environnement
SPANNER_BOX_OTLP_TRACE_EXPORTER_ENDPOINTet démarrez les serveurs Spanner Omni :export SPANNER_BOX_OTLP_TRACE_EXPORTER_ENDPOINT=COLLECTOR_HOST:COLLECTOR_PORT spanner start --root --server-address=RESOLVABLE_HOSTNAME --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR