[엘라스틱서치] 롤링업그레이드 가이드 - forewalk/elastic GitHub Wiki

Elasticsearch

롤링업그레이드


엘라스틱서치를 롤링업그레이드하기 위해선 먼저 전제조건 이 필요하다

  1. 마이너 버전에서의 업그레이드 혹은, (부분적으로 지원할시)마이너 마지막버전과 메이저 첫번째 버전의 업그레이드 그 이유는 엘라스틱서치 자체가 메이저 버전이 같다면 같은 클러스터링이 가능하기 때문이다.

다시 말하면 메이저버전이 다르면 클러스팅이 잘 안될 수 있다는 이야기

롤링업그레이드의 특징은

  1. 다운타임이 발생하지 않는다.
  2. 마이너버전끼리 혹은, 마이너 마지막버전과 메이저 첫번째 버전끼리 가능
  3. shard allocation이 필요하다.<< 이 부분이 핵심

진행 전 몇 가지 준비사항

config 설정은 아에 처음부터 다시 한다고 생각하고 진행하는게 마음이 편함(아님 shard config path가 있으면 좋을 듯) kibana의 경우 .kibana index가 어디 노드에 위치해 있는지 잘보고 해당 노드를 롤링할떈 키바나가 RED가 될 수 있다는 점을 참고해야 한다 .kibana 혹은 .security 노드를 진행할 때에는 dev tools이 사용 불가 일수 있으니 준비하고 진행하라 라이선스 관련 에러발생한다면, 라이선스를 다시 업데이트 하여 보기를 권장

  1. shard allocation 중지: 노드가 중지되어도 샤드가 재배치 되지 않습니다.
PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": "none"
  }
}
  1. 프라이머리-리플리카 샤드끼리 세그먼트 저장상태 동기화

POST _flush/synced

  1. 1번 서버의 elasticsearch 중단

  2. 노드의 상태 확인(yellow 상태로 넘어갔는지 확인)

GET _cat/nodes

  1. asis의 config 및 core 파일 백업

  2. config mig.(기존것을 참고하여 재작성하는게 마음이 편하다)

  3. plugin 설치

  4. shard allocation 재가동

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": null
  }
}
  1. 클러스터 상태 그린 확인

GET _cat/health