Menghubungkan Spanner dengan cluster GKE

Halaman ini menjelaskan cara memberikan izin cluster Google Kubernetes Engine (GKE) untuk mengakses database Spanner Anda.

GKE adalah layanan Kubernetes terkelola yang memudahkan Anda men-deploy dan mengelola aplikasi dalam container. Dengan menggunakan GKE dan Spanner secara bersamaan, Anda dapat memanfaatkan skalabilitas, keandalan, keamanan, dan ketersediaan tinggi di lapisan aplikasi dan lapisan database Anda.

Cluster GKE Anda dapat mengakses Spanner API melalui Workload Identity. Dengan Workload Identity, akun layanan Kubernetes di cluster Anda dapat berfungsi sebagai akun layanan IAM. Akun layanan IAM menyediakan Kredensial Default Aplikasi untuk pod Anda, sehingga Anda tidak perlu mengonfigurasi setiap pod untuk menggunakan kredensial pengguna pribadi.

Setelah mengonfigurasi aplikasi untuk melakukan autentikasi menggunakan Workload Identity, Anda dapat menggunakan library klien Spanner untuk mengkueri database Spanner. Anda juga dapat memigrasikan aplikasi ke kumpulan node GKE.

Untuk membuat koneksi di lingkungan contoh, coba codelab Menghubungkan Spanner dengan GKE Autopilot.

Aktifkan Workload Identity

Jika belum melakukannya, aktifkan Workload Identity untuk cluster GKE Anda. Anda dapat mengaktifkan Workload Identity di cluster baru dengan membuat kumpulan node baru atau mengaktifkan Workload Identity di kumpulan node yang ada. Cluster autopilot GKE telah mengaktifkan Workload Identity secara default. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan Workload Identity.

Mengautentikasi koneksi ke Spanner dengan Workload Identity

Konfigurasikan aplikasi Anda untuk melakukan autentikasi ke Google Cloud menggunakan Workload Identity.

  1. Pastikan Pod GKE Anda menggunakan objek ServiceAccount Kubernetes, seperti yang dijelaskan dalam Mengonfigurasi otorisasi dan akun utama.

  2. Buat kebijakan izin IAM yang memberikan peran IAM Spanner yang diperlukan ke objek ServiceAccount Kubernetes. Contoh berikut memberikan peran Pengguna Database Spanner (roles/spanner.databaseUser):

      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME \
          --role=roles/spanner.databaseUser \
          --condition=None
    

    Ganti kode berikut:

    • PROJECT_ID: Project ID cluster GKE.
    • PROJECT_NUMBER: Nomor project Google Cloud numerik.
    • NAMESPACE: Namespace Kubernetes yang berisi ServiceAccount.
    • KSA_NAME: Nama ServiceAccount.

Menghubungkan database Spanner

Setelah Pod aplikasi diautentikasi, Anda dapat menggunakan salah satu library klien Spanner untuk membuat kueri database Spanner.

Langkah selanjutnya