Triển khai cụm có tính sẵn sàng cao AlloyDB Omni trên các máy ảo GCE bằng Trình điều phối RPM

1. Giới thiệu

Lớp học lập trình này minh hoạ việc triển khai cụm có tính sẵn sàng cao (HA) của AlloyDB Omni trên Máy ảo (VM) của Google Compute Engine (GCE). Khi kết thúc lớp học lập trình này, bạn sẽ cung cấp một cấu trúc tham chiếu có tính sẵn sàng cao bao gồm 3 nút Cơ sở dữ liệu và 2 nút HAProxy, cùng với một nút điều khiển cho các hoạt động quản lý.

Điều kiện tiên quyết

  • Quyền truy cập vào một dự án Google Cloud và Cloud Shell từ Cloud Console.
  • Google Cloud SDK (gcloud) đã được cài đặt và định cấu hình. Để biết thông tin chi tiết về cách cài đặt gcloud, hãy tham khảo bài viết gcloud-install
  • Đã cài đặt Terraform v1.9.8.

Kiến thức bạn sẽ học được

  • Cách tạo và chuẩn bị máy ảo GCE cho AlloyDB Omni.
  • Cách cài đặt và chạy Trình điều phối RPM AlloyDB Omni.
  • Cách cài đặt và định cấu hình RPM AlloyDB Omni cho kiến trúc tham chiếu có tính sẵn sàng cao.

Bạn cần có

  • Lấy đường liên kết URL đến các RPM và trình điều phối RPM của AlloyDB Omni. Để làm việc này, bạn cần điền vào biểu mẫu đăng ký alloydb omni. Các đường liên kết này sẽ được gửi đến email của bạn, là máy chủ URL kho lưu trữ. Khởi chạy các biến môi trường sau để lưu giữ các URL tiện dụng sẽ được dùng trong lớp học lập trình.
    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="..."
    
  • Một thiết bị đầu cuối đang hoạt động có quyền truy cập vào ngăn xếp triển khai AlloyDB Omni. Bạn có thể sử dụng cloud shell cho mục đích này.

2. Thiết lập và yêu cầu

Thiết lập dự án

Tạo một dự án trên Google Cloud

  1. Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên đám mây của Google Cloud.
  2. Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trong một dự án hay không.

Khởi động Cloud Shell

Mặc dù có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên Cloud.

Trên Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải:

Biểu tượng để kích hoạt Cloud Shell

Hoặc bạn có thể nhấn phím G rồi nhấn phím S. Trình tự này sẽ kích hoạt Cloud Shell nếu bạn đang ở trong Google Cloud Console hoặc sử dụng đường liên kết này.

Quá trình này chỉ mất vài phút để cung cấp và kết nối với môi trường. Khi quá trình này kết thúc, bạn sẽ thấy như sau:

Cửa sổ dòng lệnh Google Cloud Shell cho thấy môi trường đã kết nối

Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nó cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn có thể thực hiện mọi thao tác trong lớp học lập trình này trong trình duyệt. Bạn không cần cài đặt bất cứ thứ gì.

3. Tạo máy ảo Google Compute Engine

Chuẩn bị tập lệnh Terraform

  1. Xác định các biến môi trường cho mã dự án và tên cụm mong muốn. Bạn sẽ sử dụng các thành phần này trong suốt lớp học lập trình.
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
    Lưu ý: Mã dự án trên Google Cloud chỉ được dài từ 6 đến 30 ký tự. Để biết thêm thông tin, hãy tham khảo https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects#before_you_begin
  2. Đảm bảo rằng bạn đã đăng nhập bằng người dùng tài khoản Google Cloud.
    gcloud auth login
    
  3. Tạo một thư mục làm việc cho quá trình triển khai và sao chép các tệp cấu hình Terraform cần thiết từ nguồn kho lưu trữ của bạn.
    mkdir -p ~/alloydb-omni/$PROJECT/$CLUSTER
    cd ~/alloydb-omni/$PROJECT/$CLUSTER
    gcloud storage cp gs://alloydb-omni-install/rpm-orchestrator/gce/terraform/*.tf .
    
  4. Tạo tệp terraform.tfvars để chỉ định các tham số bắt buộc theo cấu trúc tham chiếu theo nội dung sau:
    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
    

Thực thi tập lệnh Terraform và xác thực

  1. Giờ đây, bạn có thể cung cấp các VM.
    terraform init
    
  2. Trước khi tạo máy ảo, hãy đảm bảo rằng bạn có quyền truy cập cần thiết để tạo máy ảo và các tài nguyên khác. Tóm lại, bạn sẽ cần có các quyền sau.
    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. Xác thực cấu hình và áp dụng cấu hình để cung cấp tài nguyên.
    terraform validate
    terraform apply --auto-approve
    
    Lưu ý: Đảm bảo bạn đang sử dụng Terraform phiên bản 1.9.8 như dự kiến theo cấu hình triển khai.
  4. Sau khi Terraform hoàn tất, hãy xác minh rằng các máy ảo đã được tạo thành công bằng cách liệt kê các phiên bản đã tạo bằng gcloud.
    gcloud compute instances list --filter="name~$CLUSTER" --project=$PROJECT
    
    Bạn sẽ thấy các phiên bản tương ứng với 3 nút DB, 2 nút HAProxy, VM kiểm soát và các vùng tương ứng. Ghi lại VÙNG cho nút điều khiển. Chúng ta sẽ cần đến thông tin này trong lớp học lập trình này, sau này.
    export ZONE=$(gcloud compute instances list \
      --filter="name=$CLUSTER-control"          \
      --format="value(zone)" --project=$PROJECT)
    

4. Chuẩn bị các máy ảo cho quá trình triển khai

Bạn cần tạo một phiên SSH cho nút điều khiển và thực hiện các bước để bật quyền truy cập SSH vào tất cả các VM (còn gọi là nút).

  1. Đảm bảo rằng bạn đã xác định các biến môi trường cho dự án và cụm.
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
  2. Tạo khoá SSH và thêm khoá đó để đăng nhập vào VM điều khiển.
    # 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. Tạo quy tắc tường lửa để cho phép các kết nối SSH và lưu lượng truy cập 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. Kết nối với VM điều khiển qua SSH:
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
  5. Tạo nhóm Linux trên nút điều khiển có cùng tên với tên người dùng:
    sudo groupadd $(id -un)
    sudo usermod -aG $(id -un) $(id -un)
    
  6. Chế độ thiết lập Terraform sẽ tạo một số tập lệnh cấu hình và dàn dựng chúng trong thư mục /tmp/ của VM điều khiển, bao gồm những nội dung như tên cụm, tài khoản dịch vụ, tên dự án, v.v. Tạo quyền truy cập ssh không cần mật khẩu từ các nút điều khiển đến tất cả các nút cụm bằng cách sử dụng tập lệnh thiết lập trên nút điều khiển.
    /tmp/setup-ssh-for-cluster.sh
    
    Quan trọng: Ghi lại người dùng service_account. Chúng ta sẽ sử dụng giá trị này làm SSH_USER sau này trong lớp học lập trình này.
  7. Đối với lớp học lập trình này, chúng ta có thể tắt SELinux trên tất cả các nút. Tập lệnh Terraform sẽ thêm "/tmp/run-all.sh" có thể dùng cho mục đích này.
    /tmp/run-all.sh sudo setenforce 0
    
  8. Nếu bạn đã đăng ký AlloyDB Omni và nhận được các đường liên kết, thì bạn cũng nên thêm những URL đó vào các biến môi trường.
    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
    
    Quyết định chọn một IP ảo cho môi trường của bạn từ biến đầu vào cidr_range trong tệp terraform/variables.tf sao cho IP đó không xung đột với các nút khác, như trong ví dụ sau:
    cat >> ~/.codelab.env <<EOF
    export VIRTUAL_IP="10.1.0.50"
    EOF
    

5. Cài đặt các thành phần phần mềm bắt buộc trên tất cả các máy ảo

Bước tiếp theo là cài đặt các thành phần phần mềm bắt buộc trên các VM. Bạn có thể điều phối việc này trên nút điều khiển. Bạn cần thực thi tất cả các lệnh sau trên nút điều khiển.

  1. Kết nối với VM điều khiển qua SSH, nếu chưa có trên nút điều khiển.
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
    Sau khi bạn nhận được lời nhắc ssh của VM kiểm soát, hãy tìm tệp môi trường nguồn.
    source ~/.codelab.env
    
  2. Trên nút điều khiển, hãy cài đặt Ansible và các thư viện Python cần thiết.
    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. Tiếp theo, hãy tải tệp tar của bộ sưu tập RPM Orchestrator Ansible xuống rồi cài đặt tệp đó.
    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
    
    Lưu ý: Đảm bảo biến ORCHESTRATOR_ANSIBLE_COLLECTION_PATH có "/" ở cuối.
  4. Trình điều phối sử dụng tệp chỉ định triển khai ở định dạng khoảng không quảng cáo Ansible để hiểu rõ cấu trúc liên kết cụm của bạn. Tạo một tệp có tên là deployment_spec.yaml có thông tin chi tiết về nút trên nút điều khiển.
    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
    
    Lưu ý: Xem lại tệp được tạo để đảm bảo tệp đó đề cập đến các giá trị hợp lệ.
  5. Tạo một sổ tay có tên là install.yaml tham chiếu đến vai trò cài đặt trong bộ sưu tập trình điều phối.
    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
    
    Lưu ý: Xem lại tệp được tạo để đảm bảo tệp đó đề cập đến các giá trị hợp lệ.
  6. Thực thi sổ tay bằng tệp kho hàng để tải xuống và cài đặt RPM trên tất cả các nút được chỉ định.
    ansible-playbook -i deployment_spec.yaml install.yaml
    

6. Khởi động Cụm AlloyDB Omni

Ở giai đoạn này, chúng ta đã cài đặt tất cả các thành phần bắt buộc trên mọi nút. Chúng tôi đã sẵn sàng khởi động cụm AlloyDB Omni.

  1. Kết nối với VM điều khiển qua SSH, nếu chưa có trên nút điều khiển.
    gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT
    
    Sau khi bạn nhận được lời nhắc ssh của VM kiểm soát, hãy tìm tệp môi trường nguồn.
    source ~/.codelab.env
    
  2. Tạo một hàm băm cho mật khẩu của bạn và ghi lại hàm băm đó.
    encoded_password=$(echo -n "your unique password" | base64)
    
  3. Để tạo cụm, AlloyDB Omni phải biết cách định cấu hình cụm đó. Tạo tên tệp dbcluster.yaml cho quy cách cụm cơ sở dữ liệu.
    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. Tạo một sổ tay có tên là bootstrap.yaml. Sổ tay này sẽ tham chiếu đến vai trò ansible khởi động để tạo Cụm 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. Chạy sổ tay của bạn để tạo cụm
    ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=dbcluster.yaml
    

7. (Không bắt buộc) Định cấu hình PgBouncer Connection Pooler

AlloyDB Omni hỗ trợ nhóm kết nối đơn giản bằng PgBouncer. Bạn có thể định cấu hình và khởi động PgBouncer ngay sau khi cụm được cấp phép.

  1. Tạo một tệp chỉ định tài nguyên có tên là pgbouncer.yaml để liên kết trình gộp nhóm kết nối với cụm cơ sở dữ liệu của bạn:
    cat > pgbouncer.yaml <<EOF
    PgBouncer:
      metadata:
        name: pgbouncer-pooler
      spec:
        dbclusterRef: $CLUSTER
        allowSuperUserAccess: true
        accessMode: "rw"
        port: 6432
    EOF
    
  2. Khởi động trình gộp PgBouncer bằng cách sử dụng cùng một sổ tay bootstrap.yaml đã tạo trước đó, truyền tệp đặc tả mới:
    ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=pgbouncer.yaml
    

8. Xác minh Cụm AlloyDB Omni

Để xác minh rằng cụm của bạn đang hoạt động chính xác và có thể truy cập bằng bộ cân bằng tải, bạn có thể kết nối với cụm đó bằng ứng dụng PostgreSQL tiêu chuẩn từ nút điều khiển.

  1. Cài đặt kho lưu trữ và gói ứng dụng PostgreSQL 18 trên nút điều khiển:
    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. Kết nối với cụm bằng IP ảo đã được đặt trước trước đó. Bạn sẽ được nhắc nhập mật khẩu mà bạn đã mã hoá trong dbcluster.yaml:
    /usr/pgsql-18/bin/psql -h $VIRTUAL_IP -U postgres -W
    
  3. Sau khi kết nối, bạn có thể chạy các truy vấn SQL cơ bản để xác minh trạng thái của cụm, ví dụ: kiểm tra phiên bản cơ sở dữ liệu:
    postgres=# SELECT version();
    
    Bạn sẽ thấy kết quả cho biết PostgreSQL 18 đang chạy với AlloyDB Omni. Nhập \q để thoát khỏi dấu nhắc.

9. (Không bắt buộc) Sao lưu dữ liệu bằng pgBackRest

AlloyDB Omni tích hợp với pgBackRest để quản lý các bản sao lưu trực tiếp vào Cloud Storage. Bạn có thể định cấu hình một kế hoạch sao lưu và kích hoạt một bản sao lưu theo yêu cầu vào bộ chứa GCS do chế độ thiết lập Terraform tạo.

  1. Tạo một tệp chỉ định kế hoạch sao lưu có tên là backup_plan.yaml trỏ đến bộ chứa GCS được cấp phép của bạn:
    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. Tạo một Ansible playbook có tên backup.yaml tham chiếu đến vai trò quản lý bản sao lưu:
    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. Áp dụng kế hoạch sao lưu bằng cách sử dụng tập lệnh backup.yaml:
    ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=backup_plan.yaml
    
  4. Sau khi thiết lập thành công kế hoạch, hãy tạo một tệp tài nguyên sao lưu theo yêu cầu có tên là create_backup.yaml.
    cat > create_backup.yaml <<EOF
    Backup:
      metadata:
        name: on-demand-backup
      spec:
        backupPlanRef: pgb-plan
        dbclusterRef: $CLUSTER
    EOF
    
  5. Thực thi tập lệnh để bắt đầu sao lưu:
    ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=create_backup.yaml
    
  6. Để xác minh trạng thái sao lưu, hãy tạo một tệp lệnh 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. Chạy sổ tay để liệt kê tất cả các bản sao lưu:
ansible-playbook status.yaml -i deployment_spec.yaml -e resource_type=Backup
  1. Ngoài ra, để nhận thông tin chi tiết về một bản sao lưu cụ thể đã được tạo trước đó, hãy truyền -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. Dọn dẹp tài nguyên

Khi hoàn tất việc triển khai, bạn có thể huỷ các tài nguyên đã được cấp phép để tránh phát sinh phí.

  1. Tạo một cẩm nang có tên là 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. Thực thi playbook bằng ansible-playbook. Nếu bạn đã định cấu hình các bản sao lưu, hãy xoá tài nguyên Backup và BackupPlan trước:
    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"
    
    Nếu bạn đã định cấu hình PgBouncer, hãy xoá tài nguyên nhóm kết nối tiếp theo:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=PgBouncer" -e "resource_name=pgbouncer-pooler"
    
    Sau đó, hãy chỉ định DBCluster làm resource_type và xoá chính cụm cơ sở dữ liệu:
    ansible-playbook teardown.yaml -i deployment_spec.yaml  -e "resource_type=DBCluster" -e "resource_name=$CLUSTER"
    
  3. Sau khi xoá cụm, hãy đăng xuất khỏi nút điều khiển, chuyển về thiết bị đầu cuối và chuyển đến thư mục công việc Terraform.
    Lưu ý: nếu bạn vừa đăng nhập vào Cloud Shell, hãy nhớ thiết lập những nội dung sau:
    export PROJECT="your-project-id"
    export CLUSTER="your-cluster-name"
    
  4. Xoá quy tắc tường lửa VRRP và huỷ các tài nguyên do Terraform quản lý:
    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. Xác nhận việc huỷ khi được nhắc. Vì các tài nguyên hoặc tuyến đường mạng còn sót lại đôi khi có thể ngăn chặn việc tháo dỡ hoàn toàn, hãy chạy các lệnh dọn dẹp an toàn sau đây để đảm bảo tất cả các quy tắc tường lửa, cổng NAT, bộ định tuyến, tuyến đường, mạng con và mạng được liên kết đều bị xoá hoàn toàn. Thay thế REGION bằng khu vực triển khai cụ thể của bạn, chẳng hạn như "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. Xin chúc mừng

Chúc mừng bạn đã hoàn thành lớp học lập trình này.

Nội dung đã đề cập

  • Cách tạo và chuẩn bị máy ảo GCE cho AlloyDB Omni.
  • Cách cài đặt và chạy Trình điều phối RPM AlloyDB Omni.
  • Cách cài đặt và định cấu hình RPM AlloyDB Omni cho kiến trúc tham chiếu có tính sẵn sàng cao.

Bạn có thể đọc thêm về AlloyDB Omni trong tài liệu.

12. Khảo sát

Bạn sẽ sử dụng hướng dẫn này như thế nào?

Chỉ đọc qua Đọc và hoàn thành bài tập