Tutorial ini menjelaskan cara menyiapkan koneksi dari aplikasi yang berjalan di cluster autopilot Google Kubernetes Engine ke instance AlloyDB.
AlloyDB adalah layanan database yang kompatibel dengan PostgreSQL dan terkelola sepenuhnya di Google Cloud.
Google Kubernetes Engine membantu Anda men-deploy, menskalakan, dan mengelola Kubernetes secara otomatis.
Tujuan
- Build image Docker untuk AlloyDB.
- Menjalankan aplikasi di Google Kubernetes Engine.
- Terhubung ke instance AlloyDB menggunakan Proxy Auth AlloyDB dan IP internal.
Biaya
Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, yaitu , termasuk:
- AlloyDB
- Google Kubernetes Engine
- Artifact Registry
Gunakan kalkulator harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan.
Sebelum memulai
Konsol
- 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 Cloud API yang diperlukan untuk membuat dan terhubung ke AlloyDB untuk PostgreSQL.
Pada langkah Konfirmasi project, klik Berikutnya untuk mengonfirmasi nama project yang akan Anda ubah.
Pada langkah Aktifkan API, klik Aktifkan untuk mengaktifkan hal berikut:
- AlloyDB API
- Artifact Registry API
- Compute Engine API
- Cloud Resource Manager API
- Cloud Build API
- Container Registry API
- Kubernetes Engine API
- Service Networking API
Untuk tujuan tutorial ini, gunakan contoh aplikasi web pengumpulan suara bernama gke-alloydb-app
.
Meluncurkan Cloud Shell
Cloud Shell adalah lingkungan shell untuk mengelola resource yang dihosting di Google Cloud.
Cloud Shell telah diinstal dengan alat command line
Google Cloud CLI dan kubectl. Gcloud CLI menyediakan antarmuka command line utama untuk Google Cloud. kubectl
menyediakan antarmuka command line utama untuk menjalankan perintah terhadap cluster Kubernetes.
Konsol
Untuk meluncurkan Cloud Shell, selesaikan langkah-langkah berikut.
Buka konsol Google Cloud.
Klik Activate Cloud Shell di bagian atas konsol Google Cloud.
Di dialog Authorize Cloud Shell, klik Authorize.
Sesi Cloud Shell akan terbuka di dalam frame yang lebih rendah di konsol. Gunakan shell ini untuk menjalankan perintah
gcloud
dankubectl
.Sebelum menjalankan perintah, tetapkan project default Anda di Google Cloud CLI menggunakan perintah berikut:
gcloud config set project PROJECT_ID
Ganti
PROJECT_ID
dengan project ID Anda.
Membuat cluster AlloyDB dan instance utamanya
Cluster AlloyDB Anda terdiri dari sejumlah node dalam Virtual Private Cloud (VPC) Google. Saat membuat cluster, Anda juga mengonfigurasi akses layanan pribadi antara salah satu VPC dan VPC yang dikelola Google yang berisi cluster baru Anda. Sebaiknya gunakan akses IP internal untuk menghindari eksposur database ke internet publik.
Untuk terhubung ke cluster AlloyDB untuk PostgreSQL dari luar VPC yang dikonfigurasi, Anda harus mengonfigurasi konfigurasi Akses Layanan Pribadi di VPC untuk AlloyDB dan menggunakan jaringan VPC default untuk menjalankan kueri dari aplikasi yang di-deploy di cluster GKE.
gcloud
Di Cloud Shell, periksa apakah rentang alamat IP (IPv4) yang tidak digunakan sudah ditetapkan ke peering layanan:
gcloud services vpc-peerings list --network=default
Lewati langkah berikutnya jika output Anda terlihat seperti berikut:
network: projects/493573376485/global/networks/default peering: servicenetworking-googleapis-com reservedPeeringRanges: - default-ip-range service: services/servicenetworking.googleapis.com
Dalam output ini, nilai
reservedPeeringRanges
adalahdefault-ip-range
, yang dapat Anda gunakan sebagai IP_RANGE_NAME untuk membuat koneksi pribadi di langkah 3.(Lewati jika menggunakan nilai default
reservedPeeringRanges
) Untuk mengalokasikan alamat IP yang tidak digunakan di VPC, gunakan perintah berikut:gcloud compute addresses create IP_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description="VPC private service access" \ --network=default
Ganti
IP_RANGE_NAME
dengan nama Anda untuk alamat IP internal yang tersedia dalam subnet AlloyDB, sepertialloydb-gke-psa-01
.Untuk mengonfigurasi akses layanan menggunakan rentang IP yang dialokasikan, jalankan perintah berikut:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=IP_RANGE_NAME \ --network=default
Untuk men-deploy cluster AlloyDB, jalankan perintah berikut:
gcloud alloydb clusters create CLUSTER_ID \ --database-version=POSTGRES_VERSION \ --password=CLUSTER_PASSWORD \ --network=default \ --region=REGION \ --project=PROJECT_ID
Ganti kode berikut:
CLUSTER_ID
: ID cluster yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung, sepertialloydb-cluster
.VERSION
: versi utama PostgreSQL yang Anda inginkan agar server database cluster kompatibel. Pilih salah satu opsi berikut:14
: untuk kompatibilitas dengan PostgreSQL 1415
: untuk kompatibilitas dengan PostgreSQL 15, yang merupakan versi PostgreSQL default yang didukung16
: untuk kompatibilitas dengan PostgreSQL 16 (Pratinjau)Untuk informasi selengkapnya tentang batasan yang berlaku untuk penggunaan PostgreSQL 16 dalam Pratinjau, lihat Kompatibilitas PostgreSQL 16 Pratinjau.
CLUSTER_PASSWORD
: sandi yang akan digunakan untuk penggunapostgres
default.PROJECT_ID
: ID project Google Cloud tempat Anda ingin menempatkan cluster.REGION
: nama region tempat cluster AlloyDB dibuat, sepertius-central1
.
Untuk men-deploy instance utama AlloyDB, jalankan perintah berikut:
gcloud alloydb instances create INSTANCE_ID \ --instance-type=PRIMARY \ --cpu-count=NUM_CPU \ --region=REGION \ --cluster=CLUSTER_ID \ --project=PROJECT_ID
Ganti kode berikut:
INSTANCE_ID
dengan nama instance AlloyDB pilihan Anda, sepertialloydb-primary
.CLUSTER_ID
dengan nama cluster AlloyDB, sepertialloydb-cluster
.NUM_CPU
dengan jumlah unit pemrosesan virtual, seperti2
.PROJECT_ID
dengan ID project Google Cloud .REGION
dengan nama region tempat cluster AlloyDB dibuat, sepertius-central1
.
Tunggu hingga instance AlloyDB dibuat. Proses ini dapat memerlukan waktu beberapa menit.
Menghubungkan ke instance utama dan membuat database serta pengguna AlloyDB
Konsol
Jika Anda tidak berada di halaman Ringkasan cluster yang baru dibuat, buka halaman Cluster di konsol Google Cloud.
Untuk menampilkan halaman Ringkasan cluster, klik nama cluster CLUSTER_ID.
Di menu navigasi, klik AlloyDB Studio.
Di halaman Login ke AlloyDB Studio, lakukan hal berikut:
Dalam daftar Database, pilih
postgres
.Di daftar Pengguna, pilih
postgres
.Di kolom Sandi, masukkan
CLUSTER_PASSWORD
yang Anda buat di Membuat cluster AlloyDB dan instance utamanya.Klik Autentikasi. Panel Explorer menampilkan daftar objek di database Anda.
Di tab Editor 1, selesaikan langkah-langkah berikut:
Buat database AlloyDB:
CREATE DATABASE DATABASE_NAME;
Ganti
DATABASE_NAME
dengan nama pilihan Anda, sepertitutorial_db
.Klik Run. Tunggu hingga pesan
Statement executed successfully
ditampilkan di panel Results.Klik Hapus.
Buat pengguna dan sandi database AlloyDB:
CREATE USER USERNAME WITH PASSWORD 'DATABASE_PASSWORD';
Ganti kode berikut:
USERNAME
: nama pengguna AlloyDB, sepertitutorial_user
.DATABASE_PASSWORD
: sandi untuk database AlloyDB Anda, sepertitutorial
.
Klik Run. Tunggu hingga pesan
Statement executed successfully
ditampilkan di panel Results.
Di panel Penjelajah di AlloyDB Studio, klik manage_accounts Ganti pengguna/database.
Di halaman Login ke AlloyDB Studio, lakukan hal berikut:
Di daftar Database, pilih
DATABASE_NAME
, sepertitutorial_db
.Di daftar Pengguna, pilih
postgres
.Di kolom Sandi, masukkan
CLUSTER_PASSWORD
yang Anda buat di Membuat cluster AlloyDB dan instance utamanya.Klik Autentikasi. Panel Explorer menampilkan daftar objek di database Anda.
Di tab Editor 1, selesaikan langkah-langkah berikut:
Berikan semua izin kepada pengguna database AlloyDB:
GRANT ALL PRIVILEGES ON DATABASE "DATABASE_NAME" to "USERNAME";
Klik Run. Tunggu hingga pesan
Statement executed successfully
ditampilkan di panel Results.Klik Hapus.
Berikan izin kepada pengguna database AlloyDB pada skema publik:
GRANT CREATE ON SCHEMA public TO "USERNAME";
Klik Run. Tunggu hingga pesan
Statement executed successfully
ditampilkan di panel Results.
Catat nama database, nama pengguna, dan sandi. Anda akan menggunakan informasi ini di Membuat secret Kubernetes.
Membuat cluster GKE Autopilot
Cluster berisi setidaknya satu mesin bidang kontrol cluster dan beberapa mesin pekerja yang disebut node. Node adalah instance virtual machine (VM) Compute Engine yang menjalankan proses Kubernetes yang diperlukan untuk menjadikannya bagian dari cluster. Anda men-deploy aplikasi ke cluster, kemudian aplikasi akan berjalan di node.
Konsol
Di Konsol Google Cloud, buka halaman Kubernetes Clusters.
Klik Create.
Tentukan
GKE_CLUSTER_ID
untuk cluster Autopilot Anda di kolom Nama di halaman Dasar-Dasar Cluster, sepertiap-cluster
.Di kolom Region, pilih
REGION
, sepertius-central1
.Klik Create.
Tunggu hingga cluster GKE dibuat. Proses ini dapat memerlukan waktu beberapa menit.
gcloud
Buat cluster Autopilot:
gcloud container clusters create-auto GKE_CLUSTER_ID \
--location=REGION
Ganti kode berikut:
GKE_CLUSTER_ID
: nama cluster Autopilot, sepertiap-cluster
.REGION
: nama region tempat cluster GKE di-deploy, sepertius-central1
.
Tunggu hingga cluster GKE dibuat. Proses ini dapat memerlukan waktu beberapa menit.
Menghubungkan ke AlloyDB menggunakan Proxy Auth AlloyDB
Sebaiknya gunakan Proxy Auth AlloyDB untuk terhubung ke AlloyDB. Proxy Auth AlloyDB menyediakan enkripsi dan autentikasi yang kuat menggunakan Identity and Access Management (IAM), yang dapat membantu menjaga keamanan database Anda.
Saat Anda terhubung menggunakan Proxy Auth AlloyDB, Proxy Auth AlloyDB
ditambahkan ke Pod Anda menggunakan pola penampung sidecar
. Penampung Proxy Auth AlloyDB berada di Pod yang sama dengan aplikasi Anda, yang memungkinkan aplikasi terhubung ke Proxy Auth AlloyDB menggunakan localhost
, sehingga meningkatkan keamanan dan performa.
Membuat dan memberikan peran ke akun layanan Google
Di Google Cloud, aplikasi menggunakan akun layanan untuk melakukan panggilan API yang diotorisasi dengan mengautentikasi sebagai akun layanan itu sendiri. Saat aplikasi melakukan autentikasi sebagai akun layanan, aplikasi memiliki akses ke semua resource yang boleh diakses oleh akun layanan.
Untuk menjalankan Proxy Auth AlloyDB di Google Kubernetes Engine, Anda membuat akun layanan Google untuk merepresentasikan aplikasi Anda. Sebaiknya buat akun layanan yang unik untuk setiap aplikasi, daripada menggunakan akun layanan yang sama di mana saja. Model ini lebih aman karena memungkinkan Anda membatasi izin per aplikasi.
Konsol
Di konsol Google Cloud, buka halaman IAM.
Di halaman Permissions for project "
PROJECT_ID
", temukan baris yang berisi akun layanan komputasi defaultPROJECT_NUMBER-compute@developer.gserviceaccount.com
, lalu klik edit Edit principal di baris tersebut.Untuk mendapatkan
PROJECT_NUMBER
yang merupakan ID unik yang dibuat secara otomatis untuk project Anda, lakukan hal berikut:Buka halaman Dasbor di konsol Google Cloud.
Klik menu drop-down Select from di bagian atas halaman. Di jendela Select from yang muncul, pilih project Anda.
PROJECT_NUMBER
ditampilkan di kartu Project info pada Dasbor project.Klik
Tambahkan peran lain.Untuk memberikan peran
roles/artifactregistry.reader
, klik Pilih peran dan pilihArtifact Registry
dari Menurut produk atau layanan, lalu pilihArtifact Registry Reader
dari Peran.Klik Simpan. Akun utama diberi peran.
Untuk membuat akun layanan bagi aplikasi contoh GKE, buka halaman Service accounts. Buka halaman Service accounts
Pilih project Anda.
Di halaman Service accounts for project "
PROJECT_ID
", klik Create service account.Di bagian Detail akun layanan pada halaman Buat akun layanan, masukkan
GSA_NAME
di kolom Nama akun layanan, sepertigke-alloydb-gsa
.Klik Buat dan lanjutkan.
Bagian Berikan akses project ke akun layanan ini (opsional) di halaman Buat akun layanan akan muncul.
Untuk memberikan peran
roles/alloydb.client
, lakukan hal berikut:- Klik Pilih peran.
- Pilih
Cloud AlloyDB
dari Menurut produk atau layanan. - Pilih
Cloud AlloyDB Client
dari Peran.
Klik
Tambahkan peran lain.Untuk memberikan peran
roles/serviceusage.serviceUsageConsumer
, klik Pilih peran dan pilihService Usage
dari Menurut produk atau layanan, lalu pilihService Usage Consumer
dari Peran.Klik Done. Akun layanan Google diberi peran.
gcloud
Untuk memberikan izin yang diperlukan ke akun layanan Google default agar Compute Engine dapat membaca dari Artifact Registry, jalankan perintah berikut:
PROGECT_NUM=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:$PROGECT_NUM-compute@developer.gserviceaccount.com" --role="roles/artifactregistry.reader"
Untuk membuat akun layanan Google untuk aplikasi Anda, buat akun layanan IAM:
gcloud iam service-accounts create GSA_NAME \ --display-name="gke-tutorial-service-account"
Ganti
GSA_NAME
dengan nama akun layanan IAM baru Anda, sepertigke-alloydb-gsa
.Untuk memberikan peran
alloydb.client
danserviceusage.serviceUsageConsumer
ke GSA aplikasi Anda, gunakan perintah berikut:gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com --role="roles/alloydb.client" gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com --role="roles/serviceusage.serviceUsageConsumer"
Mengonfigurasi Workload Identity Federation for GKE untuk aplikasi contoh
Anda perlu mengonfigurasi GKE untuk menyediakan akun layanan ke Proxy Auth AlloyDB menggunakan fitur Workload Identity Federation for GKE. Metode ini memungkinkan Anda mengikat akun layanan Kubernetes ke akun layanan Google. Akun layanan Google kemudian dapat diakses oleh aplikasi yang menggunakan akun layanan Kubernetes yang cocok.
Akun layanan Google adalah identitas IAM yang mewakili aplikasi Anda di Google Cloud. Akun layanan Kubernetes adalah identitas yang mewakili aplikasi Anda di cluster Google Kubernetes Engine.
Workload Identity Federation for GKE mengikat akun layanan Kubernetes ke akun layanan Google. Binding ini menyebabkan deployment dengan akun layanan Kubernetes tersebut diautentikasi sebagai akun layanan Google dalam interaksinya dengan Google Cloud.
gcloud
Di konsol Google Cloud, buka Cloud Shell.
Di Cloud Shell, dapatkan kredensial untuk cluster Anda:
gcloud container clusters get-credentials GKE_CLUSTER_ID --region REGION --project PROJECT_ID
Perintah ini mengonfigurasi
kubectl
untuk menggunakan cluster GKE yang Anda buat.Di editor pilihan Anda, selesaikan langkah-langkah berikut:
Buka
service-account.yaml
menggunakan nano, misalnya:nano service-account.yaml
Di editor, tempel konten berikut:
apiVersion: v1 kind: ServiceAccount metadata: name: KSA_NAME
Ganti
KSA_NAME
dengan nama akun layanan, sepertiksa-alloydb
.Tekan Control+O, tekan ENTER untuk menyimpan perubahan, dan tekan Control+X untuk keluar dari editor.
Buat akun layanan Kubernetes untuk aplikasi contoh Anda:
kubectl apply -f service-account.yaml
Berikan izin untuk akun layanan Kubernetes Anda agar dapat meniru identitas akun layanan Google dengan membuat binding kebijakan IAM di antara kedua akun layanan tersebut:
gcloud iam service-accounts add-iam-policy-binding \ --role="roles/iam.workloadIdentityUser" \ --member="serviceAccount:PROJECT_ID.svc.id.goog[default/KSA_NAME]" \ GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
Tambahkan anotasi
iam.gke.io/gcp-service-account=GSA_NAME@PROJECT_ID
ke akun layanan Kubernetes, menggunakan alamat email akun layanan Google:kubectl annotate serviceaccount \ KSA_NAME \ iam.gke.io/gcp-service-account=GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
Mengisi Artifact Registry dengan image aplikasi contoh
gcloud
Di Cloud Shell, gunakan perintah berikut untuk meng-clone repositori dengan kode aplikasi
gke-alloydb-app
contoh dari GitHub:git clone https://github.com/GoogleCloudPlatform/alloydb-auth-proxy && cd alloydb-auth-proxy/examples/go
Buat repositori di Artifact Registry untuk image Docker:
gcloud artifacts repositories create REPOSITORY_ID --location REGION --repository-format=docker --project PROJECT_ID
Ganti kode berikut:
PROJECT_ID
: ID project Anda.REPOSITORY_ID
: nama repositori Anda, sepertigke-alloydb-sample-app
.
Di dialog Authorize Cloud Shell, klik Authorize. Perintah ini tidak muncul jika Anda telah melakukan langkah ini sebelumnya.
Untuk mem-build container Docker dan memublikasikannya ke Artifact Registry, gunakan perintah berikut:
gcloud builds submit --tag REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_ID/SAMPLE_APPLICATION --project PROJECT_ID
Ganti kode berikut:
PROJECT_ID
: ID project Anda.REPOSITORY_ID
: nama repositori Anda, sepertigke-alloydb-sample-app
.SAMPLE_APPLICATION
: nama aplikasi web contoh Anda, sepertigke-alloydb-app
.
Membuat secret Kubernetes
Anda 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 Menghubungkan ke instance utama dan membuat database serta pengguna AlloyDB dalam tutorial ini. Untuk mengetahui informasi selengkapnya, lihat Secret.
gcloud
Gunakan SECRET
Kubernetes, seperti gke-alloydb-secret
untuk menyimpan informasi koneksi:
kubectl create secret generic SECRET \
--from-literal=database=DATABASE_NAME \
--from-literal=username=USERNAME \
--from-literal=password=DATABASE_PASSWORD
Men-deploy dan menjalankan Proxy AlloyDB dalam pola file bantuan
Sebaiknya jalankan Proxy AlloyDB dalam pola sidecar
sebagai penampung tambahan
yang berbagi Pod dengan aplikasi Anda karena alasan berikut:
- Mencegah traffic SQL Anda terekspos secara lokal. Proxy AlloyDB memberikan enkripsi pada koneksi keluar, tetapi Anda perlu membatasi eksposur untuk koneksi masuk.
- Mencegah titik tunggal kegagalan. Akses setiap aplikasi ke database Anda independen dari yang lain, sehingga lebih tangguh.
- Membatasi akses ke Proxy AlloyDB, sehingga Anda dapat menggunakan izin IAM per aplikasi, bukan mengekspos database ke seluruh cluster.
- Memungkinkan Anda menentukan cakupan permintaan resource dengan lebih akurat. Karena Proxy AlloyDB menggunakan resource secara linear untuk digunakan, pola ini memungkinkan Anda menentukan cakupan dan meminta resource secara lebih akurat agar sesuai dengan aplikasi Anda saat diskalakan.
- Memungkinkan Anda mengonfigurasi aplikasi agar terhubung menggunakan
127.0.0.1
pada DB_PORT yang Anda tentukan di bagian perintah.
Setelah membuat cluster GKE dan mem-build image container untuk aplikasi, deploy aplikasi dalam container ke cluster GKE.
gcloud
Dalam tutorial ini, Anda akan men-deploy aplikasi web pengumpulan suara contoh, gke-alloydb-app
, yang menggunakan AlloyDB sebagai datastore.
Dapatkan koneksi instance INSTANCE_URI untuk instance utama AlloyDB yang ingin dihubungkan dengan proxy AlloyDB:
gcloud alloydb instances describe INSTANCE_ID \ --cluster=CLUSTER_ID \ --region=REGION \ --format="value(name)"
Ganti kode berikut:
INSTANCE_ID
: nama untuk instance, sepertialloydb-primary
.CLUSTER_ID
: nama untuk cluster, sepertialloydb-cluster
.
Output berisi INSTANCE_URI yang Anda tentukan dalam file definisi
proxy_sidecar_deployment.yaml
pada langkah 2.b bagian ini.Di editor pilihan Anda, misalnya, nano, selesaikan langkah-langkah berikut:
Buka
proxy_sidecar_deployment.yaml
menggunakan editor pilihan Anda, misalnya, nano:nano proxy_sidecar_deployment.yaml
Di editor, tempel konten berikut:
apiVersion: apps/v1 kind: Deployment metadata: name: gke-alloydb spec: selector: matchLabels: app: SAMPLE_APPLICATION template: metadata: labels: app: SAMPLE_APPLICATION spec: serviceAccountName: KSA_NAME containers: - name: SAMPLE_APPLICATION # Replace <PROJECT_ID> and <REGION> with your project ID and region. image: REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_ID/SAMPLE_APPLICATION:latest imagePullPolicy: Always # This app listens on port 8080 for web traffic by default. ports: - containerPort: 8080 env: - name: PORT value: "8080" # This project uses environment variables to determine # how you would like to run your application # To use the Go connector (recommended) - use INSTANCE NAME # To use TCP - Setting INSTANCE_HOST will use TCP (e.g., 127.0.0.1) - name: INSTANCE_HOST value: "127.0.0.1" - name: DB_PORT value: "5432" # To use Automatic IAM Authentication (recommended) # use DB_IAM_USER instead of DB_USER # you may also remove the DB_PASS environment variable - name: DB_USER valueFrom: secretKeyRef: name: SECRET key: username - name: DB_PASS valueFrom: secretKeyRef: name: SECRET key: password - name: DB_NAME valueFrom: secretKeyRef: name: SECRET key: database # If you are using the Go connector (recommended), you can # remove alloydb-proxy (everything below this line) - name: alloydb-proxy # This uses the latest version of the AlloyDB Auth proxy # It is recommended to use a specific version for production environments. # See: https://github.com/GoogleCloudPlatform/alloydb-auth-proxy image: gcr.io/alloydb-connectors/alloydb-auth-proxy:1.10.1 command: - "/alloydb-auth-proxy" #AlloyDB instance name as parameter for the AlloyDB proxy # Use <INSTANCE_URI> - "INSTANCE_URI" securityContext: # The default AlloyDB Auth proxy image runs as the # "nonroot" user and group (uid: 65532) by default. runAsNonRoot: true resources: requests: # The proxy's memory use scales linearly with the number of active # connections. Fewer open connections will use less memory. Adjust # this value based on your application's requirements. memory: "2Gi" # The proxy's CPU use scales linearly with the amount of IO between # the database and the application. Adjust this value based on your # application's requirements. cpu: "1"
Ganti
INSTANCE_URI
dengan jalur ke instance utama AlloyDB Anda dari langkah 1, sepertiprojects/PROJECT_ID/locations/REGION/clusters/CLUSTER_ID/instances/INSTANCE_ID
.Tekan Control+O, tekan ENTER untuk menyimpan perubahan, dan tekan Control+X untuk keluar dari editor.
Untuk men-deploy aplikasi
gke-alloydb-app
, terapkan file definisiproxy_sidecar_deployment.yaml
yang Anda buat di langkah sebelumnya:kubectl apply -f proxy_sidecar_deployment.yaml
Verifikasi bahwa status untuk kedua penampung di Pod adalah
running
:kubectl get pods
Contoh output:
NAME READY STATUS RESTARTS AGE gke-alloydb-8d59bb4cc-62xgh 2/2 Running 0 2m53s
Untuk terhubung ke contoh aplikasi
gke-alloydb-app
, gunakan layanan — misalnya, load balancer HTTP eksternal. Di editor pilihan Anda, ikuti langkah-langkah berikut:Buka
service.yaml
menggunakan nano, misalnya:nano service.yaml
Di editor nano, tempel konten berikut:
apiVersion: v1 kind: Service metadata: name: SAMPLE_APPLICATION spec: type: LoadBalancer selector: app: SAMPLE_APPLICATION ports: - port: 80 targetPort: 8080
Ganti
SAMPLE_APPLICATION
dengan nama aplikasi web contoh Anda, sepertigke-alloydb-app
.Tekan Control+O, tekan ENTER untuk menyimpan perubahan, dan tekan Control+X untuk keluar dari editor.
Untuk men-deploy aplikasi
gke-alloydb-app
layanan, terapkan fileservice.yaml
:kubectl apply -f service.yaml
Untuk mendapatkan detail layanan termasuk alamat IP eksternal layanan, gunakan perintah berikut:
kubectl get service
Contoh output:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE gke-alloydb-app LoadBalancer 34.118.229.246 35.188.16.172 80:32712/TCP 45s kubernetes ClusterIP 34.118.224.1 <none> 443/TCP 85m
Gunakan nilai IP eksternal dari langkah sebelumnya untuk mengakses aplikasi contoh di URL berikut:
http://EXTERNAL-IP
Contoh file konfigurasi
proxy_sidecar_deployment.yaml
service.yaml
service-account.yaml
Pembersihan
Agar tidak dikenai biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
Di Konsol Google Cloud, buka halaman Manage resources.
Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
Pada dialog, ketik
PROJECT_ID
, lalu klik Shut down untuk menghapus project.