1. บทนำ
Codelab นี้แสดงการติดตั้งใช้งานคลัสเตอร์ AlloyDB Omni ที่มีความพร้อมใช้งานสูง (HA) ใน Virtual Machine (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
- วิธีติดตั้งและเรียกใช้ Orchestrator RPM ของ AlloyDB Omni
- วิธีติดตั้งและกำหนดค่า RPM ของ AlloyDB Omni สำหรับสถาปัตยกรรมอ้างอิง HA
สิ่งที่คุณต้องมี
- รับลิงก์ URL ไปยัง RPM ของ AlloyDB Omni และ Orchestrator 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 หรือใช้ ลิงก์ นี้
การจัดเตรียมและเชื่อมต่อกับสภาพแวดล้อมจะใช้เวลาไม่นาน เมื่อเสร็จแล้ว คุณควรเห็นสิ่งต่อไปนี้

Virtual Machine นี้โหลดเครื่องมือพัฒนาทั้งหมดที่คุณจะต้องใช้ โดยมีไดเรกทอรีหลักแบบถาวรขนาด 5 GB และทำงานบน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก คุณสามารถทำงานทั้งหมดใน Codelab นี้ได้ภายในเบราว์เซอร์ โดยไม่ต้องติดตั้งอะไรเลย
3. สร้าง Virtual Machine ของ Google Cloud Compute Engine
เตรียมสคริปต์ Terraform
- กำหนดตัวแปรสภาพแวดล้อมสำหรับรหัสโปรเจ็กต์และชื่อคลัสเตอร์ที่ต้องการ คุณจะใช้ตัวแปรเหล่านี้ตลอด Codelab
หมายเหตุ: รหัสโปรเจ็กต์ 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 เสร็จสมบูรณ์แล้ว ให้ตรวจสอบว่าสร้าง Virtual Machine สำเร็จแล้วโดยแสดงรายการอินสแตนซ์ที่สร้างขึ้นโดยใช้
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 $(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 ของ Orchestrator RPM แล้วติดตั้ง
หมายเหตุ: ตรวจสอบว่าตัวแปร ORCHESTRATOR_ANSIBLE_COLLECTION_PATH มี "/" อยู่ที่ส่วนท้าย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 - Orchestrator ใช้ไฟล์ข้อมูลจำเพาะการติดตั้งใช้งานในรูปแบบ Inventory ของ 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 - สร้างเพลย์บุ๊กชื่อ 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 - เรียกใช้เพลย์บุ๊กโดยใช้ไฟล์ Inventory เพื่อดาวน์โหลดและติดตั้ง 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 - สร้างแฮชสำหรับรหัสผ่านและจดบันทึกแฮชดังกล่าว
encoded_password=$(echo -n "your unique password" | base64) - หากต้องการสร้างคลัสเตอร์ AlloyDB Omni ต้องทราบวิธีกำหนดค่าคลัสเตอร์ สร้างชื่อไฟล์ dbcluster.yaml สำหรับข้อมูลจำเพาะของคลัสเตอร์ 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 - สร้างเพลย์บุ๊กชื่อ bootstrap.yaml ซึ่งจะอ้างอิงถึงบทบาท Ansible ในการเริ่มต้นเพื่อสร้างคลัสเตอร์ 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 - เรียกใช้เพลย์บุ๊กเพื่อสร้างคลัสเตอร์
ansible-playbook bootstrap.yaml -i deployment_spec.yaml -e resource_spec=dbcluster.yaml
7. (ไม่บังคับ) กำหนดค่า Connection Pooler ของ PgBouncer
AlloyDB Omni รองรับการจัดกลุ่มการเชื่อมต่อแบบ Lightweight โดยใช้ 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 - เริ่มต้น Pooler ของ PgBouncer โดยใช้เพลย์บุ๊ก 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 โดยตรง คุณสามารถกำหนดค่าแผนการสำรองข้อมูลและทริกเกอร์การสำรองข้อมูลตามความต้องการไปยังบัคเก็ต GCS ที่สร้างขึ้นโดยการตั้งค่า Terraform
- สร้างไฟล์ข้อมูลจำเพาะของแผนการสำรองข้อมูลชื่อ backup_plan.yaml ที่ชี้ไปยังบัคเก็ต 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 ชื่อ backup.yaml ที่อ้างอิงถึงบทบาทการจัดการข้อมูลสำรอง
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 - ใช้แผนการสำรองข้อมูลโดยใช้เพลย์บุ๊ก 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 - เรียกใช้เพลย์บุ๊กเพื่อเริ่มการสำรองข้อมูล
ansible-playbook backup.yaml -i deployment_spec.yaml -e resource_spec=create_backup.yaml - หากต้องการตรวจสอบสถานะของการสำรองข้อมูล ให้สร้างเพลย์บุ๊ก 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
- เรียกใช้เพลย์บุ๊กเพื่อแสดงข้อมูลสำรองทั้งหมด
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. ล้างข้อมูลทรัพยากร
เมื่อติดตั้งใช้งานเสร็จแล้ว คุณสามารถทำลายทรัพยากรที่จัดเตรียมไว้เพื่อหลีกเลี่ยงค่าใช้จ่าย
- สร้างเพลย์บุ๊กชื่อ 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 - เรียกใช้เพลย์บุ๊กโดยใช้ 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
- วิธีติดตั้งและเรียกใช้ Orchestrator RPM ของ AlloyDB Omni
- วิธีติดตั้งและกำหนดค่า RPM ของ AlloyDB Omni สำหรับสถาปัตยกรรมอ้างอิง HA
อ่านเพิ่มเติมเกี่ยวกับ AlloyDB Omni ได้ในเอกสารประกอบ