[Elsticsearch] 클러스터 버전 version 업그레이드 하기

HI·2022년 4월 22일
0

elasticsearch 운영

목록 보기
1/7

elasticsearch vesion 업그레이드 하던 절차를 정리해봤다.

rolling restart 무중단 업그레이드 순서

1) elastic 업그레이드할 version 설치하기

2) elasticsearch.yml 기존과 동일하게 세팅하기

사용하던 사전, plugin 세팅하기, jvm.options 등
여기까지 업그레이드할 준비를 한다.

3) shard alocation primary 설정

노드가 떨어지고 일정 시간이 지나면 elasticsearch는 자동으로 샤드 재배치, replica를 생성하려고 움직이는데 이를 방지한다.
(물론 바로 재기동하는 경우는 괜찮긴 하나 미연의 방지를 위해서,,,)

 PUT _cluster/settings
 {
    "persistent": {
    "cluster.routing.allocation.enable": "none"
     }
 }
 

4) 기존 버전 노드 stop

5) elasticsearch의 data 폴더 mv 하기(또는 심볼링링크 교체)

기존 버전에 있던 data폴더를 신규 버전의 폴더로 옮겨오기.

6) 신규 버전 노드 start

7) curl -XGET "http://localhost:9200/_cat/nodes" 노드가 클러스터에 들어왔는지 확인

8) shard allocation null 로 설정

샤드가 할당될 수 있도록 다시 풀어주기.

 PUT _cluster/settings
{
  	"persistent": {
    "cluster.routing.allocation.enable": null
  	}
}

9) 샤드 진행 확인

	GET _cat/health?v=true  

위의 명령어 또는 Kibana 모니터링으로 클러스터 상태 확인한다.
샤드가 모두 할당 되어 클러스터 상태가 green이 될때까지 기다린다.

10) 위의 과정 반복해서 전서버 업그레이드를 완료한다.

노드 역할 별 업그레이드 순서

나는 다음과 같은 순서대로 업그레이드를 해주엇다.

   1) master 후보가 아닌 노드
   2) master 후보 노드 업그레이드
   3) master 노드 업그레이드

테스트 하며 주의사항으로는
1) 마스터노드까지 업그레이드 완료 후 Kibana 업그레이드 해준다.(Kibana 먼저하면 에러났음)
2) elasticsearch.yml 파일 주의하기
discovery.seed_hosts에 현재 master node가 없으면, 재기동했을때 독립된 클러스터가 되버린다.(data가 없는 노드여서 그런걸수도...?)

profile
https://github.com/gaeunban

0개의 댓글