Questo documento spiega come eseguire il deployment di Spanner Omni sulle macchine virtuali (VM). Questo deployment non ha la crittografia. Se vuoi configurare rapidamente un ambiente di test o proof-of-concept per valutare Spanner Omni, la creazione di un deployment non sicuro è il modo più rapido per iniziare, perché non richiede la configurazione di mTLS o altre misure di sicurezza. Tuttavia, a causa dei rischi per la sicurezza, come il traffico di rete non criptato e l'accesso aperto, non consigliamo questa configurazione per gli ambienti di produzione. Puoi scegliere tra un deployment a server singolo o regionale su più zone.
La versione di anteprima di Spanner Omni non supporta la crittografia TLS. Per ottenere le funzionalità che ti consentono di creare deployment con la crittografia TLS, contatta Google per richiedere l'accesso anticipato alla versione completa di Spanner Omni.
Prima di iniziare
Prima di configurare un deployment non sicuro, assicurati di soddisfare i seguenti requisiti:
Accesso SSH: devi avere l'accesso SSH a ogni macchina nel deployment per scaricare ed eseguire il file binario di Spanner Omni.
Connettività: tutte le macchine nel deployment possono connettersi a vicenda.
Networking: la configurazione di rete consente la comunicazione TCP sulle porte da
15000a15025.Archiviazione: ogni macchina ha spazio di archiviazione sufficiente per ospitare i dati gestiti dal deployment.
Requisiti di sistema: verifica che la tua configurazione soddisfi tutti i requisiti di sistema.
Configurazione vSphere: se esegui Spanner Omni su la piattaforma di virtualizzazione vSphere, disattiva la virtualizzazione del contatore di timestamp (TSC). Aggiungi
monitor_control.virtual_rdtsc = FALSEal file di configurazione.vmxdella macchina virtuale.
Passaggio 1: scegli la topologia di deployment
Spanner Omni utilizza una gerarchia di località, zone e server per definire la topologia di deployment. Puoi scegliere tra le seguenti topologie in base ai tuoi target di disponibilità:
Server singolo: il deployment ha un singolo server in esecuzione su una singola macchina.
Zona singola: il deployment viene eseguito su più server distribuiti in una singola zona.
Singola località, più zone (deployment replicato): il deployment viene eseguito su più server distribuiti in più zone in una località.
Più località, più zone: il deployment viene eseguito su più server distribuiti in più località e più zone.
Per saperne di più, consulta Termini chiave di Spanner Omni e Configurazioni di deployment di Spanner Omni.
Per qualsiasi deployment diverso da un singolo server, crea un file di configurazione YAML denominato deployment.yaml che definisce la topologia. Specifica solo i server root in questo file. Aggiungi i server non root in un secondo momento.
Esempio: deployment multizona replicato
L'esempio seguente mostra una configurazione per un deployment regionale su tre zone.
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
Esempio: deployment multilocalità
L'esempio seguente mostra una configurazione per un deployment su tre località.
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
Passaggio 2: scarica e configura il programma binario
Ripeti questi passaggi per ogni macchina nel deployment:
Crea una directory per il programma binario e vai alla directory.
Scarica il file binario:
gsutil cp gs://spanner-omni/VERSION/spanner-omni-VERSION-linux-x86_64.tar.gz .Puoi anche utilizzare
scpo altri strumenti di trasferimento file per copiare il file binario nelle VM.Estrai il file binario:
tar -xvf spanner-omni-VERSION-linux-x86_64.tar.gz
Passaggio 3: avvia i server
Crea una directory di base su ogni server per archiviare dati, metadati e log. Se un server deve essere riavviato, specifica la stessa directory per la continuità.
Opzione A: deployment a server singolo
Per un deployment a server singolo, esegui il comando seguente:
spanner start-single-server --base-dir=SPANNER_BASE_DIR
Dopo l'avvio del server, vai al Passaggio 6: interagisci con il deployment.
Opzione B: deployment con scalabilità orizzontale
Per i deployment con scalabilità orizzontale, avvia il server su ogni macchina. I flag --server-address e --zone corrispondono ai valori nella configurazione del deployment. La rete risolve server_address.
spanner start --root --server-address=RESOLVABLE_HOSTNAME --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Ad esempio:
spanner start --root --server-address=rootserver1 --zone=us-central-1a --base-dir=./spanbasedir
Passaggio 4: crea il deployment
Per creare il deployment:
Copia il file
deployment.yamlcreato in Passaggio 1: scegli la topologia di deployment in uno dei server root.Sul server root, esegui il comando seguente per creare il deployment:
spanner deployment create --config-file=deployment.yamlLa console di ogni macchina mostra messaggi che indicano che il deployment è pronto.
Convalida il deployment elencando le zone:
spanner deployment zones listL'output elenca le località, le zone e i server specificati in
deployment.yaml.
Passaggio 5: (facoltativo) configura un bilanciatore del carico
Configura un bilanciatore del carico TCP con i seguenti dettagli:
| Impostazione | Valore |
|---|---|
| Protocollo | TCP |
| IP di backend | Gli indirizzi IP dei server |
| Porta | 15000 (o la porta utilizzata nel flag --server-address) |
| URL del controllo di integrità | http://SERVER_IP:15012/healthz |
| Strategia di bilanciamento | Round robin |
Per i deployment multilocalità, puoi configurare un bilanciatore del carico per località e un bilanciatore del carico principale per distribuire il traffico su tutte le località.
Passaggio 6: interagisci con il deployment
Una volta pronto il deployment, puoi interagire con esso utilizzando l'interfaccia a riga di comando da qualsiasi VM o macchina locale. Se esegui l'interfaccia a riga di comando da una macchina separata, ad esempio un laptop dello sviluppatore, scarica ed estrai il pacchetto dell'interfaccia a riga di comando. Per saperne di più, consulta la Guida rapida all'utilizzo dell'interfaccia a riga di comando di Spanner Omni.
Per interagire con il deployment:
Crea un database:
spanner --deployment-endpoint=LOAD_BALANCER_IP_OR_SERVER_IP databases create DATABASE_NAMEApri la shell SQL:
spanner sql --database=DATABASE_NAMECrea una tabella e inserisci i dati:
CREATE TABLE names ( nameId INT64 NOT NULL, name STRING(100) ) PRIMARY KEY (nameId); INSERT INTO names (nameId, name) VALUES (1, "Jack");Verifica il database e i dati:
Per elencare i database:
bash spanner databases listL'output è simile al seguente:
NAME STATO VERSION_RETENTION_PERIOD EARLIEST_VERSION_TIME ENABLE_DROP_PROTECTION DATABASE_NAME PRONTO 1 ora 2025-02-07T12:25:30Z falso Per eseguire una query della tabella:
bash spanner sql --database=DATABASE_NAMEEsegui i seguenti comandi SQL:
SHOW TABLES; SELECT * FROM names;
Passaggio 7: (facoltativo) scalare il deployment
Per scalare la capacità all'interno di una zona, puoi aggiungere server non root. Esegui il comando seguente su ogni nuovo server:
spanner start --server-address=NON_ROOT_HOSTNAME --join-servers=SERVER1:PORT1,SERVER2:PORT2,SERVER3:PORT3 --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Passaggio 8: (facoltativo) osserva il deployment
Per monitorare l'integrità e le prestazioni del deployment, puoi configurare la raccolta, la visualizzazione e gli avvisi delle metriche. Puoi anche raccogliere tracce distribuite per analizzare la latenza delle richieste.
Configura Prometheus
I server Spanner Omni esportano le metriche in formato Prometheus sulla porta 15012. Aggiungi quanto segue a scrape_configs in prometheus.yml:
scrape_configs:
- job_name: 'spanner'
static_configs:
- targets: ['HOST1:15012', 'HOST2:15012', 'HOSTN:15012']
Configura Grafana
Per visualizzare i dati di monitoraggio in Grafana:
Provisiona l'origine dati Prometheus creando un file in
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: 10mCrea una dashboard nell'interfaccia utente di Grafana o esegui il provisioning utilizzando
provisioning/dashboards.
Configura gli avvisi
Configura gli avvisi utilizzando l'interfaccia utente di Grafana o i file di configurazione. Ad esempio, puoi attivare un avviso se il 95° percentile (p95) della latenza delle transazioni supera i 100 millisecondi. Per un elenco degli avvisi disponibili, consulta Utilizzare gli avvisi di Prometheus per monitorare Spanner Omni.
Raccogli e analizza le tracce
Raccogli le informazioni di tracciamento distribuito in formato OTLP e visualizzale con strumenti come Jaeger.
Configura un agente di raccolta di tracce compatibile con OTLP. Per Jaeger:
export COLLECTOR_OTLP_ENABLED=true jaeger-all-in-oneAssicurati che la porta OTLP consenta il traffico di rete tra Spanner Omni e l'agente di raccolta.
Imposta la variabile di ambiente
SPANNER_BOX_OTLP_TRACE_EXPORTER_ENDPOINTe avvia i server 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