事前準備
安裝元件前,請確認已完成下列必要條件:
- 安裝自動調度管理工具:請確認控制節點上已安裝 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:包含etcdRPM 的存放區網址。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 角色進行安裝。
建立名為
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。
如要在所有指定節點下載及安裝元件,請使用清單檔案執行劇本。
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 |
alloydbomni18alloydbomni_monitoralloydbomni_node_managerkeepalivedpgbackrestpgbouncer |
只有在沒有負載平衡器的環境中,才需要 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_managerhaproxykeepalivedpgbouncer |
只有在已設定負載平衡器的環境中,系統才會在負載平衡器節點上安裝 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 元件
在所有
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安裝
etcd:sudo dnf install -y etcd編輯設定檔來啟動
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:控制層的叢集名稱。
設定防火牆,允許通訊埠
2379和2380的 TCP 通訊。啟動 etcd:
sudo systemctl enable etcd sudo systemctl start etcd
在主要執行個體節點上安裝 AlloyDB Omni 元件
在所有
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在所有
primary_instance_nodes上安裝alloydbomni18、alloydbomni_monitor、alloydbomni_node_manager和pgbackrest:sudo dnf install -y alloydbomni18 alloydbomni_monitor alloydbomni_node_manager pgbackrest(選用) 如果您沒有負載平衡器節點 (
load_balancer_nodes),請安裝pgbouncer和keepalived:sudo dnf install -y pgbouncer keepalived安裝
alloydbomni_node_manager後,必須先設定alloydbomni_node_manager,才能啟動服務。確認部署規格檔案 (deployment_spec.yaml) 已複製到所有相關 VM:sudo /usr/local/bin/alloydbomni_nm_config apply -d deployment_spec.yaml
在叢集管理員節點上安裝 AlloyDB Omni 元件
在所有叢集管理員節點上,建立名為
/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安裝叢集管理員:
sudo dnf install -y alloydbomni_cluster_manager安裝
alloydbomni_cluster_manager並完成etcd的啟動程序後,必須先設定alloydbomni_cluster_manager,才能啟動服務。sudo /usr/local/bin/alloydbomni_cm_config apply -d deployment_spec.yaml
在負載平衡器節點上安裝 AlloyDB Omni 元件
在所有負載平衡器節點上,建立名為
/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安裝負載平衡器元件:
sudo dnf install -y alloydbomni_node_manager keepalived pgbouncer haproxy安裝
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 角色的劇本。
建立名為「
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。
執行應對手冊。您必須將
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。
在所有資料庫節點上執行下列指令:
sudo dnf remove -y alloydbomni_node_manager alloydbomniPG_VERSION alloydbomni_monitor pgbackrest keepalived pgbouncer在所有負載平衡器節點上執行下列指令:
sudo dnf remove -y alloydbomni_node_manager keepalived haproxy pgbouncer在所有叢集管理員節點上執行下列指令:
sudo dnf remove -y alloydbomni_cluster_manager選用:在所有 etcd 節點上執行下列指令,解除安裝 etcd 並清除 etcd 資料:
sudo dnf remove -y etcd sudo rm -rf /var/lib/etcd/data
後續步驟
如要自備 TLS 憑證和金鑰檔案,請參閱「AlloyDB Omni 如何使用 TLS」。