Dokumen ini menjelaskan cara men-deploy Spanner Omni di virtual machine (VM). Deployment ini tidak memiliki enkripsi. Jika Anda ingin menyiapkan lingkungan pengujian atau proof-of-concept dengan cepat untuk mengevaluasi Spanner Omni, membuat deployment yang tidak aman adalah cara tercepat untuk memulai karena Anda tidak perlu mengonfigurasi mTLS atau langkah-langkah keamanan lainnya. Namun, karena risiko keamanan, seperti traffic jaringan yang tidak dienkripsi dan akses terbuka, kami tidak merekomendasikan konfigurasi ini untuk lingkungan produksi. Anda dapat memilih antara deployment satu server atau deployment regional di beberapa zona.
Versi Pratinjau Spanner Omni tidak mendukung enkripsi TLS. Untuk mendapatkan fitur yang memungkinkan Anda membuat deployment dengan enkripsi TLS, hubungi Google untuk meminta akses awal ke Spanner Omni versi lengkap.
Sebelum memulai
Sebelum menyiapkan deployment yang tidak aman, pastikan Anda memenuhi persyaratan berikut:
Akses SSH: Memiliki akses SSH ke setiap mesin dalam deployment untuk mendownload dan menjalankan biner Spanner Omni.
Konektivitas: Semua mesin dalam deployment dapat terhubung satu sama lain.
Jaringan: Konfigurasi jaringan Anda mengizinkan komunikasi TCP di port
15000hingga15025.Penyimpanan: Setiap mesin memiliki penyimpanan yang cukup untuk menghosting data yang ditangani deployment.
Persyaratan sistem: Pastikan penyiapan Anda memenuhi semua persyaratan sistem.
Konfigurasi vSphere: Jika Anda menjalankan Spanner Omni di platform virtualisasi vSphere, nonaktifkan virtualisasi Time Stamp Counter (TSC). Tambahkan
monitor_control.virtual_rdtsc = FALSEke file konfigurasi.vmxvirtual machine.
Langkah 1: Tentukan topologi deployment
Spanner Omni menggunakan hierarki lokasi, zona, dan server untuk menentukan topologi deployment-nya. Anda dapat memilih dari topologi berikut berdasarkan target ketersediaan Anda:
Server Tunggal: Deployment memiliki satu server yang berjalan di satu mesin.
Zona Tunggal: Deployment berjalan di beberapa server yang tersebar di satu zona.
Satu Lokasi, Beberapa Zona (Deployment yang Direplikasi): Deployment berjalan di beberapa server yang didistribusikan di beberapa zona dalam satu lokasi.
Beberapa Lokasi, Beberapa Zona: Deployment berjalan di beberapa server yang didistribusikan di beberapa lokasi dan beberapa zona.
Untuk mengetahui informasi selengkapnya, lihat Istilah utama Spanner Omni dan Konfigurasi deployment Spanner Omni.
Untuk deployment selain server tunggal, buat file konfigurasi YAML bernama deployment.yaml yang menentukan topologi. Hanya tentukan server root dalam file ini. Tambahkan server non-root nanti.
Contoh: Deployment multi-zona yang direplikasi
Contoh berikut menunjukkan konfigurasi untuk deployment regional di tiga zona.
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
Contoh: Deployment multi-lokasi
Contoh berikut menunjukkan konfigurasi untuk deployment di tiga lokasi.
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
Langkah 2: Download dan siapkan biner
Ulangi langkah-langkah ini untuk setiap mesin dalam deployment:
Buat direktori untuk biner dan buka direktori tersebut.
Download biner:
gsutil cp gs://spanner-omni/VERSION/spanner-omni-VERSION-linux-x86_64.tar.gz .Anda juga dapat menggunakan
scpatau alat transfer file lainnya untuk menyalin biner ke VM Anda.Ekstrak biner:
tar -xvf spanner-omni-VERSION-linux-x86_64.tar.gz
Langkah 3: Mulai server
Buat direktori dasar di setiap server untuk menyimpan data, metadata, dan log. Jika server perlu dimulai ulang, tentukan direktori yang sama untuk kelanjutan.
Opsi A: Deployment server tunggal
Untuk deployment server tunggal, jalankan perintah berikut:
spanner start-single-server --base-dir=SPANNER_BASE_DIR
Setelah server dimulai, lanjutkan ke Langkah 6: Berinteraksi dengan deployment.
Opsi B: Deployment scale-out
Untuk deployment scale-out, mulai server di setiap mesin. Flag
--server-address dan --zone cocok dengan nilai dalam konfigurasi
deployment Anda. Jaringan menyelesaikan server_address.
spanner start --root --server-address=RESOLVABLE_HOSTNAME --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Contoh:
spanner start --root --server-address=rootserver1 --zone=us-central-1a --base-dir=./spanbasedir
Langkah 4: Buat deployment
Untuk membuat deployment, ikuti langkah-langkah berikut:
Salin file
deployment.yamlyang Anda buat di Langkah 1: Tentukan topologi deployment ke salah satu server root.Di server root tersebut, jalankan perintah berikut untuk membuat deployment:
spanner deployment create --config-file=deployment.yamlKonsol setiap mesin menampilkan pesan yang menunjukkan bahwa deployment sudah siap.
Validasi deployment dengan mencantumkan zona:
spanner deployment zones listOutput mencantumkan lokasi, zona, dan server yang Anda tentukan di
deployment.yaml.
Langkah 5: (Opsional) Konfigurasikan load balancer
Siapkan load balancer TCP dengan detail berikut:
| Setelan | Nilai |
|---|---|
| Protokol | TCP |
| IP backend | Alamat IP server Anda |
| Port | 15000 (atau port yang Anda gunakan di flag --server-address) |
| URL pemeriksaan kesehatan | http://SERVER_IP:15012/healthz |
| Strategi penyeimbangan | Panggilan acak |
Untuk deployment multi-lokasi, Anda dapat menyiapkan satu load balancer per lokasi dan load balancer utama untuk mendistribusikan traffic di semua lokasi.
Langkah 6: Berinteraksi dengan deployment
Setelah deployment siap, Anda dapat berinteraksi dengannya menggunakan CLI dari VM atau mesin lokal mana pun. Jika Anda menjalankan CLI dari komputer terpisah, seperti laptop developer, download dan ekstrak paket CLI. Untuk mengetahui informasi selengkapnya, lihat Panduan memulai menggunakan Spanner Omni CLI.
Untuk berinteraksi dengan deployment, ikuti langkah-langkah berikut:
Buat database:
spanner --deployment-endpoint=LOAD_BALANCER_IP_OR_SERVER_IP databases create DATABASE_NAMEBuka shell SQL:
spanner sql --database=DATABASE_NAMEBuat tabel dan masukkan data:
CREATE TABLE names ( nameId INT64 NOT NULL, name STRING(100) ) PRIMARY KEY (nameId); INSERT INTO names (nameId, name) VALUES (1, "Jack");Verifikasi database dan data:
Untuk mencantumkan database:
bash spanner databases listOutputnya akan terlihat mirip seperti berikut:
NAMA STATUS VERSION_RETENTION_PERIOD EARLIEST_VERSION_TIME ENABLE_DROP_PROTECTION DATABASE_NAME SIAP 1j 2025-02-07T12:25:30Z false Untuk membuat kueri tabel:
bash spanner sql --database=DATABASE_NAMEJalankan perintah SQL berikut:
SHOW TABLES; SELECT * FROM names;
Langkah 7: (Opsional) Menskalakan deployment
Untuk menskalakan kapasitas dalam zona, Anda dapat menambahkan server non-root. Jalankan perintah berikut di setiap server baru:
spanner start --server-address=NON_ROOT_HOSTNAME --join-servers=SERVER1:PORT1,SERVER2:PORT2,SERVER3:PORT3 --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Langkah 8: (Opsional) Amati deployment
Untuk memantau kondisi dan performa deployment, Anda dapat menyiapkan pengumpulan, visualisasi, dan pemberitahuan metrik. Anda juga dapat mengumpulkan rekaman aktivitas terdistribusi untuk menganalisis latensi permintaan.
Menyiapkan Prometheus
Server Spanner Omni mengekspor metrik dalam format Prometheus di port 15012. Tambahkan kode berikut ke scrape_configs di prometheus.yml:
scrape_configs:
- job_name: 'spanner'
static_configs:
- targets: ['HOST1:15012', 'HOST2:15012', 'HOSTN:15012']
Menyiapkan Grafana
Untuk melihat data pemantauan di Grafana:
Sediakan sumber data Prometheus dengan membuat file di
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: 10mBuat dasbor di UI Grafana atau sediakan menggunakan
provisioning/dashboards.
Menyiapkan pemberitahuan
Konfigurasi pemberitahuan menggunakan UI Grafana atau file konfigurasi. Misalnya, Anda dapat memicu pemberitahuan jika latensi transaksi persentil ke-95 (p95) melebihi 100 milidetik. Untuk mengetahui daftar pemberitahuan yang tersedia, lihat Menggunakan pemberitahuan Prometheus untuk memantau Spanner Omni.
Mengumpulkan dan menganalisis rekaman aktivitas
Kumpulkan informasi pelacakan terdistribusi dalam format OTLP dan visualisasikan dengan alat seperti Jaeger.
Siapkan pengumpul rekaman aktivitas yang kompatibel dengan OTLP. Untuk Jaeger:
export COLLECTOR_OTLP_ENABLED=true jaeger-all-in-onePastikan port OTLP mengizinkan traffic jaringan antara Spanner Omni dan pengumpul.
Tetapkan variabel lingkungan
SPANNER_BOX_OTLP_TRACE_EXPORTER_ENDPOINTdan mulai 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