nofile 및 nproc에 대한 ulimits 늘리기
Elasticsearch 컨테이너 에서 nofile 및 nproc에 대한 증가 된 ulimits를 사용할 수 있어야합니다. Docker 데몬 의 init 시스템 이 허용 가능한 값으로 설정 하는지 확인 합니다.
ulimits에 대한 Docker 데몬 기본값을 확인하려면 다음을 실행하십시오.
스와핑 비활성화
성능 및 노드 안정성을 위해 스와핑을 비활성화해야합니다. 이를 수행하는 방법에 대한 자세한 내용은 스와핑 비활성화를 참조하십시오 .
bootstrap.memory_lock: true접근 방식 을 선택하는 경우 Docker Daemonmemlock: true 에서 ulimit 를 정의 하거나 샘플 compose 파일에 표시된대로 컨테이너에 대해 명시 적으로 설정해야 합니다 . 를 사용할 때 다음을 지정할 수 있습니다.docker run
게시 된 포트 무작위 화
이미지 는 TCP 포트 9200 및 9300을 노출합니다. 프로덕션 클러스터의 --publish-all경우 호스트 당 하나의 컨테이너를 고정하지 않는 한 게시 된 포트를 무작위로 지정하는 것이 좋습니다.
힙 크기 설정
힙 크기를 구성하려면 원하는 힙 크기 설정 이 포함 된 JVM 옵션 파일을 바인딩 할 수 있습니다 . 기본 루트 파일은 기본 힙을 1GB로 설정하지만 바인드 마운트 된 JVM 옵션 파일에 설정 한 모든 값이이를 대체합니다./usr/share/elasticsearch/config/jvm.options.djvm.options
바인드 마운트 된 JVM 옵션을 통해 힙 크기를 설정하는 것이 권장되는 방법이지만 ES_JAVA_OPTS환경 변수를 사용하여 힙 크기를 설정 하여이를 구성 할 수도 있습니다 .
예를 들어 16GB를 사용하려면로 지정 -e ES_JAVA_OPTS="-Xms16g -Xmx16g"합니다 docker run. 기본 루트 jvm.options파일은 기본 힙을 1GB로 설정하지만 설정 한 모든 값이 ES_JAVA_OPTS이를 재정의합니다. docker-compose.yml위 의 파일은 힙 크기를 512MB로 설정합니다.
특정 이미지 버전에 배치 고정
Elasticsearch Docker 이미지의 특정 버전에 배포를 고정합니다. 예를 들면 docker.elastic.co/elasticsearch/elasticsearch:7.10.1.
항상 데이터 볼륨 바인딩
/usr/share/elasticsearch/data다음과 같은 이유로 바인딩 된 볼륨을 사용해야합니다 .
- 컨테이너가 죽더라도 Elasticsearch 노드의 데이터는 손실되지 않습니다.
- Elasticsearch는 I / O에 민감하며 Docker 스토리지 드라이버는 빠른 I / O에 적합하지 않습니다.
- 고급 Docker 볼륨 플러그인을 사용할 수 있습니다.
loop-lvm모드 사용 금지
devicemapper 저장소 드라이버를 사용하는 경우 기본 loop-lvm모드를 사용하지 마십시오 . direct-lvm 을 사용하도록 docker-engine을 구성합니다 .
로그 중앙 집중화편집하다
다른 로깅 드라이버를 사용하여 로그를 중앙 집중화하는 것이 좋습니다. 또한 기본 json 파일 로깅 드라이버는 프로덕션 용도에 적합하지 않습니다.
Docker로 Elasticsearch 구성
Docker에서 실행하면 Elasticsearch 구성 파일 이 /usr/share/elasticsearch/config/.
사용자 지정 구성 파일을 사용하려면 이미지의 구성 파일 위에 파일 을 바인드 마운트합니다 .
Docker 환경 변수를 사용하여 개별 Elasticsearch 구성 매개 변수를 설정할 수 있습니다. 샘플 작성 파일 과 단일 노드의 예는 이 방법을 사용합니다.
파일 내용을 사용하여 환경 변수를 설정하려면 환경 변수 이름에 _FILE. 이는 비밀번호와 같은 비밀을 직접 지정하지 않고 Elasticsearch에 전달하는 데 유용합니다.
예를 들어 파일에서 Elasticsearch 부트 스트랩 암호를 설정하려면 파일 마운트를 바인드하고 ELASTIC_PASSWORD_FILE환경 변수를 마운트 위치로 설정할 수 있습니다. 비밀번호 파일을에 마운트하는 경우 다음을 /run/secrets/bootstrapPassword.txt지정하십시오.
이미지의 기본 명령을 재정 의하여 Elasticsearch 구성 매개 변수를 명령 줄 옵션으로 전달할 수도 있습니다. 예를 들면 :
구성 파일을 바인드 마운트하는 것이 일반적으로 프로덕션에서 선호되는 방법이지만 구성이 포함 된 사용자 지정 Docker 이미지 를 만들 수도 있습니다 .
Elasticsearch 구성 파일 마운트
사용자 지정 구성 파일을 만들고 Docker 이미지의 해당 파일에 바인딩 마운트합니다. 예를 들어로 bind-mount하려면 다음 custom_elasticsearch.yml을 docker run지정하십시오.
Elasticsearch 키 저장소 마운트
기본적으로 Elasticsearch는 보안 설정을 위해 키 저장소 파일을 자동 생성합니다. 이 파일은 난독 화되었지만 암호화되지 않았습니다. 비밀번호로 보안 설정 을 암호화 하려면 elasticsearch-keystore유틸리티를 사용하여 비밀번호로 보호 된 키 저장소를 생성하고 컨테이너에 /usr/share/elasticsearch/config/elasticsearch.keystore. 시작시 Docker 컨테이너에 비밀번호를 제공하려면 Docker 환경 값 KEYSTORE_PASSWORD을 비밀번호 값으로 설정하십시오. 예를 들어 docker run명령에는 다음 옵션이있을 수 있습니다.
사용자 지정 Docker 이미지 사용
일부 환경에서는 구성이 포함 된 사용자 지정 이미지를 준비하는 것이 더 합리적 일 수 있습니다. A는 Dockerfile이 단순하게 수 있습니다 달성하기 위해 :
'기술_Elasticsearch' 카테고리의 다른 글
Elasticsearch 구성 (0) | 2022.06.22 |
---|---|
Homebrew로 macOS에 Elasticsearch 설치 (0) | 2022.06.22 |
Docker로 Elasticsearch 설치 (0) | 2022.06.22 |
시스템 인덱스 자동 생성 활성화 (0) | 2022.06.22 |
Elasticsearch가 실행 중인지 확인 (0) | 2022.06.22 |