1. บทนำ
Codelab นี้แสดงการติดตั้งใช้งานคลัสเตอร์ความพร้อมใช้งานสูง (HA) ของ AlloyDB Omni ในเครื่องเสมือน (VM) ของ Google Compute Engine (GCE) เมื่อสิ้นสุด Codelab นี้ คุณจะจัดสรรสถาปัตยกรรมอ้างอิง HA ซึ่งประกอบด้วยโหนดฐานข้อมูล 3 โหนดและโหนด HAProxy 2 โหนด พร้อมด้วยโหนดควบคุมสำหรับการดำเนินการจัดการ
ข้อกำหนดเบื้องต้น
- สิทธิ์เข้าถึงโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google Cloud และ Cloud Shell จาก Cloud Console
- ติดตั้งและกำหนดค่า Google Cloud SDK (
gcloud) แล้ว ดูรายละเอียดเกี่ยวกับการติดตั้ง gcloud ได้ที่ gcloud-install - ติดตั้ง Terraform v1.9.8 แล้ว
สิ่งที่คุณจะได้เรียนรู้
- วิธีสร้างและเตรียม VM ของ GCE สำหรับ AlloyDB Omni
- วิธีติดตั้งและเรียกใช้ AlloyDB Omni RPM Orchestrator
- วิธีติดตั้งและกำหนดค่า RPM ของ AlloyDB Omni สำหรับสถาปัตยกรรมอ้างอิง HA
สิ่งที่ต้องมี
- รับลิงก์ URL ไปยัง RPM ของ AlloyDB Omni และตัวจัดสรร RPM โดยคุณต้องกรอกแบบฟอร์มลงชื่อสมัครใช้ AlloyDB Omni ระบบจะส่งลิงก์ไปยังอีเมลของคุณซึ่งเป็นเซิร์ฟเวอร์ URL ของที่เก็บ เริ่มต้นตัวแปรสภาพแวดล้อมต่อไปนี้เพื่อให้ URL พร้อมใช้งาน ซึ่งจะใช้ในระหว่าง 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="..." - เทอร์มินัลที่ใช้งานได้ซึ่งมีสิทธิ์เข้าถึงสแต็กการติดตั้งใช้งาน AlloyDB Omni คุณใช้ Cloud Shell เพื่อวัตถุประสงค์นี้ได้
2. การตั้งค่าและข้อกำหนด
การตั้งค่าโปรเจ็กต์
สร้างโปรเจ็กต์ Google Cloud
- ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์เปิดใช้การเรียกเก็บเงินแล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
เริ่มใช้ Cloud Shell
แม้ว่าคุณจะใช้งาน Google Cloud จากแล็ปท็อประยะไกลได้ แต่ใน Codelab นี้ คุณจะใช้ Google Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
จากคอนโซล Google Cloud ให้คลิกไอคอน Cloud Shell ในแถบเครื่องมือด้านขวาบน

หรือจะกด G แล้วตามด้วย S ก็ได้ ลำดับนี้จะเปิดใช้งาน Cloud Shell หากคุณอยู่ในคอนโซล Google Cloud หรือใช้ลิงก์นี้
การจัดสรรและเชื่อมต่อกับสภาพแวดล้อมจะใช้เวลาเพียงไม่กี่นาที เมื่อดำเนินการเสร็จแล้ว คุณควรเห็นข้อความต่อไปนี้

เครื่องเสมือนนี้มาพร้อมเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ทั้งหมดที่คุณต้องการ โดยมีไดเรกทอรีหน้าแรกขนาด 5 GB แบบถาวร และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ โดยไม่จำเป็นต้องติดตั้งอะไร
3. สร้างเครื่องเสมือน Google Cloud Compute Engine
เตรียมสคริปต์ Terraform
- กำหนดตัวแปรสภาพแวดล้อมสำหรับรหัสโปรเจ็กต์และชื่อคลัสเตอร์ที่ต้องการ คุณจะได้ใช้ข้อมูลเหล่านี้ตลอดทั้งโค้ดแล็บ
หมายเหตุ: รหัสโปรเจ็กต์ Google Cloud ควรมีความยาวระหว่าง 6 ถึง 30 อักขระเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ https://docs.cloud.google.com/resource-manager/docs/creating-managing-projects#before_you_beginexport PROJECT="your-project-id" export CLUSTER="your-cluster-name" - ตรวจสอบว่าคุณได้เข้าสู่ระบบด้วยผู้ใช้บัญชี Google Cloud
gcloud auth login - สร้างไดเรกทอรีการทำงานสำหรับการติดตั้งใช้งานและคัดลอกไฟล์การกำหนดค่า Terraform ที่จำเป็นจากแหล่งที่มาของที่เก็บ
mkdir -p ~/alloydb-omni/$PROJECT/$CLUSTER cd ~/alloydb-omni/$PROJECT/$CLUSTER gcloud storage cp gs://alloydb-omni-install/rpm-orchestrator/gce/terraform/*.tf . - สร้าง
terraform.tfvarsเพื่อระบุพารามิเตอร์ที่จำเป็นตามสถาปัตยกรรมอ้างอิงตามเนื้อหาต่อไปนี้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
เรียกใช้สคริปต์ Terraform และตรวจสอบ
- ตอนนี้คุณจัดสรร VM ได้แล้ว
terraform init - ก่อนสร้าง VM โปรดตรวจสอบว่าคุณมีสิทธิ์เข้าถึงที่จำเป็นในการสร้าง VM และทรัพยากรอื่นๆ โดยสรุป คุณจะต้องมีสิทธิ์ต่อไปนี้
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 - ตรวจสอบการกำหนดค่าและใช้การกำหนดค่าเพื่อจัดสรรทรัพยากร
หมายเหตุ: ตรวจสอบว่าคุณใช้ Terraform v1.9.8 ตามที่คาดไว้ในการกำหนดค่าการติดตั้งใช้งานterraform validate terraform apply --auto-approve - เมื่อ Terraform เสร็จสมบูรณ์แล้ว ให้ตรวจสอบว่าสร้างเครื่องเสมือนสำเร็จแล้วโดยแสดงอินสแตนซ์ที่สร้างขึ้นโดยใช้
gcloud คุณควรเห็นอินสแตนซ์ที่สอดคล้องกับโหนด DB 3 รายการ, โหนด HAProxy 2 รายการ, VM ควบคุม และโซนที่เกี่ยวข้อง บันทึกโซนสำหรับโหนดควบคุม เราจะต้องใช้ข้อมูลนี้ใน Codelab นี้ในภายหลังgcloud compute instances list --filter="name~$CLUSTER" --project=$PROJECTexport ZONE=$(gcloud compute instances list \ --filter="name=$CLUSTER-control" \ --format="value(zone)" --project=$PROJECT)
4. เตรียม VM สำหรับการติดตั้งใช้งาน
คุณต้องสร้างเซสชัน SSH ไปยังโหนดควบคุมและทำตามขั้นตอนเพื่อเปิดใช้การเข้าถึง SSH ใน VM ทั้งหมด (หรือที่เรียกว่าโหนด)
- ตรวจสอบว่าได้กำหนดตัวแปรสภาพแวดล้อมสำหรับโปรเจ็กต์และคลัสเตอร์แล้ว
export PROJECT="your-project-id" export CLUSTER="your-cluster-name" - สร้างคีย์ SSH และเพิ่มคีย์เดียวกันเพื่อเข้าสู่ระบบ VM ควบคุม
# 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 - สร้างกฎไฟร์วอลล์เพื่ออนุญาตการเชื่อมต่อ SSH และอนุญาตการรับส่งข้อมูล 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" - เชื่อมต่อกับ VM ควบคุมผ่าน SSH โดยทำดังนี้
gcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECT - สร้างกลุ่ม Linux ในโหนดควบคุมโดยใช้ชื่อเดียวกับชื่อผู้ใช้
sudo groupadd -f $(id -un) sudo usermod -aG $(id -un) $(id -un) - การตั้งค่า Terraform จะสร้างสคริปต์การกำหนดค่า 2-3 รายการและจัดเตรียมไว้ในไดเรกทอรี
/tmp/ของ VM ควบคุม ซึ่งรวมถึงสิ่งต่างๆ เช่น ชื่อคลัสเตอร์ บัญชีบริการ ชื่อโปรเจ็กต์ ฯลฯ สร้างการเข้าถึง SSH แบบไม่ต้องใช้รหัสผ่านจากโหนดควบคุมไปยังโหนดคลัสเตอร์ทั้งหมดโดยใช้สคริปต์การตั้งค่าในโหนดควบคุม สำคัญ: จดบันทึกผู้ใช้ service_account เราจะใช้ข้อมูลนี้เป็น SSH_USER ใน Codelab นี้ในภายหลัง/tmp/setup-ssh-for-cluster.sh - สำหรับ Codelab นี้ เราจะปิดใช้ SELinux ในโหนดทั้งหมด สคริปต์ Terraform จะเพิ่ม "/tmp/run-all.sh" ซึ่งใช้เพื่อวัตถุประสงค์นี้ได้
/tmp/run-all.sh sudo setenforce 0 - หากคุณลงชื่อสมัครใช้ AlloyDB Omni และได้รับลิงก์แล้ว ก็ถึงเวลาเพิ่ม URL เหล่านั้นลงในตัวแปรสภาพแวดล้อมด้วย
กำหนด IP เสมือนสำหรับสภาพแวดล้อมจากตัวแปรอินพุต cidr_range ในไฟล์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="..." EOFterraform/variables.tfเพื่อไม่ให้ขัดแย้งกับโหนดอื่นๆ ดังที่แสดงในตัวอย่างต่อไปนี้cat >> ~/.codelab.env <<EOF export VIRTUAL_IP="10.1.0.50" EOF
5. ติดตั้งคอมโพเนนต์ซอฟต์แวร์ที่จำเป็นใน VM ทั้งหมด
ขั้นตอนถัดไปคือการติดตั้งคอมโพเนนต์ SW ที่จำเป็นใน VM ซึ่งสามารถประสานงานได้ในโหนดควบคุม ต้องเรียกใช้คำสั่งต่อไปนี้ทั้งหมดในโหนดควบคุม
- เชื่อมต่อกับ VM ควบคุมผ่าน SSH หากยังไม่ได้อยู่ในโหนดควบคุม
เมื่ออยู่ในพรอมต์ SSH ของ VM ควบคุม ให้เรียกใช้ไฟล์สภาพแวดล้อมgcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECTsource ~/.codelab.env - ติดตั้ง Ansible และไลบรารี Python ที่จำเป็นในโหนดควบคุม
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 - จากนั้นดาวน์โหลดไฟล์ tar ของคอลเล็กชัน Ansible ของ RPM Orchestrator แล้วติดตั้ง
คำสั่งgcloud storage cp "gs://${ORCHESTRATOR_ANSIBLE_COLLECTION_PATH#https://storage.googleapis.com/}google-alloydbomni_orchestrator-*.tar.gz" . COLLECTION_FILE=$(ls -1 google-alloydbomni_orchestrator-*.tar.gz \ | sort -V | tail -n 1) ansible-galaxy collection install "$COLLECTION_FILE" ansible-galaxy collection list | grep alloydbomni_orchestratorsort -Vและtail -n 1จะเลือกไฟล์ที่มีเวอร์ชันล่าสุด หมายเหตุ: ตรวจสอบว่าตัวแปร ORCHESTRATOR_ANSIBLE_COLLECTION_PATH มี "/" อยู่ท้าย - Orchestrator ใช้ไฟล์ข้อกำหนดการติดตั้งใช้งานในรูปแบบสินค้าคงคลังของ Ansible เพื่อทำความเข้าใจโทโพโลยีคลัสเตอร์ สร้างไฟล์ชื่อ deployment_spec.yaml ที่มีรายละเอียดของโหนดในโหนดควบคุม
หมายเหตุ: ตรวจสอบไฟล์ที่สร้างขึ้นเพื่อให้แน่ใจว่าอ้างอิงถึงค่าที่ถูกต้อง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 - สร้าง Playbook ชื่อ install.yaml ที่อ้างอิงบทบาทการติดตั้งจากคอลเล็กชัน 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 - เรียกใช้เพลย์บุ๊กโดยใช้ไฟล์สินค้าคงคลังเพื่อดาวน์โหลดและติดตั้ง RPM ในโหนดที่ระบุทั้งหมด
ansible-playbook -i deployment_spec.yaml install.yaml
6. บูตสตราปคลัสเตอร์ AlloyDB Omni
ในขั้นตอนนี้ เราได้ติดตั้งคอมโพเนนต์ที่จำเป็นทั้งหมดในโหนดทั้งหมดแล้ว เราพร้อมที่จะเริ่มต้นคลัสเตอร์ AlloyDB Omni แล้ว
- เชื่อมต่อกับ VM ควบคุมผ่าน SSH หากยังไม่ได้อยู่ในโหนดควบคุม
เมื่ออยู่ในพรอมต์ SSH ของ VM ควบคุม ให้เรียกใช้ไฟล์สภาพแวดล้อมgcloud compute ssh "$CLUSTER-control" --zone=$ZONE --project=$PROJECTsource ~/.codelab.env - สร้างแฮชสำหรับรหัสผ่านและดึงข้อมูลเวอร์ชันฐานข้อมูล AlloyDB Omni ที่ติดตั้ง
encoded_password=$(echo -n "your unique password" | base64) DB_VERSION=$(/tmp/run-all.sh -t db 'rpm -q --qf "%{VERSION}\n" alloydbomni18' | tail -n 1) echo "$DB_VERSION" - หากต้องการสร้างคลัสเตอร์ AlloyDB Omni ต้องทราบวิธีกำหนดค่า สร้างชื่อไฟล์ dbcluster.yaml สำหรับข้อกำหนดของคลัสเตอร์ฐานข้อมูล
cat > dbcluster.yaml <<EOF Secret: metadata: name: db-pw-$CLUSTER spec: type: Opaque data: $CLUSTER: $encoded_password --- DBCluster: metadata: name: $CLUSTER spec: databaseVersion: $DB_VERSION 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 - สร้าง Playbook ชื่อ bootstrap.yaml ซึ่งจะอ้างอิงถึงบทบาท Ansible ของการเริ่มต้นระบบเพื่อสร้างคลัสเตอร์ AlloyDB Omni
cat > bootstrap.yaml <<EOF - name: Create DBCluster hosts: localhost roles: - role: google.alloydbomni_orchestrator.bootstrap EOF - เรียกใช้ Playbook เพื่อสร้างคลัสเตอร์
ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=dbcluster.yaml
7. (ไม่บังคับ) กำหนดค่า PgBouncer Connection Pooler
AlloyDB Omni รองรับการจัดกลุ่มการเชื่อมต่อที่มีน้ำหนักเบาโดยใช้ PgBouncer คุณสามารถกำหนดค่าและบูตสแตรป PgBouncer ได้ทันทีหลังจากจัดสรรคลัสเตอร์
- สร้างไฟล์ข้อกำหนดทรัพยากรชื่อ pgbouncer.yaml ที่เชื่อมโยง Connection Pooler กับคลัสเตอร์ฐานข้อมูล
cat > pgbouncer.yaml <<EOF PgBouncer: metadata: name: pgbouncer-pooler spec: dbclusterRef: $CLUSTER allowSuperUserAccess: true accessMode: "rw" port: 6432 EOF - เริ่มต้นพูลเลอร์ PgBouncer โดยใช้ Playbook bootstrap.yaml เดียวกันที่สร้างไว้ก่อนหน้านี้ โดยส่งไฟล์ข้อกำหนดใหม่
ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=pgbouncer.yaml
8. ยืนยันคลัสเตอร์ AlloyDB Omni
หากต้องการยืนยันว่าคลัสเตอร์ทำงานอย่างถูกต้องและเข้าถึงได้โดยใช้ตัวจัดสรรภาระงาน คุณสามารถเชื่อมต่อกับคลัสเตอร์ได้โดยใช้ไคลเอ็นต์ PostgreSQL มาตรฐานจากโหนดควบคุม
- ติดตั้งที่เก็บไคลเอ็นต์และแพ็กเกจ PostgreSQL 18 ในโหนดควบคุมโดยทำดังนี้
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 - เชื่อมต่อกับคลัสเตอร์โดยใช้ IP เสมือนที่จองไว้ก่อนหน้านี้ ระบบจะแจ้งให้คุณป้อนรหัสผ่านที่คุณเข้ารหัสไว้ใน dbcluster.yaml
/usr/pgsql-18/bin/psql -h $VIRTUAL_IP -U postgres -W - เมื่อเชื่อมต่อแล้ว คุณจะเรียกใช้การค้นหา SQL พื้นฐานเพื่อตรวจสอบสถานะคลัสเตอร์ได้ เช่น ตรวจสอบเวอร์ชันฐานข้อมูล
คุณควรเห็นเอาต์พุตที่ระบุว่า PostgreSQL 18 ทำงานร่วมกับ AlloyDB Omni พิมพ์postgres=# SELECT version();\qเพื่อออกจากพรอมต์
9. (ไม่บังคับ) สำรองข้อมูลโดยใช้ pgBackRest
AlloyDB Omni ผสานรวมกับ pgBackRest เพื่อจัดการข้อมูลสำรองไปยัง Cloud Storage โดยตรง คุณสามารถกำหนดค่าแผนการสำรองข้อมูลและทริกเกอร์การสำรองข้อมูลแบบออนดีมานด์ไปยัง Bucket ของ GCS ที่สร้างขึ้นโดยการตั้งค่า Terraform
- สร้างไฟล์ข้อกำหนดแผนสำรองชื่อ backup_plan.yaml ที่ชี้ไปยัง Bucket ของ GCS ที่จัดสรรไว้
cat > backup_plan.yaml <<EOF BackupPlan: metadata: name: pgb-plan spec: dbclusterRef: $CLUSTER backupLocation: type: GCS gcsOptions: bucket: $CLUSTER-gcs-backups key: /backups EOF - สร้าง Ansible Playbook ชื่อ backup.yaml ที่อ้างอิงถึงบทบาทการจัดการการสำรองข้อมูล
cat > backup.yaml <<EOF - name: Manage AlloyDB Omni Backups hosts: localhost roles: - role: google.alloydbomni_orchestrator.backup EOF - ใช้แผนสำรองโดยใช้ Playbook backup.yaml
ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=backup_plan.yaml - เมื่อสร้างแผนเรียบร้อยแล้ว ให้สร้างไฟล์ทรัพยากรการสำรองข้อมูลตามต้องการชื่อ create_backup.yaml
cat > create_backup.yaml <<EOF Backup: metadata: name: on-demand-backup spec: backupPlanRef: pgb-plan dbclusterRef: $CLUSTER EOF - เรียกใช้ Playbook เพื่อเริ่มการสำรองข้อมูล
ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=create_backup.yaml - หากต้องการยืนยันสถานะของข้อมูลสำรอง ให้สร้าง Playbook status.yaml ดังนี้
cat > status.yaml <<EOF
- name: Fetch AlloyDB Omni Resource Status
hosts: localhost
roles:
- role: google.alloydbomni_orchestrator.status
EOF
- เรียกใช้ Playbook เพื่อแสดงรายการข้อมูลสำรองทั้งหมด
ansible-playbook status.yaml -i deployment_spec.yaml -e resource_type=Backup
- หรือหากต้องการดูข้อมูลโดยละเอียดเกี่ยวกับข้อมูลสำรองที่เฉพาะเจาะจงซึ่งสร้างไว้ก่อนหน้านี้ ให้ส่ง
-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. ล้างข้อมูลทรัพยากร
เมื่อการติดตั้งใช้งานเสร็จสิ้น คุณสามารถทำลายทรัพยากรที่จัดสรรไว้เพื่อหลีกเลี่ยงการเรียกเก็บเงิน
- สร้าง Playbook ชื่อ teardown.yaml:
cat > teardown.yaml <<EOF - name: Tear down AlloyDB Omni cluster hosts: localhost roles: - role: google.alloydbomni_orchestrator.delete EOF - เรียกใช้ Playbook โดยใช้ ansible-playbook หากกำหนดค่าการสำรองข้อมูลไว้ ให้ลบทรัพยากร Backup และ BackupPlan ก่อน
หากกำหนดค่า PgBouncer ให้ลบทรัพยากร Connection Pooler ดังนี้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" จากนั้นระบุ DBCluster เป็น resource_type แล้วลบคลัสเตอร์ฐานข้อมูลเองansible-playbook teardown.yaml -i deployment_spec.yaml -e "resource_type=PgBouncer" -e "resource_name=pgbouncer-pooler"ansible-playbook teardown.yaml -i deployment_spec.yaml -e "resource_type=DBCluster" -e "resource_name=$CLUSTER" - เมื่อลบคลัสเตอร์แล้ว ให้ออกจากระบบโหนดควบคุม กลับไปที่เทอร์มินัล แล้วไปที่ไดเรกทอรีงาน Terraform
หมายเหตุ: หากเพิ่งเข้าสู่ระบบ Cloud Shell โปรดอย่าลืมตั้งค่าต่อไปนี้export PROJECT="your-project-id" export CLUSTER="your-cluster-name" - ลบกฎไฟร์วอลล์ VRRP และทำลายทรัพยากรที่จัดการโดย 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 - ยืนยันการทำลายเมื่อได้รับข้อความแจ้ง เนื่องจากทรัพยากรหรือเส้นทางของเครือข่ายที่ยังคงอยู่ อาจป้องกันไม่ให้มีการเลิกใช้งานอย่างสมบูรณ์ในบางครั้ง ให้เรียกใช้คำสั่งการล้างข้อมูลที่ปลอดภัยต่อไปนี้เพื่อให้แน่ใจว่าระบบได้นำกฎไฟร์วอลล์ เกตเวย์ NAT เราเตอร์ เส้นทาง ซับเน็ต และเครือข่ายที่เกี่ยวข้องทั้งหมดออกแล้ว แทนที่
REGIONด้วยภูมิภาคการติดตั้งใช้งานที่เฉพาะเจาะจง เช่น "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. ขอแสดงความยินดี
ขอแสดงความยินดีที่ทำ Codelab เสร็จสมบูรณ์
สิ่งที่เราได้พูดถึง
- วิธีสร้างและเตรียม VM ของ GCE สำหรับ AlloyDB Omni
- วิธีติดตั้งและเรียกใช้ AlloyDB Omni RPM Orchestrator
- วิธีติดตั้งและกำหนดค่า RPM ของ AlloyDB Omni สำหรับสถาปัตยกรรมอ้างอิง HA
อ่านข้อมูลเพิ่มเติมเกี่ยวกับ AlloyDB Omni ได้ในเอกสารประกอบ