시작하기 전에
구성요소를 설치하기 전에 다음 기본 요건을 완료했는지 확인하세요.
- 오케스트레이터 설치: 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이 포함된 저장소의 URL입니다.PG_VERSION: AlloyDB Omni 설치의 주요 PostgreSQL 버전입니다(예:18).ALLOYDB_OMNI_VERSION: 설치할 AlloyDB Omni 데이터베이스 엔진 버전입니다(예:18.1.0). 생략하면 오케스트레이터가 사용 가능한 최신 버전을 설치합니다.ALLOYDB_OMNI_COMMON_REPO_URL: AlloyDB Omni, 모니터, PgBouncer, pgBackRest RPM이 포함된 공통 저장소의 URL입니다.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이 포함된 저장소의 URL입니다.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 주소 또는 FQDNCM_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 vars: ansible_become: true 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 비공개 키 파일 경로입니다(예:~/.ssh/id_rsa).
인벤토리 파일을 사용하여 플레이북을 실행하여 지정된 모든 노드에 RPM을 다운로드하고 설치합니다.
ansible-playbook -i deployment_spec.yaml install.yaml
AlloyDB Omni 구성요소 수동 설치
Ansible을 사용하지 않는 경우 클러스터의 각 노드에 RPM을 수동으로 설치해야 합니다.
REPO_GPG_KEY: GNU Privacy Guard(GPG) 확인을 위한 Google 공개 키의 위치입니다(예: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_KEYetcd을 설치합니다.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 구성요소 설치
모든 클러스터 관리자 노드에서
/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클러스터 관리자를 시작합니다.
sudo systemctl enable alloydbomni_cluster_manager sudo systemctl start alloydbomni_cluster_manager
데이터베이스 노드에 AlloyDB Omni 구성요소 설치
모든 데이터베이스 노드에서
/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구성요소를 설치합니다.
sudo dnf install -y alloydbomniPG_VERSION alloydbomni_monitor alloydbomni_node_manager pgbackrest노드 관리자를 시작합니다.
sudo systemctl enable alloydbomni_node_manager sudo systemctl start alloydbomni_node_manager(선택사항) 별도의 부하 분산기 노드를 사용하지 않는 경우
pgbouncer및keepalived을 설치합니다.sudo dnf install -y pgbouncer keepalived
부하 분산기 노드에 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노드 관리자를 시작합니다.
sudo systemctl enable alloydbomni_node_manager sudo systemctl start alloydbomni_node_manager
설치된 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을 사용하거나 각 노드에서 RPM을 수동으로 삭제하여 AlloyDB Omni를 제거합니다.
Ansible을 사용하여 AlloyDB Omni 구성요소 제거
Ansible을 사용하여 AlloyDB Omni 소프트웨어 스택 구성요소를 삭제하려면 기존 인벤토리 파일과 google.alloydbomni_orchestrator.uninstall 역할을 참조하는 플레이북을 사용하세요.
uninstall.yaml라는 플레이북을 만듭니다.- name: Uninstall AlloyDB Omni cluster hosts: all vars: ansible_become: true 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 비공개 키 파일 경로입니다(예:~/.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를 사용하는 방법을 참고하세요.