Menghubungkan ke Cloud SQL untuk PostgreSQL dari Google Kubernetes Engine
Halaman ini menunjukkan cara men-deploy aplikasi contoh di Google Kubernetes Engine (GKE) yang terhubung ke instance PostgreSQL menggunakan konsol Google Cloud dan aplikasi klien. Resource yang dibuat dalam panduan memulai ini biasanya berharga kurang dari satu dolar (USD), dengan asumsi bahwa Anda menyelesaikan langkah-langkahnya, termasuk pembersihannya, secara tepat waktu.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan Google Cloud API yang diperlukan untuk menjalankan aplikasi contoh Cloud SQL di GKE.
Konsol
Klik Aktifkan API untuk mengaktifkan API yang diperlukan untuk panduan memulai ini.
Tindakan ini mengaktifkan API berikut:
- Compute Engine API
- Cloud SQL Admin API
- Google Kubernetes Engine API
- Artifact Registry API
- Cloud Build API
gcloud
Klik tombol berikut untuk membuka Cloud Shell, yang menyediakan akses command line ke resource Google Cloud langsung dari browser. Cloud Shell dapat digunakan untuk menjalankan perintah
gcloud
yang disajikan di seluruh panduan memulai ini.Jalankan perintah
gcloud services enable
sebagai berikut menggunakan Cloud Shell untuk mengaktifkan API yang diperlukan untuk panduan memulai ini.:gcloud services enable compute.googleapis.com sqladmin.googleapis.com \ container.googleapis.com artifactregistry.googleapis.com cloudbuild.googleapis.com
Perintah ini mengaktifkan API berikut:
- Compute Engine API
- Cloud SQL Admin API
- GKE API
- Artifact Registry API
- Cloud Build API
Menyiapkan Cloud SQL
Membuat instance Cloud SQL
Buat database
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Pilih
quickstart-instance
. - Dari menu navigasi SQL, pilih Databases.
- Klik Buat Instance.
- Di kolom Nama Database di kotak dialog Database baru
, masukkan
quickstart-db
. - Klik Buat.
gcloud
Jalankan perintah gcloud
sql databases create
untuk membuat database.
gcloud sql databases create quickstart-db --instance=quickstart-instance
Membuat pengguna
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Pengguna dari menu navigasi SQL.
- Klik Tambahkan akun pengguna.
- Di halaman Tambahkan akun pengguna ke instance instance_name,
tambahkan informasi berikut:
- Nama pengguna: Tetapkan ke
quickstart-user
- Sandi: Tentukan sandi untuk pengguna database Anda. Catat hal ini untuk digunakan di langkah selanjutnya dalam panduan memulai ini.
- Nama pengguna: Tetapkan ke
- Klik Tambahkan.
gcloud
Sebelum menjalankan perintah sebagai berikut, ganti DB_PASS dengan sandi untuk pengguna database Anda. Catat hal ini untuk digunakan di langkah selanjutnya dalam panduan memulai ini.
Jalankan perintah gcloud sql users create
untuk membuat pengguna.
gcloud sql users create quickstart-user \ --instance=quickstart-instance \ --password=DB_PASS
Batas panjang nama pengguna untuk Cloud SQL sama seperti PostgreSQL lokal.
Membuat cluster GKE
Konsol
-
Di konsol Google Cloud, buka halaman Google Kubernetes Engine.
- Klik Buat.
- Klik Konfigurasi untuk GKE Autopilot.
- Untuk Nama, tentukan nama cluster sebagai
gke-cloud-sql-quickstart
. - Klik Buat.
gcloud
Jalankan perintah gcloud container clusters create-auto
untuk membuat cluster.
gcloud container clusters create-auto gke-cloud-sql-quickstart \ --region us-central1
Meng-clone aplikasi contoh Cloud SQL ke Cloud Shell Editor
Dengan instance Cloud SQL, database, dan cluster GKE,
Anda kini dapat meng-clone dan mengonfigurasi aplikasi contoh untuk terhubung ke
instance Cloud SQL. Langkah-langkah selanjutnya dalam panduan memulai ini memerlukan penggunaan
alat command line gcloud
dan kubectl
. Kedua alat ini sudah diinstal sebelumnya di Cloud Shell.
Go
-
Di Cloud Shell Editor, buka kode sumber aplikasi contoh.
Buka Cloud Shell Editor -
Pada dialog
Open in Cloud Shell
, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
Java
-
Di Cloud Shell Editor, buka kode sumber aplikasi contoh.
Buka Cloud Shell Editor -
Pada dialog
Open in Cloud Shell
, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
Node.js
-
Di Cloud Shell Editor, buka kode sumber aplikasi contoh.
Buka Cloud Shell Editor -
Pada dialog
Open in Cloud Shell
, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
Python
-
Di Cloud Shell Editor, buka kode sumber aplikasi contoh.
Buka Cloud Shell Editor -
Pada dialog
Open in Cloud Shell
, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
Mengaktifkan cluster GKE
Aktifkan cluster GKE yang baru saja Anda buat sebagai cluster default yang akan digunakan untuk perintah yang tersisa dalam panduan memulai ini.
gcloud container clusters get-credentials
sebagai berikut untuk mengaktifkan cluster GKE.
gcloud container clusters get-credentials gke-cloud-sql-quickstart \ --region us-central1
Menyiapkan akun layanan
-
Jalankan perintah
gcloud iam service-accounts create
sebagai berikut untuk membuat akun layanan baru:gcloud iam service-accounts create gke-quickstart-service-account \ --display-name="GKE Quickstart Service Account"
- Jalankan perintah
gcloud projects add-iam-policy-binding
sebagai berikut untuk menambahkan peran Klien Cloud SQL ke akun layanan Google Cloud yang baru saja Anda buat. Ganti YOUR_PROJECT_ID dengan project ID.gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/cloudsql.client"
- Aplikasi contoh menggunakan logging, jadi, jalankan perintah
gcloud projects add-iam-policy-binding
sebagai berikut untuk menambahkan peran Log Writer ke akun layanan Google Cloud yang baru saja Anda dibuat. Ganti YOUR_PROJECT_ID dengan project ID.gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
- Akun layanan harus dapat mengambil image dari repositori artifactory, jadi jalankan perintah
gcloud projects add-iam-policy-binding
sebagai berikut untuk menambahkan peran Pembaca Artifact Registry ke akun layanan. Ganti YOUR_PROJECT_ID dengan project ID.gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \ --member="serviceAccount:gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/artifactregistry.reader"
- Buat Akun Layanan Kubernetes.
- Update file
service-account.yaml
di Cloud Shell Editor. Ganti<YOUR-KSA-NAME>
denganksa-cloud-sql
. - Jalankan perintah
kubectl apply
sebagai berikut di Cloud Shell:kubectl apply -f service-account.yaml
- Update file
- Jalankan perintah
gcloud iam service-accounts add-iam-policy-binding
sebagai berikut untuk mengaktifkan binding IAM Akun Layanan Google Cloud dan Akun Layanan Kubernetes. Lakukan penggantian berikut:- YOUR_PROJECT_ID dengan project ID.
- YOUR_K8S_NAMESPACE dengan
default
, yang merupakan namespace default untuk cluster yang dibuat di GKE. - YOUR_KSA_NAME dengan
ksa-cloud-sql
.
gcloud iam service-accounts add-iam-policy-binding \ --role="roles/iam.workloadIdentityUser" \ --member="serviceAccount:YOUR_PROJECT_ID.svc.id.goog[YOUR_K8S_NAMESPACE/YOUR_KSA_NAME]" \ gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com
- Jalankan perintah
kubectl annotate
sebagai berikut untuk melakukan anotasi Akun Layanan Kubernetes dengan binding IAM. Lakukan penggantian berikut:- YOUR_KSA_NAME dengan
ksa-cloud-sql
. - YOUR_PROJECT_ID dengan project ID.
kubectl annotate serviceaccount \ YOUR_KSA_NAME \ iam.gke.io/gcp-service-account=gke-quickstart-service-account@YOUR_PROJECT_ID.iam.gserviceaccount.com
- YOUR_KSA_NAME dengan
Mengonfigurasi secret
Jalankan perintah kubectl create secret generic
sebagai berikut guna membuat secret Kubernetes untuk database, pengguna,
dan sandi pengguna yang akan digunakan oleh aplikasi contoh. Nilai setiap secret
didasarkan pada nilai yang ditentukan pada langkah-langkah panduan memulai ini sebelumnya.
Ganti DB_PASS dengan sandi quickstart-user
yang Anda buat di langkah panduan memulai Membuat pengguna sebelumnya.
kubectl create secret generic gke-cloud-sql-secrets \ --from-literal=database=quickstart-db \ --from-literal=username=quickstart-user \ --from-literal=password=DB_PASS
Mem-build aplikasi contoh
Go
-
Jalankan perintah
gcloud artifacts repositories create
berikut di Cloud Shell untuk membuat repositori di Artifact Registry bernama gke-cloud-sql-repo di region yang sama dengan cluster Anda. Ganti YOUR_PROJECT_ID dengan project ID.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Jalankan perintah
gcloud builds submit
sebagai berikut di Cloud Shell untuk mem-build container Docker dan memublikasikannya ke Artifact Registry. Ganti YOUR_PROJECT_ID dengan project ID.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Java
-
Jalankan perintah
gcloud artifacts repositories create
berikut di Cloud Shell untuk membuat repositori di Artifact Registry bernama gke-cloud-sql-repo di region yang sama dengan cluster Anda. Ganti YOUR_PROJECT_ID dengan project ID.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Jalankan perintah
mvn
sebagai berikut di Cloud Shell untuk mem-build container Docker dan memublikasikanya ke Artifact Registry. Ganti YOUR_PROJECT_ID dengan project ID.mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \ -Dimage=us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql \ -DskipTests -Djib.to.credHelper=gcloud
Node.js
-
Jalankan perintah
gcloud artifacts repositories create
berikut di Cloud Shell untuk membuat repositori di Artifact Registry bernama gke-cloud-sql-repo di region yang sama dengan cluster Anda. Ganti YOUR_PROJECT_ID dengan project ID.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Jalankan perintah
gcloud builds submit
sebagai berikut di Cloud Shell untuk mem-build container Docker dan memublikasikannya ke Artifact Registry. Ganti YOUR_PROJECT_ID dengan project ID.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Python
-
Jalankan perintah
gcloud artifacts repositories create
berikut di Cloud Shell untuk membuat repositori di Artifact Registry bernama gke-cloud-sql-repo di region yang sama dengan cluster Anda. Ganti YOUR_PROJECT_ID dengan project ID.gcloud artifacts repositories create gke-cloud-sql-repo \ --project=YOUR_PROJECT_ID \ --repository-format=docker \ --location=us-central1 \ --description="GKE Quickstart sample app"
-
Jalankan perintah
gcloud builds submit
sebagai berikut di Cloud Shell untuk mem-build container Docker dan memublikasikannya ke Artifact Registry. Ganti YOUR_PROJECT_ID dengan project ID.gcloud builds submit \ --tag us-central1-docker.pkg.dev/YOUR_PROJECT_ID/gke-cloud-sql-repo/gke-sql .
Men-deploy aplikasi contoh
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Pilih instance
quickstart-instance
untuk membuka halaman Detail instance. - Pada panel ikon di bagian atas halaman, klik Hapus.
- Di kotak dialog Hapus instance, ketik
quickstart-instance
, lalu klik Hapus untuk menghapus instance. -
Di konsol Google Cloud, buka halaman Google Kubernetes Engine.
- Klik kotak centang di samping nama layanan
gke-cloud-sql-quickstart
. - Klik tombol Hapus di bagian atas halaman Google Kubernetes Engine.
Langkah-langkah pembersihan opsional
Jika tidak menggunakan akun layanan Google Cloud yang dibuat untuk panduan memulai ini, Anda dapat menghapusnya.
-
Di Konsol Google Cloud, buka halaman IAM.
- Pilih kotak centang untuk akun IAM bernama
gke-quickstart-service-account
. - Klik Hapus dan konfirmasi penghapusan.
Jika tidak menggunakan API yang diaktifkan sebagai bagian dari panduan memulai ini, Anda dapat menonaktifkannya.
- API yang diaktifkan dalam panduan memulai ini:
- Compute Engine API
- Cloud SQL Admin API
- Google Kubernetes Engine API
- Artifact Registry API
- Cloud Build API
Di konsol Google Cloud, buka halaman APIs.
Pilih API yang ingin Anda nonaktifkan, lalu klik tombol Nonaktifkan API.
Langkah berikutnya
Berdasarkan kebutuhan, Anda dapat mempelajari lebih lanjut cara membuat instance Cloud SQL.Anda juga dapat mempelajari cara membuat pengguna PostgreSQL dan database untuk instance Cloud SQL.
Lihat juga informasi harga Cloud SQL.
Pelajari lebih lanjut:
- Semua opsi konektivitas di Cloud SQL.
- Mengonfigurasi instance Cloud SQL Anda dengan alamat IP publik.
- Mengonfigurasi instance Cloud SQL Anda dengan alamat IP pribadi.
Selain itu, Anda dapat mempelajari cara menghubungkan ke instance Cloud SQL dari aplikasi Google Cloud lainnya: