시작하기 전에
모든 노드 및 클러스터 구성요소 세부정보가 포함된 배포 사양 파일 deployment_spec.yaml이 있는지 확인합니다.
조정자 업그레이드
조정자는 데이터베이스 클러스터를 관리합니다. 다른 클러스터 구성요소를 업그레이드하기 전에 제어 노드에서 조정자를 업그레이드해야 합니다.
Ansible
Ansible 플레이북을 사용하여 인프라를 관리하는 경우 다음 단계를 완료합니다.
다음 명령어를 실행하여 제어 노드에 설치된
google.alloydbomni_orchestrator컬렉션의 설치된 버전을 확인합니다.ansible-galaxy collection list | grep alloydbomni_orchestrator기존 버전을 덮어쓰려면 컬렉션 tar 파일의 최신 안정화 버전을 다운로드하고 강제 설치를 실행합니다.
ansible-galaxy collection install --force google-alloydbomni_orchestrator-NEW_VERSION.tar.gzNEW_VERSION을 새 컬렉션의 버전으로 바꿉니다.
alloydbctl
alloydbctl 명령줄 도구를 사용하는 경우 다음 단계를 완료합니다.
제어 노드에서 RPM 조정자
alloydbomni_orchestrator의 설치된 패키지 버전을 확인하려면 다음 명령어를 실행합니다.rpm -q alloydbomni_orchestrator패키지 관리자를 사용하여 제어 노드에서 소프트웨어 패키지를 업그레이드합니다.
sudo dnf upgrade alloydbomni_orchestrator
Ansible을 사용하여 클러스터 구성요소 업데이트
제공된 Ansible 역할을 사용하여 업데이트하는 것이 좋습니다.
조정자 컬렉션의
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입니다.
지정된 모든 노드에서 업데이트를 실행하려면 인벤토리 파일로 플레이북을 실행합니다.
ansible-playbook -i DEPLOYMENT_SPEC update.yamlDEPLOYMENT_SPEC을 배포 사양 파일의 경로로 바꿉니다.배포 사양 파일이 클러스터의 각 구성요소에 설치된 버전을 정의하는지 확인합니다. 업데이트 역할은 인벤토리 파일에서 버전을 구성하는 방식에 따라 구성요소를 업데이트합니다.
- 구성요소의 버전이 설치된 버전과 일치하면 업데이트 역할은 해당 구성요소를 변경하지 않습니다.
- 구성요소의 버전을 특정 대상 버전으로 변경하면 구성요소가 해당 버전으로 업데이트됩니다.
- 구성요소의 버전 필드를 비워 두면 구성요소가 구성된 저장소에서 사용 가능한 최신 버전으로 업데이트됩니다.
클러스터 구성요소 수동 업데이트
Ansible 조정자를 사용하지 않거나 업데이트 프로세스를 세부적으로 제어하려는 경우 클러스터의 각 노드에 대해 RPM 구성요소를 수동으로 업데이트할 수 있습니다. 예약된 유지보수 기간 중에 소프트웨어 업데이트를 실행하는 것이 좋습니다.
수동 업데이트 프로세스에는 다음 두 영역을 업데이트하는 작업이 포함됩니다.
컨트롤 플레인 (RPM 조정자 구성요소): 컨트롤 플레인은 데이터베이스 클러스터를 제어하고 관리하는 레이어입니다. RPM 배포에서 컨트롤 플레인에는
cluster_manager,node_manager,etcd가 포함됩니다.데이터 영역 (데이터베이스 클러스터): 데이터 영역에는 AlloyDB Omni 데이터베이스 엔진 자체,
monitor,pgBackRest,PgBouncer,keepalived,HAProxy와 같은 서비스를 비롯한 데이터베이스 클러스터 구성요소가 포함됩니다. 데이터 영역을 업그레이드하면 데이터베이스 버전 업데이트, 보안 패치, 성능 개선사항이 데이터베이스 클러스터에 직접 적용됩니다.
참조 아키텍처와 관계없이 컨트롤 플레인을 업데이트하는 단계는 동일합니다. 데이터 영역을 업데이트하기 전에 컨트롤 플레인 구성요소를 업데이트해야 합니다. 데이터 영역을 업데이트하는 단계는 데이터베이스 배포 아키텍처에 따라 다릅니다.
서비스 또는 패키지를 업데이트하려면 다음 단계를 완료합니다.
서비스를 중지합니다.
sudo systemctl stop SERVICE다음 명령어 중 하나를 사용하여 패키지를 업그레이드합니다.
사용 가능한 최신 버전으로 업데이트하려면 다음을 실행합니다.
sudo dnf upgrade PACKAGE특정 버전으로 업데이트하려면 다음을 실행합니다.
sudo dnf upgrade PACKAGE-VERSION
서비스를 시작합니다.
sudo systemctl start SERVICE
다음을 바꿉니다.
SERVICE: 중지하고 시작할 서비스의 이름입니다(예:pgbouncer또는keepalived).PACKAGE: 업데이트할 패키지의 이름입니다(예:pgbouncer또는alloydbomni18).VERSION: 설치할 대상 패키지 버전입니다(예:18.3.0또는18.3.0-2.rhel9).
컨트롤 플레인 수동 업데이트
컨트롤 플레인을 업데이트하려면 지정된 노드에서 다음 단계를 완료합니다.
모든 클러스터 관리자 노드에서 클러스터 관리자를 중지하려면 다음 명령어를 실행합니다.
sudo systemctl stop alloydbomni_cluster_manager모든 DCS 노드에서
etcd를 업데이트하려면 다음 명령어를 순서대로 실행합니다.sudo systemctl stop etcdsudo dnf upgrade etcdsudo systemctl start etcd모든 노드에서 노드 관리자를 업데이트하려면 다음 명령어를 순서대로 실행합니다.
sudo systemctl stop alloydbomni_node_managersudo dnf upgrade alloydbomni_node_managersudo systemctl start alloydbomni_node_manager컨트롤 플레인 구성요소를 업데이트한 후 모든 클러스터 관리자 노드에서 클러스터 관리자를 업데이트하고 필요한 경우 다시 시작할 수 있습니다.
sudo dnf upgrade alloydbomni_cluster_managersudo systemctl start alloydbomni_cluster_manager
데이터 영역 수동 업데이트
데이터 영역을 업데이트하려면 배포 아키텍처에 지정된 순서대로 데이터베이스 및 도우미 서비스를 업데이트합니다. 각 서비스에 대해 서비스를 중지하고 패키지를 업그레이드하고 서비스를 시작하는 엄격한 순서를 따라야 합니다.
참조 아키텍처에 따라 배포 안내를 따르세요.
alloydbctl get명령어를 사용하여 클러스터 상태를 가져오고 출력 형식을 YAML로 설정합니다.alloydbctl get -d DEPLOYMENT_SPEC -t RESOURCE_TYPE -n CLUSTER_NAME -o yaml다음을 바꿉니다.
RESOURCE_TYPE: 검사할 리소스 유형입니다(예:DBCluster).CLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.DEPLOYMENT_SPEC: 배포 사양 파일의 경로입니다.
YAML 출력에서
status섹션의instanceList를 확인합니다.역할이
Primary로 설정된 노드를 찾습니다. 다른 모든 데이터베이스 노드는 대기 노드입니다.먼저 대기 노드에서 실행되는 모든 데이터 영역 구성요소를 업데이트한 후 기본 노드에서 해당 구성요소를 업데이트합니다. 다음 단계에 따라 각 노드에서 데이터 영역 구성요소를 업데이트합니다.
AlloyDB Omni를 업데이트하려면 다음 명령어를 순서대로 실행합니다.
sudo systemctl stop alloydbomni18sudo dnf upgrade alloydbomni18sudo systemctl start alloydbomni18모니터를 업데이트하려면 다음 명령어를 순서대로 실행합니다.
sudo systemctl stop alloydbomni_monitorsudo dnf upgrade alloydbomni_monitorsudo systemctl start alloydbomni_monitorpgBackRest를 업데이트하려면 다음 명령어를 순서대로 실행합니다.
sudo dnf upgrade pgbackrestPgBouncer를 업데이트하려면 다음 명령어를 순서대로 실행합니다.
sudo systemctl stop pgbouncersudo dnf upgrade pgbouncersudo systemctl start pgbouncerkeepalived를 업데이트하려면 다음 명령어를 순서대로 실행합니다.
sudo systemctl stop keepalivedsudo dnf upgrade keepalivedsudo systemctl start keepalivedHAProxy를 업데이트하려면 다음 명령어를 순서대로 실행합니다.
sudo systemctl stop haproxysudo dnf upgrade haproxysudo systemctl start haproxy