Ce document explique comment déployer Spanner Omni sur des machines virtuelles (VM). Ce déploiement n'est pas chiffré. Si vous souhaitez configurer rapidement un environnement de test ou de validation du concept pour évaluer Spanner Omni, la création d'un déploiement non sécurisé est le moyen le plus rapide de commencer, car elle ne nécessite pas de configurer mTLS ni d'autres mesures de sécurité. Toutefois, en raison des risques de sécurité (trafic réseau non chiffré, accès ouvert, etc.), 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 n'est pas compatible avec le chiffrement TLS. Pour bénéficier des fonctionnalités qui vous permettent de créer des déploiements avec chiffrement TLS, contactez Google afin de demander un accès anticipé à la version complète de Spanner Omni.
Avant de commencer
Avant de configurer un déploiement non sécurisé, assurez-vous de remplir les conditions suivantes :
Accès SSH : vous devez disposer 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 : la configuration de votre réseau autorise la communication TCP sur les ports
15000à15025.Stockage : chaque machine dispose d'un espace de stockage suffisant 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 Time Stamp Counter (TSC). Ajoutez
monitor_control.virtual_rdtsc = FALSEau fichier de configuration.vmxde la machine virtuelle.
Étape 1 : Déterminez 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 dans une seule zone.
Un seul emplacement, plusieurs zones (déploiement répliqué) : le déploiement s'exécute sur plusieurs serveurs répartis dans plusieurs zones d'un même emplacement.
Plusieurs emplacements, plusieurs zones : 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 multisite
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échargez et configurez le binaire
Répétez ces étapes pour chaque machine du déploiement :
Créez un répertoire pour le fichier binaire et accédez-y.
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 fichier 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 d'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 scale-out, démarrez le serveur sur chaque machine. Les indicateurs --server-address et --zone correspondent aux valeurs de la configuration de votre 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éez 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éterminez 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 informations suivantes :
| 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 multisites, vous pouvez configurer un équilibreur de charge par site et un équilibreur de charge principal pour répartir le trafic sur tous les sites.
Étape 6 : Interagir avec le déploiement
Une fois votre déploiement prêt, vous pouvez interagir avec lui à l'aide de la CLI depuis n'importe quelle VM ou machine locale. Si vous exécutez la CLI à partir d'une autre machine, comme un ordinateur portable de développeur, téléchargez et extrayez le package de la CLI. Pour en savoir plus, consultez le guide de démarrage rapide avec 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 le shell 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 :
NOM ÉTAT VERSION_RETENTION_PERIOD EARLIEST_VERSION_TIME ENABLE_DROP_PROTECTION DATABASE_NAME READY 1 h 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 : (Facultatif) Mettez à l'échelle le déploiement
Pour augmenter la capacité d'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 : (Facultatif) Observer le déploiement
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 les métriques au format Prometheus sur le port 15012. Ajoutez le code suivant à votre 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 les alertes à l'aide de l'interface utilisateur ou des fichiers de configuration de Grafana. 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 trace 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