RPM 오케스트레이터 클러스터 구성요소 업데이트

문서 버전을 선택합니다.

이 페이지에서는 Red Hat Enterprise Linux (RHEL) 환경에서 AlloyDB Omni 데이터베이스 클러스터 소프트웨어 패키지, 리소스 구성, RPM 조정자를 업데이트하는 방법을 설명합니다.

시작하기 전에

모든 노드 및 클러스터 구성요소 세부정보가 포함된 배포 사양 파일 deployment_spec.yaml이 있는지 확인합니다.

조정자 업그레이드

조정자는 데이터베이스 클러스터를 관리합니다. 다른 클러스터 구성요소를 업그레이드하기 전에 제어 노드에서 조정자를 업그레이드해야 합니다.

Ansible

Ansible 플레이북을 사용하여 인프라를 관리하는 경우 다음 단계를 완료합니다.

  1. 다음 명령어를 실행하여 제어 노드에 설치된 google.alloydbomni_orchestrator 컬렉션의 설치된 버전을 확인합니다.

    ansible-galaxy collection list | grep alloydbomni_orchestrator
  2. 기존 버전을 덮어쓰려면 컬렉션 tar 파일의 최신 안정화 버전을 다운로드하고 강제 설치를 실행합니다.

    ansible-galaxy collection install --force google-alloydbomni_orchestrator-NEW_VERSION.tar.gz

    NEW_VERSION을 새 컬렉션의 버전으로 바꿉니다.

alloydbctl

alloydbctl 명령줄 도구를 사용하는 경우 다음 단계를 완료합니다.

  1. 제어 노드에서 RPM 조정자 alloydbomni_orchestrator의 설치된 패키지 버전을 확인하려면 다음 명령어를 실행합니다.

    rpm -q alloydbomni_orchestrator
  2. 패키지 관리자를 사용하여 제어 노드에서 소프트웨어 패키지를 업그레이드합니다.

    sudo dnf upgrade alloydbomni_orchestrator

Ansible을 사용하여 클러스터 구성요소 업데이트

제공된 Ansible 역할을 사용하여 업데이트하는 것이 좋습니다.

  1. 조정자 컬렉션의 update 역할을 참조하는 update.yaml이라는 플레이북을 만듭니다. update_action 매개변수 값을 update_rpm으로 설정해야 합니다.

    기본적으로 update 역할은 컨트롤 플레인과 데이터 플레인을 모두 업데이트합니다. 제어 영역 또는 데이터 영역 구성요소만 업데이트하려면 다른 영역의 매개변수를 false로 설정합니다.

    ---
    - hosts: all
      become: true
      vars:
        update_action: "update_rpm"
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: PRIVATE_KEY_PATH
        update_control_plane: true # Optional argument if you want to only update data plane components
        update_data_plane: true # Optional argument if you want to only update control plane components
      roles:
        - role: google.alloydbomni_orchestrator.update
    

    다음을 바꿉니다.

    • SSH_USER: 클러스터 노드에 액세스할 수 있는 SSH 사용자 이름입니다.
    • PRIVATE_KEY_PATH: 비공개 SSH 키 파일 경로입니다.
    • update_action: 업데이트 범위입니다. 이 값을 update_rpm으로 설정합니다.
    • update_control_plane: 선택사항입니다. 데이터 영역 구성요소만 업데이트하려면 false로 설정합니다. 기본값은 true입니다.
    • update_data_plane: 선택사항입니다. 제어 영역 구성요소만 업데이트하려면 false로 설정합니다. 기본값은 true입니다.
  2. 지정된 모든 노드에서 업데이트를 실행하려면 인벤토리 파일로 플레이북을 실행합니다.

    ansible-playbook -i DEPLOYMENT_SPEC update.yaml

    DEPLOYMENT_SPEC을 배포 사양 파일의 경로로 바꿉니다.

    배포 사양 파일이 클러스터의 각 구성요소에 설치된 버전을 정의하는지 확인합니다. 업데이트 역할은 인벤토리 파일에서 버전을 구성하는 방식에 따라 구성요소를 업데이트합니다.

    • 구성요소의 버전이 설치된 버전과 일치하면 업데이트 역할은 해당 구성요소를 변경하지 않습니다.
    • 구성요소의 버전을 특정 대상 버전으로 변경하면 구성요소가 해당 버전으로 업데이트됩니다.
    • 구성요소의 버전 필드를 비워 두면 구성요소가 구성된 저장소에서 사용 가능한 최신 버전으로 업데이트됩니다.

클러스터 구성요소 수동 업데이트

Ansible 조정자를 사용하지 않거나 업데이트 프로세스를 세부적으로 제어하려는 경우 클러스터의 각 노드에 대해 RPM 구성요소를 수동으로 업데이트할 수 있습니다. 예약된 유지보수 기간 중에 소프트웨어 업데이트를 실행하는 것이 좋습니다.

수동 업데이트 프로세스에는 다음 두 영역을 업데이트하는 작업이 포함됩니다.

  • 컨트롤 플레인 (RPM 조정자 구성요소): 컨트롤 플레인은 데이터베이스 클러스터를 제어하고 관리하는 레이어입니다. RPM 배포에서 컨트롤 플레인에는 cluster_manager, node_manager, etcd가 포함됩니다.

  • 데이터 영역 (데이터베이스 클러스터): 데이터 영역에는 AlloyDB Omni 데이터베이스 엔진 자체, monitor, pgBackRest, PgBouncer, keepalived, HAProxy와 같은 서비스를 비롯한 데이터베이스 클러스터 구성요소가 포함됩니다. 데이터 영역을 업그레이드하면 데이터베이스 버전 업데이트, 보안 패치, 성능 개선사항이 데이터베이스 클러스터에 직접 적용됩니다.

참조 아키텍처와 관계없이 컨트롤 플레인을 업데이트하는 단계는 동일합니다. 데이터 영역을 업데이트하기 전에 컨트롤 플레인 구성요소를 업데이트해야 합니다. 데이터 영역을 업데이트하는 단계는 데이터베이스 배포 아키텍처에 따라 다릅니다.

서비스 또는 패키지를 업데이트하려면 다음 단계를 완료합니다.

  1. 서비스를 중지합니다.

    sudo systemctl stop SERVICE
  2. 다음 명령어 중 하나를 사용하여 패키지를 업그레이드합니다.

    • 사용 가능한 최신 버전으로 업데이트하려면 다음을 실행합니다.

      sudo dnf upgrade PACKAGE
    • 특정 버전으로 업데이트하려면 다음을 실행합니다.

      sudo dnf upgrade PACKAGE-VERSION
  3. 서비스를 시작합니다.

    sudo systemctl start SERVICE

다음을 바꿉니다.

  • SERVICE: 중지하고 시작할 서비스의 이름입니다(예: pgbouncer 또는 keepalived).
  • PACKAGE: 업데이트할 패키지의 이름입니다(예: pgbouncer 또는 alloydbomni18).
  • VERSION: 설치할 대상 패키지 버전입니다(예: 18.3.0 또는 18.3.0-2.rhel9).

컨트롤 플레인 수동 업데이트

컨트롤 플레인을 업데이트하려면 지정된 노드에서 다음 단계를 완료합니다.

  1. 모든 클러스터 관리자 노드에서 클러스터 관리자를 중지하려면 다음 명령어를 실행합니다.

    sudo systemctl stop alloydbomni_cluster_manager
  2. 모든 DCS 노드에서 etcd를 업데이트하려면 다음 명령어를 순서대로 실행합니다.

    sudo systemctl stop etcd
    sudo dnf upgrade etcd
    sudo systemctl start etcd
  3. 모든 노드에서 노드 관리자를 업데이트하려면 다음 명령어를 순서대로 실행합니다.

    sudo systemctl stop alloydbomni_node_manager
    sudo dnf upgrade alloydbomni_node_manager
    sudo systemctl start alloydbomni_node_manager
  4. 컨트롤 플레인 구성요소를 업데이트한 후 모든 클러스터 관리자 노드에서 클러스터 관리자를 업데이트하고 필요한 경우 다시 시작할 수 있습니다.

    sudo dnf upgrade alloydbomni_cluster_manager
    sudo systemctl start alloydbomni_cluster_manager

데이터 영역 수동 업데이트

데이터 영역을 업데이트하려면 배포 아키텍처에 지정된 순서대로 데이터베이스 및 도우미 서비스를 업데이트합니다. 각 서비스에 대해 서비스를 중지하고 패키지를 업그레이드하고 서비스를 시작하는 엄격한 순서를 따라야 합니다.

참조 아키텍처에 따라 배포 안내를 따르세요.

  1. alloydbctl get 명령어를 사용하여 클러스터 상태를 가져오고 출력 형식을 YAML로 설정합니다.

    alloydbctl get -d DEPLOYMENT_SPEC -t RESOURCE_TYPE -n CLUSTER_NAME -o yaml

    다음을 바꿉니다.

    • RESOURCE_TYPE: 검사할 리소스 유형입니다(예: DBCluster).
    • CLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.
    • DEPLOYMENT_SPEC: 배포 사양 파일의 경로입니다.
  2. YAML 출력에서 status 섹션의 instanceList를 확인합니다.

    역할이 Primary로 설정된 노드를 찾습니다. 다른 모든 데이터베이스 노드는 대기 노드입니다.

  3. 먼저 대기 노드에서 실행되는 모든 데이터 영역 구성요소를 업데이트한 후 기본 노드에서 해당 구성요소를 업데이트합니다. 다음 단계에 따라 각 노드에서 데이터 영역 구성요소를 업데이트합니다.

    1. AlloyDB Omni를 업데이트하려면 다음 명령어를 순서대로 실행합니다.

      sudo systemctl stop alloydbomni18
      sudo dnf upgrade alloydbomni18
      sudo systemctl start alloydbomni18
    2. 모니터를 업데이트하려면 다음 명령어를 순서대로 실행합니다.

      sudo systemctl stop alloydbomni_monitor
      sudo dnf upgrade alloydbomni_monitor
      sudo systemctl start alloydbomni_monitor
    3. pgBackRest를 업데이트하려면 다음 명령어를 순서대로 실행합니다.

      sudo dnf upgrade pgbackrest
    4. PgBouncer를 업데이트하려면 다음 명령어를 순서대로 실행합니다.

      sudo systemctl stop pgbouncer
      sudo dnf upgrade pgbouncer
      sudo systemctl start pgbouncer
    5. keepalived를 업데이트하려면 다음 명령어를 순서대로 실행합니다.

      sudo systemctl stop keepalived
      sudo dnf upgrade keepalived
      sudo systemctl start keepalived
    6. HAProxy를 업데이트하려면 다음 명령어를 순서대로 실행합니다.

      sudo systemctl stop haproxy
      sudo dnf upgrade haproxy
      sudo systemctl start haproxy