事前準備
請確認您已部署可正常運作的 AlloyDB Omni 叢集,且已在控制節點上安裝 Orchestrator。此外,您也必須確認負載平衡器或資料庫節點上的通訊埠 6432 已開啟,允許傳入流量至 PgBouncer。
準備資源規格
建立資源規格檔案 (例如 pgbouncer_spec.yaml),定義 PgBouncer 資源。這個檔案說明連線集結器及其與資料庫叢集的關聯。
PgBouncer:
metadata:
name: PGBOUNCER_RESOURCE_NAME
spec:
dbclusterRef: CLUSTER_NAME
allowSuperUserAccess: ALLOW_SUPERUSER_ACCESS
更改下列內容:
PGBOUNCER_RESOURCE_NAME:PgBouncer 資源的名稱。CLUSTER_NAME:AlloyDB Omni 資料庫叢集的名稱。請使用您在啟動叢集時宣告的名稱。ALLOW_SUPERUSER_ACCESS:指定是否允許超級使用者存取資料庫。將此值設為true或false。
啟動 PgBouncer
如要啟動 PgBouncer 連線集區,請使用 Ansible 或 AlloyDB Omni 自動調度管理工具 CLI (alloydbctl):
Ansible
如要使用 Ansible 啟動 PgBouncer,請使用採用 google.alloydbomni_orchestrator.bootstrap 角色的教戰手冊:
- 建立 Ansible 應對手冊 (例如
bootstrap_pgbouncer.yaml),指向您的 Deployment 規格和資源規格:- name: Bootstrap PgBouncer hosts: localhost vars: ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.bootstrap
更改下列內容:
SSH_USER:用於透過 SSH 連線至叢集節點的使用者名稱。SSH_KEY_PATH:SSH 私密金鑰檔案的本機路徑,用於連線至節點。
- 從控制節點執行劇本,並將資源規格做為額外變數傳遞:
ansible-playbook PGBOUNCER_BOOTSTRAP_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION" \ -e resource_spec="PGBOUNCER_SPECIFICATION"
請替換下列變數:
PGBOUNCER_BOOTSTRAP_PLAYBOOK:您建立用來啟動 PgBouncer 的教戰手冊路徑。DEPLOYMENT_SPECIFICATION:您在「安裝 AlloyDB Omni 元件」中建立的 Deployment 規格路徑。PGBOUNCER_SPECIFICATION:您在「準備資源規格」中建立的資源規格路徑。
alloydbctl
您可以使用 alloydbctl 指令列公用程式,直接套用 PgBouncer 設定。
如要套用設定,請執行 apply 指令,並指定Deployment 規格和 PgBouncer 資源規格:
alloydbctl apply -d "DEPLOYMENT_SPECIFICATION" -r "PGBOUNCER_SPECIFICATION"
請替換下列變數:
DEPLOYMENT_SPECIFICATION:您在「安裝 AlloyDB Omni 元件」中建立的 Deployment 規格路徑。PGBOUNCER_SPECIFICATION:您在「準備資源規格」中建立的資源規格路徑。
驗證 Deployment
選擇要用來驗證 PgBouncer 資源狀態和設定的介面:
Ansible
如要使用 Ansible 驗證部署作業,請按照下列步驟操作:
-
建立驗證應對手冊,例如
verify_pgbouncer.yaml,使用google.alloydbomni_orchestrator.status角色:- name: Verify PgBouncer hosts: localhost vars: ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.status
更改下列內容:
SSH_USER:用於透過 SSH 連線至叢集節點的使用者名稱。SSH_KEY_PATH:SSH 私密金鑰檔案的本機路徑,用於連線至節點。
-
從控制節點執行工作手冊,並傳遞商品目錄檔案:
ansible-playbook PGBOUNCER_VERIFY_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION" \ -e resource_type=PgBouncer -e resource_name="PGBOUNCER_RESOURCE_NAME"
請替換下列變數:
PGBOUNCER_VERIFY_PLAYBOOK:您建立的 Playbook 路徑,用於驗證 PgBouncer 部署作業。DEPLOYMENT_SPECIFICATION:您在「安裝 AlloyDB Omni 元件」中建立的 Deployment 規格路徑。PGBOUNCER_RESOURCE_NAME:PgBouncer 資源的名稱。
alloydbctl
您可以使用 get 指令擷取 PgBouncer 資源的狀態:
alloydbctl get -t PgBouncer -n PGBOUNCER_RESOURCE_NAME -d "DEPLOYMENT_SPECIFICATION"
請替換下列變數:
PGBOUNCER_RESOURCE_NAME:PgBouncer 資源的名稱。DEPLOYMENT_SPECIFICATION:您在「安裝 AlloyDB Omni 元件」中建立的 Deployment 規格路徑。
驗證連線集區
RPM 協調器完成設定後,請確認您可以透過連線集區連線至資料庫叢集:
psql -h VIRTUAL_IP -p 6432 -U postgres將 VIRTUAL_IP 替換為建立叢集時設定的虛擬 IP 位址。
PgBouncer 會將連線轉送至適當的資料庫節點。
刪除 PgBouncer 連線集區
您可以使用 Ansible 或 AlloyDB Omni 自動調度管理工具指令列介面 (CLI),刪除 PgBouncer 連線集區:
Ansible
如要使用 Ansible 刪除 PgBouncer 連線集區,請按照下列步驟操作:
-
建立 Ansible 應對手冊,例如
teardown.yaml,使用google.alloydbomni_orchestrator.delete角色:- name: Delete PgBouncer hosts: localhost vars: ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.delete
更改下列內容:
SSH_USER:用於透過 SSH 連線至叢集節點的使用者名稱。SSH_KEY_PATH:用於連線至節點的 SSH 私密金鑰檔案本機路徑。
-
使用
ansible-playbook指令執行教戰手冊。您必須通過下列resource_name:ansible-playbook PGBOUNCER_DELETE_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION" \ -e resource_type=PgBouncer -e resource_name="PGBOUNCER_RESOURCE_NAME"
請替換下列變數:
PGBOUNCER_DELETE_PLAYBOOK:您建立的 Playbook 路徑,用於刪除 PgBouncer 連線集區。DEPLOYMENT_SPECIFICATION:您在「安裝 AlloyDB Omni 元件」中建立的 Deployment 規格路徑。PGBOUNCER_RESOURCE_NAME:PgBouncer 資源的名稱。
alloydbctl
如要刪除 PgBouncer 資源,請執行 alloydbctl delete 指令:
alloydbctl delete -d "DEPLOYMENT_SPECIFICATION" -t PgBouncer -n "PGBOUNCER_RESOURCE_NAME"
請替換下列變數:
DEPLOYMENT_SPECIFICATION:您在「安裝 AlloyDB Omni 元件」中建立的 Deployment 規格路徑。PGBOUNCER_RESOURCE_NAME:PgBouncer 資源的名稱。