Menjalankan dan terhubung ke AlloyDB Omni

Halaman ini menjelaskan cara menjalankan dan terhubung ke AlloyDB Omni setelah Anda menginstalnya di mesin Anda sendiri atau men-deploy-nya ke cluster Kubernetes.

Sebelum memulai

Server tunggal

Sebagian besar perintah di halaman ini menggunakan AlloyDB Omni CLI.

Untuk menginstal alat command line ini di komputer Anda, lihat Menginstal CLI AlloyDB Omni.

Kubernetes

Anda harus menginstal AlloyDB Omni Kubernetes Operator ke cluster Kubernetes untuk melakukan tugas yang dijelaskan di halaman ini.

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.

Server tunggal

Menginstal AlloyDB Omni akan menyiapkan layanan sistem yang disebut alloydb-dataplane yang dikonfigurasi untuk diluncurkan setiap kali mesin Anda di-booting.

Untuk kontrol dan pemantauan dasar AlloyDB Omni, gunakan perintah sudo alloydb, seperti yang ditunjukkan di bagian berikut.

Kubernetes

Untuk mengontrol dan memantau AlloyDB Omni, perbarui manifes cluster Kubernetes Anda, seperti yang ditunjukkan di bagian berikut.

Memulai AlloyDB Omni

Server tunggal

sudo alloydb database-server start

Untuk melakukan koneksi pengujian, lihat Menghubungkan menggunakan psql dalam penampung.

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 dbcluster-sample \
-p '{"spec":{"primarySpec":{"isStopped":false}}}' --type=merge

Memeriksa status AlloyDB Omni

Server tunggal

sudo alloydb database-server status

Kubernetes

kubectl get dbclusters.alloydbomni.dbadmin.goog DB_CLUSTER_NAME

Ganti DB_CLUSTER_NAME dengan nama cluster database Anda.

Menghentikan AlloyDB Omni

Server tunggal

sudo alloydb database-server stop

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 dbcluster-sample -p '{"spec":{"primarySpec":{"isStopped":true}}}' --type=merge

Menonaktifkan peluncuran startup

Menjalankan perintah berikut akan mencegah AlloyDB Omni mulai secara otomatis saat mesin Anda melakukan booting.

Server tunggal

sudo systemctl disable alloydb-dataplane

Kubernetes

Tugas ini tidak berlaku saat menggunakan Operator Kubernetes AlloyDB Omni.

Mengaktifkan kembali peluncuran startup

Server tunggal

sudo systemctl enable alloydb-dataplane

Kubernetes

Tugas ini tidak berlaku saat menggunakan Operator Kubernetes AlloyDB Omni.

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:

Server tunggal

docker exec -it pg-service psql -h localhost -U postgres

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, gunakan klien atau library kode yang kompatibel dengan PostgreSQL untuk terhubung ke port 5432— port server database PostgreSQL default—dari mesin yang menjalankan AlloyDB Omni.

Hal ini berfungsi karena penampung AlloyDB Omni mengekspos port 5432-nya sendiri ke port yang sama dari mesin tempatnya berjalan.

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 Kubernetes AlloyDB Omni 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 -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -c database -- /bin/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.

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, AlloyDB Omni Kubernetes Operator akan membuat secret sertifikat TLS untuk Anda, berdasarkan sertifikat yang ditandatangani oleh otoritas sertifikat 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 Kubernetes Omni AlloyDB 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 file ca.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
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 DB_CLUSTER_NAME dengan nama cluster database Anda. Ini adalah nama cluster database yang sama dengan yang Anda deklarasikan saat membuatnya.

Sekarang Anda dapat menggunakan pod untuk menghubungkan ke cluster database dengan aman menggunakan langkah-langkah berikut:

  1. Tentukan alamat IP internal cluster database Anda:

    kubectl get dbclusters.alloydbomni.dbadmin.goog

    Outputnya akan terlihat seperti berikut:

    NAME              PRIMARYENDPOINT   PRIMARYPHASE   DBCLUSTERPHASE
    DB_CLUSTER_NAME   IP_ADDRESS        Ready          DBClusterReady
    

    Perhatikan IP_ADDRESS, dan gunakan di langkah berikut.

  2. Gunakan psql untuk terhubung ke cluster dari pod klien, dengan menetapkan variabel lingkungan yang mengaktifkan dan mewajibkan verifikasi sertifikat TLS:

    kubectl exec -it postgres -- 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.

Langkah selanjutnya