使用 RPM 編排器安裝 AlloyDB Omni

選取文件版本:

本頁面說明如何使用 AlloyDB Omni 自動調度管理工具,安裝 AlloyDB Omni 軟體堆疊及其管理元件。

事前準備

安裝元件前,請確認已完成下列必要條件:

  • 安裝自動調度管理工具:請確認控制節點上已安裝 AlloyDB Omni 自動調度管理工具 Ansible 集合或 CLI。
  • 佈建機器:您必須根據所選架構 (例如獨立或高可用性),佈建 RHEL9 虛擬機器。
  • 設定網路和防火牆:確認節點之間已開啟所有必要通訊埠。包括資料庫流量的 5432、etcd 的 2379/2380,以及叢集管理工具和節點管理工具使用的管理連接埠 6703、6702 和 6700。
  • 檢查軟體套件依附元件:如果您透過私人 Yum 存放區管理軟體套件,請按照存放區管理工具的操作說明,將依附的 RPM 檔案納入存放區。

準備部署規格清單

協調器會使用 Ansible 目錄格式的部署規格檔案,瞭解叢集拓撲。建立名為 deployment_spec.yaml 的檔案,並在其中加入節點詳細資料。

alloydbomni:
  vars:
    cluster_manager:
      name: "MANAGEMENT_CLUSTER_NAME"
    etcd:
      setup: SETUP_ETCD
      config_forcewrite: FORCE_OVERWRITE_ETCD
      # version: ETCD_VERSION  # Optional: defaults to the latest version
      # repo_url: ETCD_REPOSITORY_URL  # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni:
      major_version: "PG_VERSION" # Mandatory: for example, 18
      # version: ALLOYDB_OMNI_VERSION    # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL     # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_monitor:
      # version: ALLOYDB_OMNI_MONITOR_VERSION    # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_cluster_manager:
      # version: ALLOYDB_OMNI_CLUSTER_MANAGER_VERSION      # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_node_manager:
      # version: ALLOYDB_OMNI_NODE_MANAGER_VERSION         # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    pgbouncer:
      # version: ALLOYDB_OMNI_PGBOUNCER_VERSION    # Optional
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    pgbackrest:
      # version: ALLOYDB_OMNI_PGBACKREST_VERSION   # Optional
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional

  children:
    primary_instance_nodes:
      hosts:
        DB_HOST_1:
        DB_HOST_2:
        DB_HOST_3:
    load_balancer_nodes:    # Optional. Host group for load balancer. If empty, no load balancer is configured.
      hosts:
        LB_HOST_1:
        LB_HOST_2:
    etcd_nodes:     # Optional: Host group where etcd is set up
      hosts:
        ETCD_HOST_1:
        ETCD_HOST_2:
        ETCD_HOST_3:
    cluster_manager_nodes:    # Optional: Host group for cluster manager
      hosts:
        CM_HOST_1:
        CM_HOST_2:
        CM_HOST_3:

更改下列內容:

  • MANAGEMENT_CLUSTER_NAME:管理叢集的名稱。如果安裝在相同節點上,這可以與資料庫叢集名稱相同,例如 my-management-cluster。
  • SETUP_ETCD:指定協調器是否必須設定及啟動 etcd 叢集。如果設為 true,協調器會在指定的 etcd 節點上執行初始 etcd 設定和初始化作業。如果 deployment_spec 中未定義 etcd 節點,系統預設會在叢集管理員節點上設定 etcd。這個參數對應於部署規格中的 etcd.setup 鍵。
  • FORCE_OVERWRITE_ETCD:決定在設定程序中是否要取代現有的 etcd 設定檔。設為 true 可覆寫目標節點上的現有設定檔;否則,請設為 false(預設值),以維護現有設定並避免服務意外中斷。
  • ETCD_VERSION:要安裝的 etcd 套件版本,例如 3.4.13。
  • ETCD_REPOSITORY_URL:包含 etcd RPM 的存放區網址。
  • PG_VERSION:AlloyDB Omni 安裝的主要 PostgreSQL 版本,例如 18。
  • ALLOYDB_OMNI_VERSION:要安裝的 AlloyDB Omni 資料庫引擎版本,例如 18.1.0。如果省略,協調器會安裝可用的最新版本。
  • ALLOYDB_OMNI_COMMON_REPO_URL:包含 AlloyDB Omni、監控、PgBouncer 和 pgBackRest RPM 的通用存放區網址。
  • GPG_KEY:GNU Privacy Guard (GPG) 驗證的 Google 公開金鑰位置,例如 https://dl.google.com/linux/linux_signing_key.pub。如果金鑰已下載至所有 VM 的檔案,也可以將這項政策設為路徑,例如 /tmp/linux_signing_key.pub。
  • ALLOYDB_OMNI_MONITOR_VERSION::要安裝的 AlloyDB Omni 監控套件版本。預設為最新版本。
  • ALLOYDB_OMNI_CLUSTER_MANAGER_VERSION:要安裝的 AlloyDB Omni 叢集管理員版本。如果省略,協調器會安裝可用的最新版本。
  • ALLOYDB_OMNI_ORCHESTRATOR_REPO_URL:存放 AlloyDB Omni 叢集管理工具和節點管理工具 RPM 的存放區網址。
  • ALLOYDB_OMNI_NODE_MANAGER_VERSION::要安裝的 AlloyDB Omni 節點管理員版本。如果省略,協調器會安裝可用的最新版本。
  • ALLOYDB_OMNI_PGBOUNCER_VERSION:要安裝的 PgBouncer 套件版本。
  • ALLOYDB_OMNI_PGBACKREST_VERSION:要安裝的 pgBackRest 套件版本。
  • DB_HOST_1、DB_HOST_2、DB_HOST_3:指定為資料庫節點的虛擬機器 IP 位址或完整網域名稱 (FQDN)。
  • LB_HOST_1、LB_HOST_2:指定為負載平衡器節點的虛擬機器 IP 位址或完整網域名稱 (FQDN)。
  • ETCD_HOST_1、ETCD_HOST_2、ETCD_HOST_3:指定為 etcd 節點的虛擬機器的 IP 位址或 FQDN。
  • CM_HOST_1、CM_HOST_2、CM_HOST_3:指定為叢集管理員節點的虛擬機器的 IP 位址或 FQDN。

安裝元件

您可以使用 Ansible 安裝 AlloyDB Omni 元件及其依附元件,也可以在每個節點上,手動安裝軟體套件。

使用 Ansible 安裝 AlloyDB Omni 元件

建議使用提供的 Ansible 角色進行安裝。

  1. 建立名為 install.yaml 的劇本,其中會參照協調器集合中的安裝角色。

    - name: Install AlloyDB Omni cluster components
      hosts: all
      become: true
      vars:
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: SSH_KEY_PATH
      roles:
        - role: google.alloydbomni_orchestrator.install
    

    更改下列內容:

    • SSH_USER:您用來透過 SSH 連線至叢集節點的使用者名稱。
    • SSH_KEY_PATH:控制節點上安全殼層私密金鑰檔案的路徑,例如 ~/.ssh/id_rsa。
  2. 如要在所有指定節點下載及安裝元件,請使用清單檔案執行劇本。

    ansible-playbook -i deployment_spec.yaml install.yaml
    

不使用 Ansible 安裝 AlloyDB Omni 元件

如果您沒有 Ansible 環境,且打算使用 Orchestrator CLI 管理叢集,則必須手動安裝所有元件,因為 Orchestrator CLI 不提供元件的自動安裝功能。

在所有節點上安裝元件

下表列出所有節點類型和要安裝的對應元件 (RPM)。

節點 軟體元件 (RPM) 注意事項
control node alloydbomni_orchestrator
primary_instance_nodes alloydbomni18
alloydbomni_monitor
alloydbomni_node_manager
keepalived
pgbackrest
pgbouncer
只有在沒有負載平衡器的環境中,才需要 Keepalived 和 pgbouncer。
etcd_nodes etcd 如果沒有 ETCD 專屬節點,可以將 ETCD 安裝在叢集管理員節點上。
cluster_manager_nodes alloydbomni_cluster_manager 如果沒有專屬的 Cluster Manager 節點,可以將 Cluster Manager 安裝在 DB 節點 (primary_instance_nodes) 上。
load_balancer_nodes alloydbomni_node_manager
haproxy
keepalived
pgbouncer
只有在已設定負載平衡器的環境中,系統才會在負載平衡器節點上安裝 keepalived 和 pgbouncer。

安裝指令:

  • REPO_GPG_KEY:Google 公開金鑰的位置,用於 GPG 驗證,例如 https://dl.google.com/linux/linux_signing_key.pub。下載並放在所有 VM 上後,也可以設為檔案路徑,例如 file:///tmp/linux_signing_key.pub。

在 etcd 節點上安裝 AlloyDB Omni 元件

  1. 在所有 etcd 節點上,建立名為 /etc/yum.repos.d/alloydb-etcd.repo 的 YUM 存放區設定檔:

    [etcd]
    name=AlloyDB Omni ETCD
    baseurl=ETCD_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. 安裝 etcd:

    sudo dnf install -y etcd
    
  3. 編輯設定檔來啟動 etcd。安裝 AlloyDB Omni 元件前,請務必先啟動 etcd。

    在「etcd_nodes」中編輯「/etc/etcd/etcd.conf」:

    ETCD_NAME=ETCD_HOST
    ETCD_DATA_DIR=/var/lib/etcd/data
    ETCD_LISTEN_PEER_URLS=https://ETCD_HOST_IP:2380,https://127.0.0.1:2380
    ETCD_LISTEN_CLIENT_URLS=https://ETCD_HOST_IP:2379,https://127.0.0.1:2379
    ETCD_INITIAL_ADVERTISE_PEER_URLS=https://ETCD_HOST_IP:2380
    ETCD_ADVERTISE_CLIENT_URLS=https://ETCD_HOST_IP:2379
    
    ETCD_INITIAL_CLUSTER=ETCD_HOST_1=https://ETCD_HOST_IP_1:2380,ETCD_HOST_2=https://ETCD_HOST_IP_2:2380,ETCD_HOST_3=https://ETCD_HOST_IP_3:2380
    
    ETCD_INITIAL_CLUSTER_STATE=new
    ETCD_INITIAL_CLUSTER_TOKEN=CLUSTER_NAME
    ETCD_ENABLE_V2=true
    
    ETCD_CLIENT_CERT_AUTH=true
    ETCD_TRUSTED_CA_FILE=/var/lib/etcd/ssl/etcd-ca.crt
    ETCD_CERT_FILE=/var/lib/etcd/ssl/etcd-tls.crt
    ETCD_KEY_FILE=/var/lib/etcd/ssl/etcd-tls.key
    ETCD_PEER_CLIENT_CERT_AUTH=true
    ETCD_PEER_TRUSTED_CA_FILE=/var/lib/etcd/ssl/etcd-ca.crt
    ETCD_PEER_CERT_FILE=/var/lib/etcd/ssl/etcd-tls.crt
    ETCD_PEER_KEY_FILE=/var/lib/etcd/ssl/etcd-tls.key
    

    其中:

    • ETCD_HOST:目前的etcd主辦人。
    • ETCD_HOST_IP:目前的 etcd 主機 IP。
    • ETCD_HOST_1:etcd 叢集中第一個節點的名稱。
    • ETCD_HOST_IP_1:etcd 叢集中第一個節點的 IP 位址。
    • ETCD_HOST_2:etcd 叢集中第二個節點的名稱。
    • ETCD_HOST_IP_2:etcd 叢集中第二個節點的 IP 位址。
    • ETCD_HOST_3:etcd 叢集中第三個節點的名稱。
    • ETCD_HOST_IP_3:etcd 叢集中第三個節點的 IP 位址。
    • CLUSTER_NAME:控制層的叢集名稱。
  4. 設定防火牆,允許通訊埠 2379 和 2380 的 TCP 通訊。

  5. 啟動 etcd:

    sudo systemctl enable etcd
    sudo systemctl start etcd
    

在主要執行個體節點上安裝 AlloyDB Omni 元件

  1. 在所有 primary_instance_nodes 上,建立名為 /etc/yum.repos.d/alloydb-omni.repo 的 YUM 存放區設定檔:

    [alloydbomni_core]
    name=AlloyDB Omni Core
    baseurl=ALLOYDB_OMNI_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
    [alloydbomni_common]
    name=AlloyDB Omni Common
    baseurl=ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    priority=1
    
    [alloydbomni_orchestrator]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. 在所有 primary_instance_nodes 上安裝 alloydbomni18、alloydbomni_monitor、alloydbomni_node_manager 和 pgbackrest:

    sudo dnf install -y alloydbomni18 alloydbomni_monitor alloydbomni_node_manager pgbackrest
    
  3. (選用) 如果您沒有負載平衡器節點 (load_balancer_nodes),請安裝 pgbouncer 和 keepalived:

    sudo dnf install -y pgbouncer keepalived
    
  4. 安裝 alloydbomni_node_manager 後,必須先設定 alloydbomni_node_manager,才能啟動服務。確認部署規格檔案 (deployment_spec.yaml) 已複製到所有相關 VM:

    sudo /usr/local/bin/alloydbomni_nm_config apply -d deployment_spec.yaml
    

在叢集管理員節點上安裝 AlloyDB Omni 元件

  1. 在所有叢集管理員節點上,建立名為 /etc/yum.repos.d/alloydb-orchestrator.repo 的 YUM 存放區設定檔:

    [alloydbomni_orchestrator]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. 安裝叢集管理員:

    sudo dnf install -y alloydbomni_cluster_manager
    
  3. 安裝 alloydbomni_cluster_manager 並完成 etcd 的啟動程序後,必須先設定 alloydbomni_cluster_manager,才能啟動服務。

    sudo /usr/local/bin/alloydbomni_cm_config apply -d deployment_spec.yaml
    

在負載平衡器節點上安裝 AlloyDB Omni 元件

  1. 在所有負載平衡器節點上,建立名為 /etc/yum.repos.d/alloydb-omni-lb.repo 的 YUM 存放區設定檔:

    [pgbouncer]
    name=AlloyDB Omni Common
    baseurl=ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    priority=1
    
    [alloydbomni_node_manager]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. 安裝負載平衡器元件:

    sudo dnf install -y alloydbomni_node_manager keepalived pgbouncer haproxy
    
  3. 安裝 alloydbomni_node_manager 並完成 etcd 的啟動程序後,必須先設定 alloydbomni_node_manager,才能啟動服務。確認部署規格檔案 (deployment_spec.yaml) 已複製到所有相關 VM:

    sudo /usr/local/bin/alloydbomni_nm_config apply -d deployment_spec.yaml
    

已安裝的 AlloyDB Omni 元件摘要

安裝程序會根據節點類型部署多個重要 RPM 套件:

節點類型 已安裝的元件 附註
主要執行個體節點 alloydbomniPG_VERSION、alloydbomni_monitor、alloydbomni_node_manager、pgbouncer、pgbackrest 資料庫引擎、監控和管理元件。
負載平衡器節點 haproxy 選用。如果負載平衡器節點無法使用,系統會略過安裝程序。
叢集管理員節點 alloydbomni_cluster_manager 如果沒有專用節點,可以安裝在資料庫節點上。如果未指定叢集管理員節點,叢集管理員元件會安裝在 primary_instance_nodes 上。
etcd 節點 etcd 視需要安裝在叢集管理員節點上。如未指定 etcd 節點,etcd 會安裝在 cluster_manager_nodes 上

解除安裝元件

如要從環境中移除 AlloyDB Omni 安裝項目 (例如停用叢集或準備重新安裝),可以解除安裝所有軟體元件。您可以透過 Ansible 解除安裝 AlloyDB Omni,也可以從每個節點手動移除 RPM。

使用 Ansible 解除安裝 AlloyDB Omni 元件

如要使用 Ansible 移除 AlloyDB Omni 軟體堆疊元件,請使用現有的清單檔案和參照 google.alloydbomni_orchestrator.uninstall 角色的劇本。

  1. 建立名為「uninstall.yaml」的應對手冊。

    - name: Uninstall AlloyDB Omni cluster
      hosts: all
      become: true
      vars:
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: SSH_KEY_PATH
      roles:
        - role: google.alloydbomni_orchestrator.uninstall
    

    更改下列內容:

    • SSH_USER:您用來透過 SSH 連線至叢集節點的使用者名稱。
    • SSH_KEY_PATH:控制節點上安全殼層私密金鑰檔案的路徑,例如 ~/.ssh/id_rsa。
  2. 執行應對手冊。您必須將 cleanup_data=true 和 cleanup_config=true 做為額外變數傳遞,才能移除設定檔和資料目錄。

    ansible-playbook -i deployment_spec.yaml uninstall.yaml -e "cleanup_data=true cleanup_config=true"
    

手動解除安裝 AlloyDB Omni 元件

如果您使用 AlloyDB Omni 自動調度管理工具 CLI,則必須從每個節點手動移除 RPM。

  1. 在所有資料庫節點上執行下列指令:

    sudo dnf remove -y alloydbomni_node_manager alloydbomniPG_VERSION alloydbomni_monitor pgbackrest keepalived pgbouncer
    
  2. 在所有負載平衡器節點上執行下列指令:

    sudo dnf remove -y alloydbomni_node_manager keepalived haproxy pgbouncer
    
  3. 在所有叢集管理員節點上執行下列指令:

    sudo dnf remove -y alloydbomni_cluster_manager
    
  4. 選用:在所有 etcd 節點上執行下列指令,解除安裝 etcd 並清除 etcd 資料:

    sudo dnf remove -y etcd
    sudo rm -rf /var/lib/etcd/data
    

後續步驟