diff --git a/templates/es-cluster/0/docker-compose.yml b/templates/es-cluster/0/docker-compose.yml index 35d5f96..1ca1cb4 100644 --- a/templates/es-cluster/0/docker-compose.yml +++ b/templates/es-cluster/0/docker-compose.yml @@ -3,17 +3,18 @@ services: es-master: labels: - 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 environment: - "cluster.name=${cluster_name}" - "node.name=$${HOSTNAME}" - "bootstrap.memory_lock=true" - "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.minimum_master_nodes=${minimum_master_nodes}" - "node.master=true" + - "node.data=false" ulimits: memlock: soft: -1 @@ -21,17 +22,17 @@ services: nofile: soft: 65536 hard: 65536 - mem_limit: ${mem_limit} + mem_limit: ${master_mem_limit} mem_swappiness: 0 cap_add: - IPC_LOCK volumes_from: - - es-data + - es-storage - es-node: - labels: + es-data: + labels: - 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 environment: - "cluster.name=${cluster_name}" @@ -39,8 +40,9 @@ services: - "bootstrap.memory_lock=true" - "xpack.security.enabled=false" - "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.data=true" ulimits: memlock: soft: -1 @@ -48,16 +50,46 @@ services: nofile: soft: 65536 hard: 65536 - mem_limit: ${mem_limit} + mem_limit: ${data_mem_limit} mem_swappiness: 0 cap_add: - IPC_LOCK 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: - es-master - es-data: + es-storage: labels: - io.rancher.container.start_once=true image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0 diff --git a/templates/es-cluster/0/rancher-compose.yml b/templates/es-cluster/0/rancher-compose.yml index c68cec5..a09ade6 100644 --- a/templates/es-cluster/0/rancher-compose.yml +++ b/templates/es-cluster/0/rancher-compose.yml @@ -1,7 +1,7 @@ .catalog: name: Elasticsearch Cluster version: 5.3.0-rancher1 - description: 3-Node Elasticsearch Cluster with Kibana + description: Scalable Elasticsearch Cluster with Kibana questions: - variable: "cluster_name" @@ -11,18 +11,46 @@ description: "Name of the Elasticsearch Cluster" default: "es-cluster" - - variable: "heap_size" + - variable: "master_heap_size" type: "string" required: true - label: "Heap size" - description: "Heap size to be allocated for Java" + label: "Heap size (master nodes)" + description: "Heap size to be allocated for Java (mater nodes)" default: "512m" - - variable: "mem_limit" + - variable: "master_mem_limit" type: "int" required: true - label: "Memory limit in byte" - description: "Memory limit in Byte per elasticsearch container. AT LEAST double the heap size!" + label: "Memory limit in byte (master nodes)" + 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 - variable: "kibana_port" @@ -37,18 +65,28 @@ required: true label: "# of minimum Master Nodes" 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" type: "int" required: true - label: "# of initial nodes" - description: "Set the initial number of nodes" + label: "# of initial data 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 es-master: scale: ${minimum_master_nodes} -es-node: - scale: ${initial_data_nodes} \ No newline at end of file +es-data: + scale: ${initial_data_nodes} + +es-client: + scale: ${initial_client_nodes} \ No newline at end of file