12. 클러스터에 여러개 노드 추가 하기

Check Point

  • 클러스터링 방법
  • 노드가 생성되고 복제된 샤드의 할당 결과

8. 클러스터에 여러개 노드 추가 하기

클러스터링 연결과 인증 생성 절차 관련한 내용입니다.

엘라스틱 서치 설정 하기

  • [elastic-search 설치폴더]/config/elasticsearch.yml
  • 엘라스틱 서치를 똑같이 원하는 노드갯수만큼 생성한다.

노드 네임 설정 (각 생성한 엘라스틱 서치 서버 마다 설정창 진입후 노드 이름 수정)

# Use a descriptive name for the node:
#
node.name: [원하는 노드명]
  • 설정이 완료되면 처음 Kibana를 설정할 때와 똑같이 등록에 인증 토큰이 필요하다.
  • 새 노드를 처음 시작할 때만 필요하다. 하지만 클러스터링에 조인되면 토큰을 지정하지 않아도 실행이 가능하다.

Elastic Search 인증 토큰 생성하기

  • 생성하려는 인증 토큰 유형을 스크립트에 알리기 위해 토큰 유형에 대해 범위를 지정해야한다.
  • node, kibana등등이 있다.
# elastic search 폴더 ->
bin/elasticsearch-createenrollment-token --scope node
  • 위 명령어로 토큰이 생성되면 생성한 노드 디렉토리로 가서 인증 토큰을 제공해줘야한다.
# 인증 토큰 등록 절차
bin/elasticsearch --enrollment-token [토큰]
  • 인증 토큰 절차를 실행하면 클러스터링이 되고 처음에 실행된 클러스터에 새로 생성한 노드가 합류된다.
  • Kibana에 접속해서 클러스터 상태를 조회하면 status가 green으로 변경되고, 노드가 2개로 늘어난걸로 보일것이다. 기존에 복제되었던 노드가 새로 생성한 두번 째 노드에 할당되었기 때문이다.
  • 결과적으로 마스터 노드에서 생성한 토큰으로 초기에 등록절차를 주고 실행하게 되면 다음에는 필요하지 않게 되고 자동으로 클러스터링이 연결된다.

복제된 샤드가 노드에 할당된 결과 확인

# 샤드 할당 결과 확인
GET /_cat/shards?v

pages                                                         0     p      STARTED    0    225b 127.0.0.1 jeonhong-uui-iMac.local
pages                                                         0     r      STARTED    0    225b 127.0.0.1 second-node
  • 실제로 할당결과를 보면 각각 primary, replica가 각기 다른 노드에 자동 할당되어 복제된걸 볼 수 있다.

클러스터링 구성 관련

  • 클러스터에 3개 이상의 노드로 구성하게 되면 단일 노드로는 실행할 수 없다.
  • 엘라스틱 서치가 마스터 노드를 선별하는 방법이 있다.
    • 단일 노드로 클러스터가 3개인 방법으로는 실행이 불가능함
    • 단일 노드로 구성하려면 노드를 3개이상 하면 안된다.
    • 하지만 단일 노드로 돌아가기 위해 나중에 새로운 클러스터를 만들면 된다.
  • 할당되지 않은 복제된 샤드는 노드를 잃지만 사라지지 않는다.
    • 결과적으로 새로운 노드가 다시 할당되면 다시 복제 샤드가 생성된 노드에 할당된다. 그럼으로 다른 노드가 사라졌을 때 데이터 손실로부터 보호가 된다.
LIST