Ringkasan Koneksi AlloyDB Omni di Kubernetes

Ringkasan ini menjelaskan konfigurasi koneksi dan akses penting untuk database AlloyDB Omni yang di-deploy di cluster Kubernetes, dan menjelaskan secara mendetail cara membuat konektivitas yang fleksibel dan aman. Koneksi mencakup area berikut:

  • Jaringan: pelajari cara mengonfigurasi cluster database AlloyDB Omni untuk akses internal menggunakan Layanan ClusterIP Kubernetes atau akses eksternal menggunakan LoadBalancer, termasuk cara membatasi traffic eksternal menggunakan rentang Classless Inter-Domain Routing (CIDR) sumber.
  • Penggabungan koneksi: gunakan Resource Kustom PgBouncer untuk menerapkan penggabungan koneksi guna pengelolaan koneksi yang efisien dan mengurangi beban pada instance database.
  • Autentikasi dan otorisasi: akses yang aman menggunakan metode yang didukung seperti integrasi berbasis sandi dan Active Directory/Kerberos, bersama dengan kontrol terperinci yang diterapkan melalui kebijakan jaringan Kubernetes dan peran PostgreSQL.

Jaringan

Anda dapat mengonfigurasi cluster database AlloyDB Omni—yang dikelola oleh resource kustom DBCluster—untuk akses internal atau eksternal.

Untuk mengetahui detail selengkapnya tentang opsi jaringan DBCluster, lihat Referensi CRD DBCluster.

Konektivitas internal

Secara default, instance AlloyDB Omni diekspos menggunakan Layanan ClusterIP Kubernetes. Hal ini memastikan bahwa instance hanya dapat diakses oleh aplikasi lain yang berjalan di cluster Kubernetes yang sama. Anda dapat menemukan endpoint untuk instance utama di status DBCluster.

Konektivitas eksternal

Untuk mengizinkan koneksi dari luar cluster Kubernetes, perbarui spesifikasi DBCluster:

  • Aktifkan traffic eksternal: tetapkan spec.allowExternalIncomingTraffic: true, yang biasanya menyediakan Layanan LoadBalancer.
  • Menerapkan kontrol terperinci: gunakan spec.primarySpec.dbLoadBalancerOptions. Misalnya, di Google Cloud, tetapkan gcp.loadBalancerType: "External" untuk mendapatkan alamat IP yang dapat diakses dari internet publik.

Membatasi akses

Untuk mengamankan koneksi eksternal, gunakan spec.primarySpec.sourceCidrRanges untuk menentukan daftar rentang CIDR yang diizinkan. Sistem akan memblokir koneksi apa pun yang berasal dari alamat IP di luar rentang ini.

Penggabungan koneksi dengan PgBouncer

Untuk mengelola koneksi secara efisien dan mengurangi beban instance, gunakan PgBouncer. Operator AlloyDB Omni menyediakan PgBouncer Custom Resource (CR) untuk menyederhanakan operasi ini.

Untuk mengetahui detail lengkap tentang cara mengonfigurasi PgBouncer, lihat Referensi CRD PgBouncer.

Deployment dan konfigurasi

Buat resource PgBouncer dan rujuk cluster database Anda di spec.dbclusterRef. Parameter utama dalam spec.parameters meliputi hal berikut:

  • pool_mode: menentukan kapan koneksi digunakan kembali (session, transaction, atau statement).
  • default_pool_size: koneksi server per pengguna dan database.
  • max_client_conn: koneksi klien maksimum yang diizinkan.
  • max_db_connections: koneksi maksimum yang dibuka ke instance AlloyDB Omni.

Mengekspos PgBouncer

Gunakan spec.serviceOptions.type untuk mengontrol visibilitas.

  • ClusterIP: hanya akses cluster internal.
  • LoadBalancer: akses eksternal. Anda dapat membatasi ini dengan spec.serviceOptions.loadBalancerSourceRanges menggunakan blok CIDR.

Autentikasi dan otorisasi

AlloyDB Omni mendukung beberapa metode untuk memverifikasi identitas dan mengontrol akses.

Metode autentikasi

  • Berbasis sandi: Autentikasi nama pengguna dan sandi PostgreSQL standar. Sandi administrator biasanya diberikan menggunakan Secret Kubernetes, seperti yang ditunjukkan dalam Contoh DBCluster Lengkap.
  • Active Directory dan Kerberos: Dikelola menggunakan CR UserDefinedAuthentication. Hal ini mendukung sinkronisasi grup GSSAPI dan LDAP menggunakan hal berikut:

    • spec.keytabSecretRef: untuk keytab Kerberos.
    • spec.ldapConfiguration: untuk pemetaan grup dan setelan LDAP.
    • spec.pgHbaEntries: untuk mengonfigurasi aturan pg_hba.conf–misalnya, gss atau ldap.

    Untuk mengetahui informasi selengkapnya, lihat Referensi CRD UserDefinedAuthentication.

  • Berbasis sertifikat (direncanakan): dukungan untuk autentikasi sertifikat TLS tanpa sandi direncanakan untuk rilis mendatang.

Otorisasi dan kontrol akses

  • Kebijakan jaringan Kubernetes: menentukan aturan tingkat pod untuk mengamankan traffic antara aplikasi dan pod AlloyDB Omni atau PgBouncer.
  • Rentang CIDR sumber: membatasi traffic di tingkat LoadBalancer.
  • Peran PostgreSQL: menggunakan peran dan hak istimewa database standar untuk mengelola izin pengguna setelah pengguna diautentikasi.

Langkah berikutnya