BaeBox

ElasticSearch Cluster 구성 본문

개발 관련/DB

ElasticSearch Cluster 구성

배모씨. 2019. 11. 3. 20:43
반응형

* 7.5.2 버전에서는 아래와 같은 docker stack 설정(yml) 코드로는 동작하지 않는다. 최하단 링크에 있는 docker-compose 를 이용하여 Elasticsearch cluster를 구성하는것을 추천한다.

ElasticSearch(이하 es)는 기본적으로 하나의 Node 만 이용하는 것을 좋아하지 않는지,

하나의 Node만 떠 있는다면 Cluster 의 상태가 Yellow 로 떠 있게 된다. (그 외에 Green  Red가 있다.)


Docker 를 통해 cluster 를 구성하는 방법은 두 가지가 있다고 생각한다.

세부적으로 나누면 더 있을테지만, 모두 결과적으로는 같은 짓. 

  • elasticsearch.yml (설정파일) 을 작성한 후, 마운트. 
  • docker-compose.yml 상에 환경변수를 정의하여 docker-entry.sh 를 통해 설정.

내가 사용할 방법은 아래의 방법이다. 개인적으로는 이 편이 compose 파일을 볼 때 더 직관적이라서 선호한다.

docker-entrypoint.sh 의 환경변수를 적용해주는 코드

* 현재 dockerhub에서 제공하는 이미지들은 entry_point.sh 내지는 docker_entry.sh를 확인할 수 없다. 해당 스크립트를 마운트한 뒤 elasticsearch를 실행하고 언마운트 하거나, 실행할때 환경변수로 넘겨준 값들을 명령어를 통해 실행하는 모양이다. elasticsearch를 실행한 container 내의 elasticsearch.yml을 보면 후자일 가능성이 조금 더 높아보인다.

ElasticSearch Cluster를 구성하는 compose 파일

간단하다 이 코드를 구동하면 된다. 

Docker stack 을 기준으로 작성하였다. compose up 으로는 제대로 실행되지 않을 수도 있다.

붉은 상자 안의 코드가 Cluster를 직접적으로 지정해주는 코드이다. 

 

구성된 클러스터는 아래와 같이 확인할 수 있다.

Cluster명 : test-cluster,  각 노드 es01/es02, primary: treu/false
cluster 를 셋으로 구성하게 된다면 디폴트 설정으로는 이러한 형태의 index를 띄우게 된다. (shard: 5, replica: 1)


https://jistol.github.io/docker/2019/03/27/docker-compose-elasticsearch-cluster/

 

docker-compose를 이용한 ElasticSearch Cluster구성

 

jistol.github.io

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

 

Install Elasticsearch with Docker | Elasticsearch Reference [7.4] | Elastic

The container runs Elasticsearch as user elasticsearch using uid:gid 1000:1000. Bind mounted host directories and files, such as custom_elasticsearch.yml above, need to be accessible by this user. For the data and log dirs, such as /usr/share/elasticsearch

www.elastic.co

 

반응형

'개발 관련 > DB' 카테고리의 다른 글

Scroll  (0) 2020.02.07
Aggregation  (0) 2019.11.03
ElasticSearch - 설치  (0) 2019.11.03
ElasticSearch - CRUD  (0) 2019.11.03
ElasticSearch 구조 및 데이터 구조.  (0) 2019.11.03
Comments