[es] Add NON_DATA type

For #165
This commit is contained in:
Geoff Bourne 2017-07-04 18:06:08 -05:00
parent 932a6828f9
commit 0502813496
4 changed files with 46 additions and 3 deletions

View File

@ -4,7 +4,7 @@ LABEL maintainer "itzg"
RUN apk -U add bash RUN apk -U add bash
ENV ES_VERSION=5.4.2 ENV ES_VERSION=5.4.3
ADD https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$ES_VERSION.tar.gz /tmp/es.tgz ADD https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-$ES_VERSION.tar.gz /tmp/es.tgz
RUN cd /usr/share && \ RUN cd /usr/share && \

View File

@ -181,8 +181,9 @@ To simplify all that, this image provides a `TYPE` variable to let you amongst t
* `MASTER` : master-eligible, but holds no data. It is good to have three or more of these in a * `MASTER` : master-eligible, but holds no data. It is good to have three or more of these in a
large cluster large cluster
* `DATA` (or `NON_MASTER`) : holds data and serves search/index requests. Scale these out for elastic-y goodness. * `DATA` (or `NON_MASTER`) : holds data and serves search/index requests. Scale these out for elastic-y goodness.
* `NON_DATA` : performs all duties except holding data
* `GATEWAY` (or `COORDINATING`) : only operates as a client node or a "smart router". These are the ones whose HTTP port 9200 will need to be exposed * `GATEWAY` (or `COORDINATING`) : only operates as a client node or a "smart router". These are the ones whose HTTP port 9200 will need to be exposed
* `INGEST` : operates only as an ingest node and is not master or data eligble * `INGEST` : operates only as an ingest node and is not master or data eligible
A [Docker Compose](https://docs.docker.com/compose/overview/) file will serve as a good example of these three node types: A [Docker Compose](https://docs.docker.com/compose/overview/) file will serve as a good example of these three node types:

View File

@ -0,0 +1,34 @@
# This composition is known to work on a Swarm cluster consisting of
# 3 VM nodes with 1GB allocated to each.
version: '3'
services:
master:
image: itzg/elasticsearch
environment:
UNICAST_HOSTS: master
MIN_MASTERS: 1
ES_JAVA_OPTS: -Xms756m -Xmx756m
ports:
- "9200:9200"
- "9300:9300"
deploy:
replicas: 1
update_config:
parallelism: 1
data:
image: itzg/elasticsearch
deploy:
mode: global
update_config:
parallelism: 1
environment:
TYPE: DATA
UNICAST_HOSTS: master
ES_JAVA_OPTS: -Xms512m -Xmx512m
kibana:
image: kibana
ports:
- "5601:5601"
environment:
ELASTICSEARCH_URL: http://master:9200

View File

@ -99,10 +99,18 @@ setup_personality() {
OPTS="$OPTS -E node.master=false -E node.data=false -E node.ingest=true" OPTS="$OPTS -E node.master=false -E node.data=false -E node.ingest=true"
;; ;;
DATA|NON_MASTER) DATA)
OPTS="$OPTS -E node.master=false -E node.data=true -E node.ingest=false" OPTS="$OPTS -E node.master=false -E node.data=true -E node.ingest=false"
;; ;;
NON_MASTER)
OPTS="$OPTS -E node.master=false -E node.data=true -E node.ingest=true"
;;
NON_DATA)
OPTS="$OPTS -E node.master=true -E node.data=false -E node.ingest=true"
;;
*) *)
echo "Unknown node type. Please use MASTER|GATEWAY|DATA|NON_MASTER" echo "Unknown node type. Please use MASTER|GATEWAY|DATA|NON_MASTER"
exit 1 exit 1