RPM 오케스트레이터를 사용하여 AlloyDB Omni 설치

문서 버전을 선택합니다.

이 페이지에서는 AlloyDB Omni 오케스트레이터를 사용하여 AlloyDB Omni 소프트웨어 스택과 관리 구성요소를 설치하는 방법을 설명합니다.

시작하기 전에

구성요소를 설치하기 전에 다음 기본 요건을 완료했는지 확인하세요.

  • 오케스트레이터 설치: AlloyDB Omni 오케스트레이터 Ansible 컬렉션 또는 CLI가 제어 노드에 설치되어 있는지 확인합니다.
  • 머신 프로비저닝: 선택한 아키텍처(예: 독립형 또는 고가용성)에 따라 RHEL9 가상 머신이 프로비저닝되어 있어야 합니다.
  • 네트워크 및 방화벽 구성: 노드 간에 필요한 모든 포트가 열려 있는지 확인합니다. 여기에는 데이터베이스 트래픽용 5432, etcd2379/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이 포함된 저장소의 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 주소 또는 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
        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).
  2. 인벤토리 파일을 사용하여 플레이북을 실행하여 지정된 모든 노드에 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 구성요소 설치

  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. 포트 23792380에서 TCP 통신을 허용하도록 방화벽을 구성합니다.

  5. etcd를 시작합니다.

    sudo systemctl enable etcd
    sudo systemctl start etcd
    

클러스터 관리자 노드에 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. 클러스터 관리자를 시작합니다.

    sudo systemctl enable alloydbomni_cluster_manager
    sudo systemctl start alloydbomni_cluster_manager
    

데이터베이스 노드에 AlloyDB Omni 구성요소 설치

  1. 모든 데이터베이스 노드에서 /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. 구성요소를 설치합니다.

    sudo dnf install -y alloydbomniPG_VERSION alloydbomni_monitor alloydbomni_node_manager pgbackrest
    
  3. 노드 관리자를 시작합니다.

    sudo systemctl enable alloydbomni_node_manager
    sudo systemctl start alloydbomni_node_manager
    
  4. (선택사항) 별도의 부하 분산기 노드를 사용하지 않는 경우 pgbouncerkeepalived을 설치합니다.

    sudo dnf install -y pgbouncer keepalived
    

부하 분산기 노드에 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. 노드 관리자를 시작합니다.

    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 노드를 지정하지 않으면 etcdcluster_manager_nodes에 설치됩니다.

구성요소 제거

클러스터를 폐기하거나 완전한 재설치를 준비하는 등 환경에서 AlloyDB Omni 설치를 삭제해야 하는 경우 모든 소프트웨어 구성요소를 제거하면 됩니다. Ansible을 사용하거나 각 노드에서 RPM을 수동으로 삭제하여 AlloyDB Omni를 제거합니다.

Ansible을 사용하여 AlloyDB Omni 구성요소 제거

Ansible을 사용하여 AlloyDB Omni 소프트웨어 스택 구성요소를 삭제하려면 기존 인벤토리 파일과 google.alloydbomni_orchestrator.uninstall 역할을 참조하는 플레이북을 사용하세요.

  1. 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).
  2. 플레이북을 실행합니다. 구성 파일과 데이터 디렉터리를 삭제하려면 cleanup_data=truecleanup_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
    

다음 단계