Dokumen ini menjelaskan cara membuat deployment Spanner Omni di Kubernetes. Deployment ini tidak dienkripsi. Jika Anda ingin menyiapkan lingkungan pengujian atau proof-of-concept dengan cepat untuk mengevaluasi Spanner Omni, membuat deployment tanpa enkripsi adalah cara tercepat untuk memulai karena Anda tidak perlu mengonfigurasi mTLS atau langkah keamanan lainnya. Namun, karena risiko keamanan, seperti traffic jaringan yang tidak dienkripsi dan akses terbuka, konfigurasi ini tidak direkomendasikan untuk lingkungan produksi. Anda dapat memilih antara deployment satu server atau 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 men-deploy Spanner Omni, pastikan lingkungan Anda memenuhi persyaratan berikut:
Membuat cluster Kubernetes Konfigurasi ini mendukung Google Kubernetes Engine (GKE) dan Amazon Elastic Kubernetes Service (Amazon EKS). Anda mungkin perlu menyesuaikan konfigurasi agar berfungsi di lingkungan lain.
Pastikan cluster Kubernetes dapat mengakses artefak Artifact Registry yang menghosting penampung Spanner Omni.
Instal dan konfigurasi alat command line
kubectldan Helm.Jika Anda menyiapkan lingkungan Kubernetes di mesin platform virtualisasi vSphere, nonaktifkan virtualisasi Time Stamp Counter (TSC) dengan menambahkan
monitor_control.virtual_rdtsc = FALSEke file konfigurasi.vmxvirtual machine. Hal ini membantu TrueTime berfungsi dengan benar.Pastikan lingkungan Anda memenuhi persyaratan sistem Spanner Omni.
Menyiapkan konfigurasi Helm
Buat konfigurasi Helm. Untuk mengetahui informasi selengkapnya, lihat Membuat konfigurasi Helm.
Buat deployment
Instal diagram Helm dengan penggantian tertentu. Berikut adalah contoh perintah untuk deployment yang paling umum:
Contoh 1: Menjalankan Spanner Omni di satu server di GKE dengan stack pemantauan
Untuk menjalankan Spanner Omni di satu server di GKE dengan stack pemantauan, jalankan perintah berikut:
kubectl create ns monitoring
helm upgrade --install spanner-omni oci://us-central1-docker.pkg.dev/spanner-omni/helm-charts/spanner-omni --version 0.1.0 \
--set global.platform=gke \
--set deployment.singleServer=true \
--set monitoring.enabled=true \
--namespace spanner-ns \
--create-namespace
Contoh 2: Menjalankan Spanner Omni di beberapa server di GKE
Untuk menjalankan Spanner Omni di beberapa server dalam satu zona
(us-central1-a) di GKE, jalankan perintah berikut:
kubectl create ns monitoring
helm upgrade --install spanner-omni oci://us-central1-docker.pkg.dev/spanner-omni/helm-charts/spanner-omni --version 0.1.0 \
--set global.platform=gke \
--set deployment.replicasPerZone=5 \
--set deployment.rootServersPerZone=3 \
--set-json 'locations=[{"name":"us-central1","zones":[{"name":"us-central1-a","shortName":"a"}]}]' \
--set monitoring.enabled=true \
--namespace spanner-ns \
--create-namespace
Contoh 3: Deployment regional dengan ketersediaan tinggi
Deployment ini menyimpan tiga salinan data, sehingga Spanner Omni dapat terus berfungsi meskipun suatu zona mengalami gangguan. Untuk membuat deployment ini, jalankan perintah berikut:
kubectl create ns monitoring
helm upgrade --install spanner-omni oci://us-central1-docker.pkg.dev/spanner-omni/helm-charts/spanner-omni --version 0.1.0 \
--set global.platform=gke \
--set-json 'locations=[{"name":"us-central1","zones":[{"name":"us-central1-a","shortName":"a"},{"name":"us-central1-c","shortName":"b"},{"name":"us-central1-d","shortName":"c"}]}]' \
--set monitoring.enabled=true \
--namespace spanner-ns \
--create-namespace
Periksa status pod
Untuk memeriksa status pod, jalankan perintah berikut:
kubectl get pods --watch --namespace spanner-ns
Contoh output:
NAME READY STATUS RESTARTS AGE
spanner-a-0 1/1 Running 0 4m
spanner-a-1 1/1 Running 0 4m
spanner-a-2 1/1 Running 0 4m
spanner-a-3 1/1 Running 0 4m
spanner-a-4 1/1 Running 0 4m
spanner-b-0 1/1 Running 0 4m
spanner-b-1 1/1 Running 0 4m
spanner-b-2 1/1 Running 0 4m
spanner-b-3 1/1 Running 0 4m
spanner-b-4 1/1 Running 0 4m
spanner-c-0 1/1 Running 0 4m
spanner-c-1 1/1 Running 0 4m
spanner-c-2 1/1 Running 0 4m
spanner-c-3 1/1 Running 0 4m
spanner-c-4 1/1 Running 0 4m
Berinteraksi dengan Spanner Omni
Setelah pod berjalan, Anda dapat terhubung ke deployment dan berinteraksi dengannya menggunakan Spanner Omni CLI.
Jalankan perintah berikut untuk mendapatkan alamat layanan:
kubectl get service spanner -n spanner-nsEXTERNAL-IP:PORTadalah DEPLOYMENT_ENDPOINT untuk deployment Anda.Jika Anda belum melakukannya, download Spanner Omni CLI dari bucket Cloud Storage
spanner-omni.Gunakan Spanner Omni CLI untuk membuat database GoogleSQL atau PostgreSQL dan berinteraksi dengannya.
GoogleSQL
Untuk membuat dan berinteraksi dengan database GoogleSQL, jalankan perintah berikut:
spanner databases create DATABASE_NAME --deployment_endpoint DEPLOYMENT_ENDPOINT spanner sql --database=DATABASE_NAME --deployment_endpoint DEPLOYMENT_ENDPOINTPostgreSQL
Untuk membuat dan berinteraksi dengan database PostgreSQL, jalankan berikut:
spanner databases create POSTGRESQL_DATABASE_NAME --database_dialect POSTGRESQL --deployment_endpoint DEPLOYMENT_ENDPOINT spanner sql --database=POSTGRESQL_DATABASE_NAME --deployment_endpoint DEPLOYMENT_ENDPOINT ``` You can also interact with a PostgreSQL database by following the instructions in [Connect using PGAdapter](/spanner-omni/pgadapter) to configure PGAdapter and use PostgreSQL tools, such as `psql`, with your PostgreSQL-dialect databases.
Mengamati deployment (Opsional)
Anda dapat menyiapkan Spanner Omni dengan monitoring.enabled=true untuk
mengonfigurasi Prometheus agar menyerap metrik yang diekspor Spanner Omni.
Hal ini membantu Anda menganalisis dan men-debug masalah pada deployment Anda. Untuk mengetahui informasi selengkapnya, lihat:
Untuk mendapatkan detail layanan, jalankan perintah berikut:
# Prometheus service details. Default port is 9090.
kubectl get service prometheus-service -n monitoring
# Grafana service details. Default port is 3000.
kubectl get service grafana -n monitoring