Halaman ini menjelaskan cara menjalankan dan terhubung ke AlloyDB Omni setelah Anda menginstalnya di mesin Anda sendiri atau men-deploy-nya ke cluster Kubernetes.
Petunjuk khusus Kubernetes di halaman ini mengasumsikan pengetahuan dasar tentang pengoperasian Kubernetes.
Menjalankan AlloyDB Omni
Prosedur yang Anda gunakan untuk menjalankan AlloyDB Omni bergantung pada apakah Anda menjalankan AlloyDB Omni dalam penampung di satu server, atau di cluster Kubernetes. Bagian ini membagi petunjuknya antara gaya deployment ini.
Memulai AlloyDB Omni
Server tunggal
Untuk memulai penampung AlloyDB Omni yang dihentikan, jalankan perintah
docker container start
atau perintah
podman container start
:
Docker
docker container start CONTAINER_NAME
Ganti CONTAINER_NAME
dengan nama yang Anda tetapkan
ke penampung AlloyDB Omni saat menginstalnya.
Podman
podman container start CONTAINER_NAME
Ganti CONTAINER_NAME
dengan nama yang Anda tetapkan
ke penampung AlloyDB Omni saat menginstalnya.
Kubernetes
Mulai cluster database yang dihentikan dengan menetapkan isStopped
ke false
dalam definisi
manifesnya.
Anda dapat melakukannya di command line menggunakan kubectl
:
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME \
-p '{"spec":{"primarySpec":{"isStopped":false}}}' --type=merge -n DB_CLUSTER_NAMESPACE
Ganti kode berikut:
DB_CLUSTER_NAME
: nama cluster database ini—misalnya,my-db-cluster
.DB_CLUSTER_NAMESPACE
(Opsional): namespace tempat Anda membuat cluster database ini—misalnya,my-db-cluster-namespace
.
Memeriksa status AlloyDB Omni
Server tunggal
Untuk memeriksa status semua penampung yang telah Anda jalankan, jalankan
perintah docker container ls
atau perintah podman container ls
:
Docker
docker container ls
Podman
podman container ls
Jika penampung AlloyDB Omni Anda berjalan, namanya akan muncul di kolom NAMES
tabel output. Baris
terkait merangkum status penampung.
Jika nama penampung tidak muncul di kolom NAMES
, berarti
AlloyDB Omni Anda tidak berjalan.
Kubernetes
kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -n DB_CLUSTER_NAMESPACE
Ganti kode berikut:
DB_CLUSTER_NAME
: nama cluster database Anda.DB_CLUSTER_NAMESPACE
(Opsional): namespace tempat Anda membuat cluster database.
Menghentikan AlloyDB Omni
Server tunggal
Untuk menghentikan penampung AlloyDB Omni, jalankan perintah
docker container stop
atau perintah
podman container stop
:
Docker
docker container stop CONTAINER_NAME
Ganti CONTAINER_NAME
dengan nama yang Anda tetapkan
ke penampung AlloyDB Omni saat menginstalnya.
Podman
podman container stop CONTAINER_NAME
Ganti CONTAINER_NAME
dengan nama yang Anda tetapkan
ke penampung AlloyDB Omni saat menginstalnya.
Kubernetes
Untuk menghentikan cluster database, tetapkan isStopped
ke true
dalam definisi manifesnya.
Anda dapat melakukannya di command line menggunakan kubectl
:
kubectl patch dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME -p '{"spec":{"primarySpec":{"isStopped":true}}}' --type=merge -n DB_CLUSTER_NAMESPACE
Ganti kode berikut:
DB_CLUSTER_NAME
: nama cluster database ini—misalnya,my-db-cluster
.DB_CLUSTER_NAMESPACE
(Opsional): namespace tempat Anda membuat cluster database ini—misalnya,my-db-cluster-namespace
.
Menghubungkan ke AlloyDB Omni yang berjalan di satu server
Penampung AlloyDB Omni menyertakan salinan psql
-nya sendiri yang memungkinkan
Anda membuka sesi shell SQL interaktif dengan server database-nya.
Anda juga dapat terhubung ke AlloyDB Omni dari luar penampung, menggunakan software pilihan Anda yang kompatibel dengan PostgreSQL.
Untuk informasi tentang cara menghubungkan ke cluster database AlloyDB Omni yang berjalan di cluster Kubernetes, lihat Menghubungkan ke AlloyDB Omni yang berjalan di Kubernetes.
Menghubungkan menggunakan psql
dalam penampung
Untuk terhubung ke server database AlloyDB Omni menggunakan salinan psql
dalam penampungnya sendiri, jalankan perintah berikut:
Docker
docker exec -it CONTAINER_NAME psql -U postgres
Ganti CONTAINER_NAME
dengan nama yang Anda tetapkan
ke penampung AlloyDB Omni saat menginstalnya.
Podman
podman exec -it CONTAINER_NAME psql -U postgres
Ganti CONTAINER_NAME
dengan nama yang Anda tetapkan
ke penampung AlloyDB Omni saat menginstalnya.
Perintah ini menghubungkan Anda ke server sebagai peran pengguna postgres
, dan menampilkan
command prompt postgres=#
. Sekarang Anda dapat menjalankan perintah psql
dan kueri SQL.
Untuk keluar dari psql
, jalankan perintah \q
.
Menghubungkan menggunakan aplikasi Anda sendiri
Semua aplikasi yang berfungsi dengan PostgreSQL juga dapat berfungsi dengan AlloyDB Omni, tanpa perlu modifikasi.
Untuk terhubung ke server database AlloyDB Omni, tampilkan jaringan dari penampung docker AlloyDB Omni ke mesin host Anda dengan menambahkan --network=host
atau -p 5432:5432
ke perintah docker run
atau podman run
saat Anda memulai AlloyDB Omni.
Untuk memilih nomor port kustom, gunakan -p [HOST_PORT]:5432
saat Anda memulai AlloyDB Omni. Kemudian, gunakan klien atau library kode yang kompatibel dengan PostgreSQL untuk terhubung ke port 5432
atau nomor port kustom yang Anda tentukan.
Setelah terhubung ke server database, Anda dapat menentukan, membuat kueri, dan mengubah database menggunakan kueri DML dan SQL dengan menggunakan protokol komunikasi PostgreSQL standar.
Karena AlloyDB Omni berjalan dalam lingkungan Anda sendiri, Anda dapat mengontrol cara terhubung ke AlloyDB Omni. Hal ini mencakup mengizinkan atau membatasi akses jaringan ke layanan ini sesuai dengan kebutuhan aplikasi Anda, seperti yang Anda lakukan dengan server PostgreSQL biasa.
Menghubungkan ke AlloyDB Omni yang berjalan di Kubernetes
Operator AlloyDB Omni Kubernetes memungkinkan koneksi ke cluster database dari dalam cluster Kubernetes yang sama, secara opsional menggunakan sertifikat untuk autentikasi.
Menghubungkan menggunakan psql
yang telah diinstal sebelumnya
Anda dapat membuat koneksi pengujian menggunakan klien psql
yang sudah diinstal di
pod yang menjalankan database.
Untuk melakukannya, jalankan perintah berikut:
export DBPOD=`kubectl get pod --selector=alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -n DB_CLUSTER_NAMESPACE -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -n DB_CLUSTER_NAMESPACE -c database -- psql -h localhost -U postgres
Ganti DB_CLUSTER_NAME
dengan nama cluster database Anda. Ini adalah nama cluster database yang sama dengan yang Anda deklarasikan saat membuatnya.
Anda dapat melewati penetapan DB_CLUSTER_NAMESPACE
, jika membuat cluster database di namespace default.
Setelah Anda memasukkan perintah, server database akan meminta sandi.
Masukkan sandi yang versi berenkode base64-nya
Anda berikan sebagai secret Kubernetes saat membuat cluster database. Misalnya, jika Anda membuat cluster database dengan secret Q2hhbmdlTWUxMjM=
, sandi login yang akan digunakan di sini adalah ChangeMe123
.
Operator AlloyDB Omni menghubungkan Anda ke server sebagai peran pengguna postgres
dan menampilkan command prompt postgres=#
. Sekarang Anda dapat menjalankan perintah psql
dan kueri SQL.
Untuk keluar dari psql
, jalankan perintah \q
.
Menghubungkan dari pod terpisah di cluster yang sama
Pod yang menjalankan cluster database AlloyDB Omni secara default mengizinkan koneksi dari dalam cluster Kubernetes yang sama. Sebagai praktik terbaik, sebaiknya amankan semua koneksi ke cluster database menggunakan TLS.
Untuk memberikan sertifikat TLS server Anda sendiri, tentukan secret sertifikat saat mengonfigurasi cluster database. Jika Anda tidak menentukan secret sertifikat, operator AlloyDB Omni Kubernetes akan membuat secret sertifikat TLS untuk Anda, berdasarkan sertifikat yang ditandatangani oleh certificate authority yang ditandatangani sendiri. Dalam kedua kasus tersebut, Anda dapat mewajibkan pod klien database untuk mewajibkan validasi sertifikat pada setiap koneksi, sehingga memastikan keamanan TLS.
Untuk membuat koneksi database yang aman menggunakan TLS, lakukan tindakan berikut:
Dalam manifes yang menentukan pod yang membuat koneksi klien, tentukan secret sertifikat TLS. Dapat berupa salah satu dari hal berikut:
Secret sertifikat TLS yang telah Anda buat di cluster Kubernetes. Untuk informasi selengkapnya tentang cara menggunakan secret sertifikat TLS di Kubernetes, lihat Secret TLS.
Secret sertifikat default yang dibuat operator AlloyDB Omni Kubernetes untuk Anda, bernama
DB_CLUSTER_NAME-ca-cert
, jika Anda tidak menentukan secret TLS sebagai bagian dari manifes cluster database.
Setiap kali pod klien terhubung ke cluster database, pod tersebut harus menentukan variabel lingkungan berikut sebelum membuat koneksi:
Tetapkan
PGSSLMODE
ke"verify-ca"
.Tetapkan
PGSSLROOTCERT
ke jalur absolut, pada sistem file pod klien, dari fileca.crt
yang relevan.
Contoh manifes berikut menunjukkan cara mengonfigurasi pod yang menginstal
image PostgreSQL resmi, yang menyertakan klien command line psql
. Contoh ini mengasumsikan bahwa Anda tidak menentukan konfigurasi secret TLS apa pun dalam manifes yang menentukan cluster database Anda. Oleh karena itu, operator Kubernetes AlloyDB Omni menggunakan secret TLS default, yang diberi nama
dbs-al-cert-DB_CLUSTER_NAME
.
apiVersion: v1
kind: Pod
metadata:
name: postgres
namespace: DB_CLUSTER_NAMESPACE
spec:
containers:
- image: "docker.io/library/postgres:latest"
command:
- "sleep"
- "604800"
imagePullPolicy: IfNotPresent
name: db-client
volumeMounts:
- name: ca-cert
mountPath: "/DB_CLUSTER_NAME-ca-cert"
readOnly: true
volumes:
- name: ca-cert
secret:
secretName: dbs-al-cert-DB_CLUSTER_NAME
restartPolicy: Always
Ganti kode berikut:
DB_CLUSTER_NAME
: nama cluster database Anda. Nama ini sama dengan nama cluster database yang Anda deklarasikan saat membuatnya.DB_CLUSTER_NAMESPACE
(Opsional): namespace tempat Anda membuat cluster database.
Sekarang Anda dapat menggunakan pod untuk menghubungkan ke cluster database dengan aman menggunakan langkah-langkah berikut:
Tentukan alamat IP internal cluster database Anda:
kubectl get dbclusters.alloydbomni.dbadmin.goog -n DB_CLUSTER_NAMESPACE
Outputnya akan terlihat seperti berikut:
NAME PRIMARYENDPOINT PRIMARYPHASE DBCLUSTERPHASE DB_CLUSTER_NAME IP_ADDRESS Ready DBClusterReady
Perhatikan
IP_ADDRESS
, dan gunakan di langkah berikut.Gunakan
psql
untuk terhubung ke cluster dari pod klien, dengan menetapkan variabel lingkungan yang mengaktifkan dan mewajibkan verifikasi sertifikat TLS:kubectl exec -it postgres -n DB_CLUSTER_NAMESPACE -- bash
PGSSLMODE="verify-ca" PGSSLROOTCERT=/DB_CLUSTER_NAME-ca-cert/ca.crt psql -h IP_ADDRESS -p 5432 -U postgres -d postgres
Ganti
IP_ADDRESS
dengan alamat IP internal yang Anda tentukan di langkah sebelumnya.