separate data and client nodes, added more options

This commit is contained in:
Dominic Werner 2017-04-19 16:42:14 +02:00
parent 85def78b5a
commit f31d97c613
2 changed files with 93 additions and 23 deletions

View File

@ -3,17 +3,18 @@ services:
es-master: es-master:
labels: labels:
- io.rancher.container.hostname_override=container_name - io.rancher.container.hostname_override=container_name
- io.rancher.sidekicks=es-data - io.rancher.sidekicks=es-storage
image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0 image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0
environment: environment:
- "cluster.name=${cluster_name}" - "cluster.name=${cluster_name}"
- "node.name=$${HOSTNAME}" - "node.name=$${HOSTNAME}"
- "bootstrap.memory_lock=true" - "bootstrap.memory_lock=true"
- "xpack.security.enabled=false" - "xpack.security.enabled=false"
- "ES_JAVA_OPTS=-Xms${heap_size} -Xmx${heap_size}" - "ES_JAVA_OPTS=-Xms${master_heap_size} -Xmx${master_heap_size}"
- "discovery.zen.ping.unicast.hosts=es-master" - "discovery.zen.ping.unicast.hosts=es-master"
- "discovery.zen.minimum_master_nodes=${minimum_master_nodes}" - "discovery.zen.minimum_master_nodes=${minimum_master_nodes}"
- "node.master=true" - "node.master=true"
- "node.data=false"
ulimits: ulimits:
memlock: memlock:
soft: -1 soft: -1
@ -21,17 +22,17 @@ services:
nofile: nofile:
soft: 65536 soft: 65536
hard: 65536 hard: 65536
mem_limit: ${mem_limit} mem_limit: ${master_mem_limit}
mem_swappiness: 0 mem_swappiness: 0
cap_add: cap_add:
- IPC_LOCK - IPC_LOCK
volumes_from: volumes_from:
- es-data - es-storage
es-node: es-data:
labels: labels:
- io.rancher.container.hostname_override=container_name - io.rancher.container.hostname_override=container_name
- io.rancher.sidekicks=es-data - io.rancher.sidekicks=es-storage
image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0 image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0
environment: environment:
- "cluster.name=${cluster_name}" - "cluster.name=${cluster_name}"
@ -39,8 +40,9 @@ services:
- "bootstrap.memory_lock=true" - "bootstrap.memory_lock=true"
- "xpack.security.enabled=false" - "xpack.security.enabled=false"
- "discovery.zen.ping.unicast.hosts=es-master" - "discovery.zen.ping.unicast.hosts=es-master"
- "ES_JAVA_OPTS=-Xms${heap_size} -Xmx${heap_size}" - "ES_JAVA_OPTS=-Xms${data_heap_size} -Xmx${data_heap_size}"
- "node.master=false" - "node.master=false"
- "node.data=true"
ulimits: ulimits:
memlock: memlock:
soft: -1 soft: -1
@ -48,16 +50,46 @@ services:
nofile: nofile:
soft: 65536 soft: 65536
hard: 65536 hard: 65536
mem_limit: ${mem_limit} mem_limit: ${data_mem_limit}
mem_swappiness: 0 mem_swappiness: 0
cap_add: cap_add:
- IPC_LOCK - IPC_LOCK
volumes_from: volumes_from:
- es-data - es-storage
depends_on:
- es-master
es-client:
labels:
- io.rancher.container.hostname_override=container_name
- io.rancher.sidekicks=es-storage
image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0
environment:
- "cluster.name=${cluster_name}"
- "node.name=$${HOSTNAME}"
- "bootstrap.memory_lock=true"
- "xpack.security.enabled=false"
- "discovery.zen.ping.unicast.hosts=es-master"
- "ES_JAVA_OPTS=-Xms${client_heap_size} -Xmx${client_heap_size}"
- "node.master=false"
- "node.data=false"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
mem_limit: ${client_mem_limit}
mem_swappiness: 0
cap_add:
- IPC_LOCK
volumes_from:
- es-storage
depends_on: depends_on:
- es-master - es-master
es-data: es-storage:
labels: labels:
- io.rancher.container.start_once=true - io.rancher.container.start_once=true
image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0 image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0

View File

@ -1,7 +1,7 @@
.catalog: .catalog:
name: Elasticsearch Cluster name: Elasticsearch Cluster
version: 5.3.0-rancher1 version: 5.3.0-rancher1
description: 3-Node Elasticsearch Cluster with Kibana description: Scalable Elasticsearch Cluster with Kibana
questions: questions:
- variable: "cluster_name" - variable: "cluster_name"
@ -11,18 +11,46 @@
description: "Name of the Elasticsearch Cluster" description: "Name of the Elasticsearch Cluster"
default: "es-cluster" default: "es-cluster"
- variable: "heap_size" - variable: "master_heap_size"
type: "string" type: "string"
required: true required: true
label: "Heap size" label: "Heap size (master nodes)"
description: "Heap size to be allocated for Java" description: "Heap size to be allocated for Java (mater nodes)"
default: "512m" default: "512m"
- variable: "mem_limit" - variable: "master_mem_limit"
type: "int" type: "int"
required: true required: true
label: "Memory limit in byte" label: "Memory limit in byte (master nodes)"
description: "Memory limit in Byte per elasticsearch container. AT LEAST double the heap size!" description: "Memory limit in Byte per elasticsearch container. AT LEAST double the heap size! (master nodes)"
default: 1073741824
- variable: "data_heap_size"
type: "string"
required: true
label: "Heap size (data nodes)"
description: "Heap size to be allocated for Java (mater nodes)"
default: "512m"
- variable: "data_mem_limit"
type: "int"
required: true
label: "Memory limit in byte (data nodes)"
description: "Memory limit in Byte per elasticsearch container. AT LEAST double the heap size! (data nodes)"
default: 1073741824
- variable: "client_heap_size"
type: "string"
required: true
label: "Heap size (client nodes)"
description: "Heap size to be allocated for Java (mater nodes)"
default: "512m"
- variable: "client_mem_limit"
type: "int"
required: true
label: "Memory limit in byte (client nodes)"
description: "Memory limit in Byte per elasticsearch container. AT LEAST double the heap size! (client nodes)"
default: 1073741824 default: 1073741824
- variable: "kibana_port" - variable: "kibana_port"
@ -37,18 +65,28 @@
required: true required: true
label: "# of minimum Master Nodes" label: "# of minimum Master Nodes"
description: "Set the number of required master nodes to reach quorum. Sets initial scale to this value as well" description: "Set the number of required master nodes to reach quorum. Sets initial scale to this value as well"
default: 2 default: 3
- variable: "initial_data_nodes" - variable: "initial_data_nodes"
type: "int" type: "int"
required: true required: true
label: "# of initial nodes" label: "# of initial data nodes"
description: "Set the initial number of nodes" description: "Set the initial number of data nodes"
default: 2
- variable: "initial_client_nodes"
type: "int"
required: true
label: "# of initial client nodes"
description: "Set the initial number of client nodes"
default: 1 default: 1
es-master: es-master:
scale: ${minimum_master_nodes} scale: ${minimum_master_nodes}
es-node: es-data:
scale: ${initial_data_nodes} scale: ${initial_data_nodes}
es-client:
scale: ${initial_client_nodes}