Men-deploy cluster ketersediaan tinggi AlloyDB Omni di VM GCE menggunakan RPM Orchestrator

1. Pengantar

Codelab ini menunjukkan deployment cluster ketersediaan tinggi (HA) AlloyDB Omni di Virtual Machine (VM) Google Compute Engine (GCE). Di akhir codelab ini, Anda akan menyediakan arsitektur referensi HA yang terdiri dari 3 node Database dan 2 node HAProxy, beserta node kontrol untuk operasi pengelolaan.

Prasyarat

  • Akses ke Project Google Cloud dan Cloud Shell dari Konsol Cloud.
  • Google Cloud SDK (gcloud) diinstal dan dikonfigurasi. Untuk mengetahui detail tentang cara menginstal gcloud, lihat gcloud-install
  • Terraform v1.9.8 diinstal.

Yang akan Anda pelajari

  • Cara membuat dan menyiapkan VM GCE untuk AlloyDB Omni.
  • Cara menginstal dan menjalankan Orchestrator RPM AlloyDB Omni.
  • Cara menginstal dan mengonfigurasi RPM AlloyDB Omni untuk arsitektur referensi HA.

Yang akan Anda butuhkan

  • Mendapatkan link URL ke RPM AlloyDB Omni dan orchestrator RPM. Untuk melakukannya, Anda harus mengisi formulir pendaftaran alloydb omni. Link akan dikirim ke email Anda yang merupakan server URL repositori. Inisialisasi variabel lingkungan berikut agar URL mudah diakses dan akan digunakan selama codelab.
    export ORCHESTRATOR_ANSIBLE_COLLECTION_PATH="..."
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_COMMON_REPOSITORY_URL=....
    export ETCD_REPOSITORY_URL="..."
    
  • Terminal yang berfungsi dengan akses ke stack deployment AlloyDB Omni. Anda dapat menggunakan Cloud Shell untuk tujuan ini.

2. Penyiapan dan Persyaratan

Penyiapan project

Membuat Project Google Cloud

  1. Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
  2. Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Dari Konsol Google Cloud, klik ikon Cloud Shell di toolbar kanan atas:

Ikon untuk mengaktifkan Cloud Shell

Atau, Anda dapat menekan G, lalu S. Urutan ini akan mengaktifkan Cloud Shell jika Anda berada di Konsol Google Cloud atau menggunakan link ini.

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

Terminal Google Cloud Shell yang menunjukkan bahwa lingkungan telah terhubung

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.

3. Membuat Virtual Machine Google Cloud Compute Engine

Menyiapkan skrip Terraform

  1. Tentukan variabel lingkungan untuk project ID dan nama cluster yang diinginkan. Anda akan menggunakannya di seluruh codelab.
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
    Catatan: Project ID Google Cloud hanya boleh memiliki panjang 6 hingga 30 karakter. Untuk mengetahui informasi selengkapnya, lihat https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects#before_you_begin
  2. Pastikan Anda telah login dengan pengguna akun Google Cloud.
    gcloud auth login
    
  3. Buat direktori kerja untuk deployment Anda dan salin file konfigurasi Terraform yang diperlukan dari sumber repositori Anda.
    mkdir -p ~/alloydb-omni/$PROJECT/$CLUSTER
    cd ~/alloydb-omni/$PROJECT/$CLUSTER
    gcloud storage cp gs://alloydb-omni-install/rpm-orchestrator/gce/terraform/*.tf .
    
  4. Buat file terraform.tfvars untuk menentukan parameter yang diperlukan sesuai dengan arsitektur referensi sesuai dengan konten berikut:
    cat > terraform.tfvars <<EOF
    # Required instance counts for reference architecture
    db_instance_count      = 3
    haproxy_instance_count = 2
    control_instance_count = 1
    
    # Optional: Customize if needed with the below variables
    # os_image             = "rocky-linux-cloud/rocky-linux-9"
    # zone                 = "us-west4-c"
    # region_1             = "us-west4"
    # db_instance_type     = "c4-highmem-4"
    # db_disk_type         = "hyperdisk-balanced"
    # db_data_size         =  "50" # GB
    # data_dir             =  "/data"
    EOF
    

Menjalankan skrip Terraform dan Memvalidasi

  1. Anda kini dapat menyediakan VM.
    terraform init
    
  2. Sebelum membuat VM, pastikan Anda memiliki akses yang diperlukan untuk membuat VM dan resource lainnya. Singkatnya, Anda akan memerlukan izin berikut.
    roles/compute.admin
    roles/iam.roleAdmin
    roles/compute.osAdminLogin
    roles/iam.serviceAccountCreator
    roles/iam.serviceAccountUser
    roles/artifactregistry.repoAdmin
    roles/storage.objectUser
    roles/resourcemanager.projectIamAdmin
    roles/serviceusage.serviceUsageAdmin
    
  3. Validasi konfigurasi dan terapkan konfigurasi untuk menyediakan resource.
    terraform validate
    terraform apply --auto-approve
    
    Catatan: Pastikan Anda menggunakan Terraform v1.9.8 seperti yang diharapkan oleh konfigurasi deployment.
  4. Setelah Terraform selesai, verifikasi bahwa virtual machine telah berhasil dibuat dengan mencantumkan instance yang dibuat menggunakan gcloud.
    gcloud compute instances list --filter="name~$CLUSTER" --project=$PROJECT
    
    Anda akan melihat instance yang sesuai dengan 3 node DB, 2 node HAProxy, dan VM kontrol serta zona yang sesuai. Catat ZONA untuk node kontrol. Kita akan memerlukannya selama codelab ini, nanti.
    export ZONE=$(gcloud compute instances list \
      --filter="name=$CLUSTER-control"          \
      --format="value(zone)" --project=$PROJECT)
    

4. Menyiapkan VM untuk deployment

Anda harus membuat sesi SSH ke node kontrol dan melakukan langkah-langkah untuk mengaktifkan akses SSH ke semua VM (juga disebut sebagai node).

  1. Pastikan variabel lingkungan untuk project dan cluster Anda ditentukan.
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
  2. Buat kunci SSH dan tambahkan kunci yang sama untuk login ke VM kontrol.
    # Replace values with your specific GCP project, cluster and zone details
    ssh-keygen -t ed25519 -f $HOME/.ssh/google_compute_engine
    gcloud compute os-login ssh-keys add --key-file=$HOME/.ssh/google_compute_engine.pub --project=$PROJECT
    
  3. Buat aturan firewall untuk mengizinkan koneksi SSH dan juga mengizinkan traffic VRRP.
    gcloud compute config-ssh --project=$PROJECT
    gcloud compute firewall-rules create $CLUSTER-allow-ssh --network=$CLUSTER --project=$PROJECT --direction=INGRESS --action=allow --rules=tcp:22 --source-ranges="0.0.0.0/0"
    gcloud compute firewall-rules create $CLUSTER-allow-vrrp --network=$CLUSTER --project=$PROJECT --allow=112 --source-ranges="0.0.0.0/0"
    
  4. Hubungkan ke VM kontrol melalui SSH:
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
  5. Buat grup Linux di node kontrol dengan nama yang sama dengan nama pengguna:
    sudo groupadd $(id -un)
    sudo usermod -aG $(id -un) $(id -un)
    
  6. Penyiapan Terraform membuat beberapa skrip konfigurasi dan menempatkannya di direktori /tmp/ VM kontrol yang mencakup hal-hal seperti nama cluster, akun layanan, nama project, dll.Buat akses ssh tanpa sandi dari node kontrol ke semua node cluster menggunakan skrip penyiapan di node kontrol.
    /tmp/setup-ssh-for-cluster.sh
    
    Penting: Catat pengguna service_account. Kita akan menggunakannya sebagai SSH_USER nanti di codelab ini.
  7. Untuk codelab ini, kita dapat menonaktifkan SELinux di semua node. Skrip Terraform menambahkan '/tmp/run-all.sh' yang dapat digunakan untuk tujuan ini.
    /tmp/run-all.sh sudo setenforce 0
    
  8. Jika Anda telah mendaftar ke AlloyDB Omni dan mendapatkan link, sekarang saatnya menambahkan URL tersebut ke variabel lingkungan.
    cat >> ~/.codelab.env <<EOF
    export ORCHESTRATOR_ANSIBLE_COLLECTION_PATH="..."
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL="..."
    export ALLOYDB_OMNI_COMMON_REPOSITORY_URL=....
    export ETCD_REPOSITORY_URL="..."
    EOF
    
    Tentukan IP virtual untuk lingkungan Anda dari variabel input cidr_range dalam file terraform/variables.tf sehingga tidak bertentangan dengan node lain, seperti yang ditunjukkan dalam contoh berikut:
    cat >> ~/.codelab.env <<EOF
    export VIRTUAL_IP="10.1.0.50"
    EOF
    

5. Menginstal komponen software yang diperlukan di semua VM

Langkah berikutnya adalah menginstal komponen SW yang diperlukan di VM. Hal ini dapat dikoordinasikan di node kontrol. Semua perintah berikut harus dijalankan di node kontrol.

  1. Hubungkan ke VM kontrol melalui SSH, jika belum berada di node kontrol.
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
    Setelah Anda berada di perintah ssh VM kontrol, sumberkan file lingkungan.
    source ~/.codelab.env
    
  2. Di node kontrol, instal Ansible dan library Python yang diperlukan.
    sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y
    sudo dnf install -y ansible
    sudo dnf install -y python3-grpcio python3-protobuf python3-googleapis-common-protos python3-grpcio-status
    
  3. Selanjutnya, download file tar koleksi Ansible Orchestrator RPM, lalu instal.
    gcloud storage cp "gs://${ORCHESTRATOR_ANSIBLE_COLLECTION_PATH#https://storage.googleapis.com/}google-alloydbomni_orchestrator-*.tar.gz" .
    ansible-galaxy collection install google-alloydbomni_orchestrator-0.1.0-6.tar.gz
    ansible-galaxy collection list | grep alloydbomni_orchestrator
    
    Catatan: Pastikan variabel ORCHESTRATOR_ANSIBLE_COLLECTION_PATH memiliki "/" di akhir.
  4. Orchestrator menggunakan file spesifikasi deployment dalam format inventaris Ansible untuk memahami topologi cluster Anda. Buat file bernama deployment_spec.yaml dengan detail node Anda di node kontrol.
    cat > deployment_spec.yaml <<EOF
    alloydbomni:
      vars:
        cluster_manager:
          name: "$CLUSTER"
        etcd:
          setup: true
          config_forcewrite: true
        alloydbomni:
          major_version: "18"
          repo_url: $ALLOYDB_OMNI_REPOSITORY_URL
        alloydbomni_monitor:
          repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL
        alloydbomni_cluster_manager:
          repo_url: $ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
        alloydbomni_node_manager:
          repo_url: $ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
        pgbouncer:
          repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL
        pgbackrest:
          repo_url: $ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    
      children:
        primary_instance_nodes:
          hosts:
            $CLUSTER-db1:
            $CLUSTER-db2:
            $CLUSTER-db3:
        load_balancer_nodes:
          hosts:
            $CLUSTER-haproxy1:
            $CLUSTER-haproxy2:
    EOF
    
    Catatan: Tinjau file yang dihasilkan untuk memastikan file tersebut merujuk ke nilai yang valid.
  5. Buat playbook bernama install.yaml yang mereferensikan peran penginstalan dari koleksi orchestrator.
    cat > install.yaml <<EOF
    - name: Install AlloyDB Omni cluster components
      hosts: all
      vars:
        ansible_become: true
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      roles:
        - role: google.alloydbomni_orchestrator.install
    EOF
    
    Catatan: Tinjau file yang dihasilkan untuk memastikan file tersebut merujuk ke nilai yang valid.
  6. Jalankan playbook menggunakan file inventaris Anda untuk mendownload dan menginstal RPM di semua node yang ditentukan.
    ansible-playbook -i deployment_spec.yaml install.yaml
    

6. Mem-bootstrap Cluster AlloyDB Omni

Pada tahap ini, kita telah menginstal semua komponen yang diperlukan di semua node. Kita siap untuk mem-bootstrap cluster AlloyDB Omni.

  1. Hubungkan ke VM kontrol melalui SSH, jika belum berada di node kontrol.
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
    Setelah Anda berada di perintah ssh VM kontrol, sumberkan file lingkungan.
    source ~/.codelab.env
    
  2. Buat hash untuk sandi Anda dan catat hash tersebut.
    encoded_password=$(echo -n "your unique password" | base64)
    
  3. Untuk membuat cluster, AlloyDB Omni harus mengetahui cara mengonfigurasinya. Buat nama file dbcluster.yaml untuk spesifikasi cluster DB.
    cat > dbcluster.yaml <<EOF
    Secret:
      metadata:
        name: db-pw-$CLUSTER
      spec:
        type: Opaque
        data:
          $CLUSTER: $encoded_password
    ---
    DBCluster:
      metadata:
        name: $CLUSTER
      spec:
        databaseVersion: 18.1.0
        mode: ""
        availability:
          numberOfStandbys: 2
          enableAutoFailover: true
          enableAutoHeal: true
          autoFailoverTriggerThreshold: 2
          autoHealTriggerThreshold: 2
          healthcheckPeriodSeconds: 5
          replayReplicationSlotsOnStandbys: false
        primarySpec:
          adminUser:
            passwordRef:
              name: db-pw-$CLUSTER
          resources:
            cpu: 4
            memory: 32Gi
            disks:
            - name: DataDisk
              path: $PGDATA
          dbLoadBalancerOptions:
            gcp:
              loadBalancerIP: "$VIRTUAL_IP"
              loadBalancerType: "internal"
              loadBalancerInterface: "eth0"
    EOF
    
  4. Buat playbook bernama bootstrap.yaml, yang akan merujuk ke peran ansible bootstrap untuk membuat Cluster AlloyDB Omni.
    cat > bootstrap.yaml <<EOF
    - name: Create DBCluster
      hosts: localhost
      vars:
        ansible_become: true
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      roles:
      - role: google.alloydbomni_orchestrator.bootstrap
    EOF
    
  5. Jalankan playbook untuk membuat cluster
    ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=dbcluster.yaml
    

7. (Opsional) Mengonfigurasi Penggabung Koneksi PgBouncer

AlloyDB Omni mendukung penggabungan koneksi ringan menggunakan PgBouncer. Anda dapat mengonfigurasi dan mem-bootstrap PgBouncer segera setelah cluster Anda disediakan.

  1. Buat file spesifikasi resource bernama pgbouncer.yaml yang mengaitkan penggabung koneksi dengan cluster database Anda:
    cat > pgbouncer.yaml <<EOF
    PgBouncer:
      metadata:
        name: pgbouncer-pooler
      spec:
        dbclusterRef: $CLUSTER
        allowSuperUserAccess: true
        accessMode: "rw"
        port: 6432
    EOF
    
  2. Bootstrap penggabung PgBouncer menggunakan playbook bootstrap.yaml yang sama yang dibuat sebelumnya, dengan meneruskan file spesifikasi baru:
    ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=pgbouncer.yaml
    

8. Memverifikasi Cluster AlloyDB Omni

Untuk memverifikasi bahwa cluster Anda berfungsi dengan benar dan dapat diakses menggunakan load balancer, Anda dapat terhubung ke cluster menggunakan klien PostgreSQL standar dari node kontrol.

  1. Instal repositori dan paket klien PostgreSQL 18 di node kontrol:
    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    sudo dnf install -y postgresql18
    
  2. Hubungkan ke cluster menggunakan IP virtual yang dicadangkan sebelumnya. Anda akan diminta memasukkan sandi yang dienkode di dbcluster.yaml:
    /usr/pgsql-18/bin/psql -h $VIRTUAL_IP -U postgres -W
    
  3. Setelah terhubung, Anda dapat menjalankan kueri SQL dasar untuk memverifikasi status cluster, misalnya, memeriksa versi database:
    postgres=# SELECT version();
    
    Anda akan melihat output yang menunjukkan PostgreSQL 18 berjalan dengan AlloyDB Omni. Ketik \q untuk keluar dari perintah.

9. (Opsional) Mencadangkan Data menggunakan pgBackRest

AlloyDB Omni terintegrasi dengan pgBackRest untuk mengelola cadangan langsung ke Cloud Storage. Anda dapat mengonfigurasi rencana cadangan dan memicu cadangan sesuai permintaan ke bucket GCS yang dibuat oleh penyiapan Terraform Anda.

  1. Buat file spesifikasi rencana cadangan bernama backup_plan.yaml yang mengarah ke bucket GCS yang disediakan:
    cat > backup_plan.yaml <<EOF
    BackupPlan:
      metadata:
        name: pgb-plan
      spec:
        dbclusterRef: $CLUSTER
        backupLocation:
          type: GCS
          gcsOptions:
            bucket: $CLUSTER-gcs-backups
            key: /backups
    EOF
    
  2. Buat playbook Ansible bernama backup.yaml yang mereferensikan peran pengelolaan cadangan:
    cat > backup.yaml <<EOF
    - name: Manage AlloyDB Omni Backups
      hosts: localhost
      vars:
        ansible_become: true
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      roles:
        - role: google.alloydbomni_orchestrator.backup
    EOF
    
  3. Terapkan rencana cadangan menggunakan playbook backup.yaml:
    ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=backup_plan.yaml
    
  4. Setelah rencana berhasil dibuat, buat file resource cadangan sesuai permintaan bernama create_backup.yaml.
    cat > create_backup.yaml <<EOF
    Backup:
      metadata:
        name: on-demand-backup
      spec:
        backupPlanRef: pgb-plan
        dbclusterRef: $CLUSTER
    EOF
    
  5. Jalankan playbook untuk memulai pencadangan:
    ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=create_backup.yaml
    
  6. Untuk memverifikasi status cadangan, buat playbook status.yaml:
- name: Fetch AlloyDB Omni Resource Status
hosts: localhost
vars:
  ansible_become: true
  ansible_user: $SSH_USER
  ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
roles:
  - role: google.alloydbomni_orchestrator.status
EOF
  1. Jalankan playbook untuk mencantumkan semua cadangan:
ansible-playbook status.yaml -i deployment_spec.yaml -e resource_type=Backup
  1. Atau, untuk mendapatkan info mendetail tentang cadangan tertentu yang dibuat sebelumnya, teruskan -e resource_name=on-demand-backup:
ansible-playbook status.yaml -i deployment_spec.yaml \
  -e resource_type=Backup \
  -e resource_name=on-demand-backup

10. Membersihkan Resource

Setelah selesai dengan deployment, Anda dapat menghancurkan resource yang disediakan untuk menghindari biaya.

  1. Buat playbook bernama teardown.yaml:
    cat > teardown.yaml <<EOF
    - name: Tear down AlloyDB Omni cluster
      hosts: localhost
      vars:
        ansible_become: true
        ansible_user: $SSH_USER
        ansible_ssh_private_key_file: $HOME/ssh-key-cluster-sa
      roles:
      - role: google.alloydbomni_orchestrator.delete
    EOF
    
  2. Jalankan playbook menggunakan ansible-playbook. Jika Anda mengonfigurasi cadangan, hapus resource Cadangan dan BackupPlan terlebih dahulu:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=Backup" -e "resource_name=on-demand-backup"
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=BackupPlan" -e "resource_name=pgb-plan"
    
    Jika Anda mengonfigurasi PgBouncer, hapus resource penggabung koneksi berikutnya:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=PgBouncer" -e "resource_name=pgbouncer-pooler"
    
    Kemudian, tentukan DBCluster sebagai resource_type dan hapus cluster database itu sendiri:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=DBCluster" -e "resource_name=$CLUSTER"
    
  3. Setelah cluster dihapus, logout dari node kontrol, kembali ke terminal, dan buka direktori kerja Terraform Anda.
    Catatan: jika Anda baru saja login ke Cloud Shell, ingatlah untuk menetapkan hal berikut:
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
  4. Hapus aturan firewall VRRP dan hancurkan resource yang dikelola oleh Terraform:
    gcloud compute firewall-rules delete -q "$CLUSTER-allow-vrrp" --project="$PROJECT"
    gcloud compute firewall-rules delete -q "$CLUSTER-allow-ssh" --project="$PROJECT"
    terraform destroy
    
  5. Konfirmasi penghancuran saat diminta. Karena resource atau rute jaringan yang tersisa terkadang dapat mencegah penghancuran lengkap, jalankan perintah pembersihan aman berikut untuk memastikan semua aturan firewall, gateway NAT, router, rute, subnet, dan jaringan terkait dihapus sepenuhnya. Ganti REGION dengan region deployment tertentu, seperti 'us-central1':
    # Delete any remaining firewall rules associated with the cluster
    gcloud compute firewall-rules list --project=$PROJECT 2> /dev/null | grep ^$CLUSTER- | cut -f1 -d' ' | \
      while read rule; do gcloud compute firewall-rules delete --project=$PROJECT --quiet $rule; done
    
    # Delete the Cloud NAT gateway and router if they still exist
    gcloud compute routers nats describe $CLUSTER-nat-gw --router=$CLUSTER-router --region=REGION --project=$PROJECT 2>/dev/null \
      && gcloud compute routers nats delete $CLUSTER-nat-gw --router=$CLUSTER-router --region=REGION --project=$PROJECT --quiet
    
    gcloud compute routers describe $CLUSTER-router --region=REGION --project=$PROJECT 2>/dev/null \
      && gcloud compute routers delete $CLUSTER-router --region=REGION --project=$PROJECT --quiet
    
    # Delete any remaining custom routes
    gcloud compute routes list --project=$PROJECT --filter="network:$CLUSTER" --format="value(name)" 2>/dev/null | \
      while read route; do gcloud compute routes delete --project=$PROJECT --quiet $route 2>/dev/null || true; done
    
    # Delete the subnet and network if they still exist
    gcloud compute networks subnets describe $CLUSTER --region=REGION --project=$PROJECT 2>/dev/null \
      && gcloud compute networks subnets delete $CLUSTER --region=REGION --project=$PROJECT --quiet
    
    gcloud compute networks describe $CLUSTER --project $PROJECT 2> /dev/null \
      && gcloud compute networks delete $CLUSTER --project $PROJECT --quiet
    

11. Selamat

Selamat, Anda telah menyelesaikan codelab.

Yang telah kita bahas

  • Cara membuat dan menyiapkan VM GCE untuk AlloyDB Omni.
  • Cara menginstal dan menjalankan Orchestrator RPM AlloyDB Omni.
  • Cara menginstal dan mengonfigurasi RPM AlloyDB Omni untuk arsitektur referensi HA.

Anda dapat membaca lebih lanjut tentang AlloyDB Omni dalam dokumentasi.

12. Survei

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membaca dan menyelesaikan latihannya