Elasticsearch 롤링 업그레이드 본문
롤링 업그레이드
롤링 업그레이드란 Elasticsearch 클러스터에서 한 노드씩 업그레이드하는 것으로, 서비스 중단없이 업그레이드를 할 수 있습니다.
롤링 업그레이드 준비
1. 더 이상 제공하지 않는 기능을 사용하고 있는지 확인해야한다.
2. 주요 변경 사항을 검토한다.
3. 프로그인을 사용하는 경우 업그레이드하는 버전과 호환되는 각 플러그인의 버전이 있는지 확인해야한다.
4. 업그레이드하기 전에 테스트서버에서 테스트해야한다.
5. 스냅 샷을 찍어 데이터를 백업하고 작업 진행해야한다.
업그레이드
1. 샤드 할당을 비활성화합니다.
노르를 종료하였을때 해당 노드의 샤드를 다른 노드로 복제하는 것을 방지
PUT _cluster/settings { "persistent": { "cluster.routing.allocation.enable": "none" } } |
2. 동기화된 플러시 수행
인덱싱을 중지하고 동기화 된 플러시를 수행한다.
POST _flush/synced |
3. 머신러닝 관련된 작업을 일시적으로 중지합니다.
POST _ml/set_upgrade_mode?enabled=true |
4. 노드를 종료합니다.
systemctl stop elasticsearch |
5. 종료한 노드를 업그레이드합니다.
(RPM 예시) rpm -Uvh elasticsearch-버전-x86_64.rpm |
6. 플러그인을 업그레이드합니다.
bin/elasticsearch-plugin install URL or File |
7. 업그레이드된 노드를 시작합니다.
systemctl start elasticsearch |
9. 샤드 할당을 다시 활성화합니다.
PUT _cluster/settings { "persistent": { "cluster.routing.allocation.enable": null } } |
10. 노드가 복구 될 때까지 기다립니다.
GET /_cat/health?v |
11. 반복
12. 모든 노드가 업그레이드가 완료되면 머신러닝 작업을 다시 시작합니다.
POST _ml/set_upgrade_mode?enabled=false |
유의사항
1. 업그레이드를 할 때 클러스터의 노드를 마스터 그룹 노드와 아닌 노드 두 그룹으로 나눠서 업그레이드를 진행하는 것이 좋습니다.(마스터 그룹이 아닌 것부터 진행하고, 마스터 그룹을 진행합니다.)
2. 모든 버전이 롤링 업그레이드가 지원되지 않습니다. 공식 문서를 통해서 확인 바랍니다.
(https://www.elastic.co/guide/en/elasticsearch/reference/current/rolling-upgrades.html)
'Elastic Stack' 카테고리의 다른 글
ELK Stack TLS 구성 (0) | 2021.07.05 |
---|