Info

2024년 10월에 경험한 내용을 다루고 있습니다.

사내에서 단일 노드로 구성된 Elasticsearch를 재기동할 때, 정상적으로 실행되지 않는 문제가 있었습니다.
이에 관해 회사 동료 분에게 도움을 받고, 추가로 정리한 내용입니다.

문제 원인

  • Elasticsearch는 Primary Shard와 Replica를 통해 데이터를 안전하게 보관합니다.
  • 별도 설정을 하지 않았다면 각각 1개씩 생성되고, 이 둘은 서로 다른 노드에 할당되어야 합니다.
  • 하지만 단일 노드에서는 이 조건을 만족할 수 없기 때문에 문제가 발생합니다.

해결 방법

  1. 노드를 추가하면 해결이 가능합니다. 하지만 개발 환경이었기 때문에 다른 방법을 사용했습니다.

  2. ES Pod 내부에서 API를 호출하여 Replica를 생성하지 않도록 설정할 수 있습니다.
    다만 운영 환경에서는 권장하지 않는 방법입니다.

    for index in $(curl -s -X GET "localhost:9200/_cat/indices?h=index"); do
    curl -X PUT "localhost:9200/$index/_settings" -H 'Content-Type: application/json' -d '{
       "index": {
          "number_of_replicas": 0
       }
    }'
    done

참고 자료