[es] Port over Swarm compatible binding address lookup

This commit is contained in:
Geoff Bourne committed 2017-02-22 17:01:00 -06:00
1 parent 205c57c3e3
commit 649ca92b14
3 files changed
+12 -12

No files matched your search

-1
View File
@@ -14,7 +14,6 @@ COPY start /start
EXPOSE 9200 9300 EXPOSE 9200 9300
ENV ES_HOME=/usr/share/elasticsearch-$ES_VERSION \ ENV ES_HOME=/usr/share/elasticsearch-$ES_VERSION \
OPTS=-Dnetwork.host=_non_loopback_ \
DEFAULT_ES_USER=elasticsearch DEFAULT_ES_USER=elasticsearch
RUN adduser -S -s /bin/sh $DEFAULT_ES_USER RUN adduser -S -s /bin/sh $DEFAULT_ES_USER
+6 -5
View File
@@ -182,13 +182,14 @@ Using the Docker Compose file above, a value of `2` is appropriate when scaling
docker-compose scale master=3 docker-compose scale master=3
## Auto transport/http discovery with Swarm Mode ## Multiple Network Binding, such as Swarm Mode
When using Docker Swarm mode (starting with 1.12), the overlay and ingress network interfaces are assigned When using Docker Swarm mode the container is presented with multiple ethernet
multiple IP addresses. As a result, it creates confusion for the transport publish logic even when using devices. By default, all global, routable IP addresses are configured for
the special value `_eth0_`. Elasticsearch to use as `network.host`.
To resolve this, add That discovery can be overridden by providing a specific ethernet device name
to `DISCOVER_TRANSPORT_IP` and/or `DISCOVER_HTTP_IP`, such as
-e DISCOVER_TRANSPORT_IP=eth0 -e DISCOVER_TRANSPORT_IP=eth0
+6 -6
View File
@@ -26,12 +26,11 @@ discoverIpFromLink() {
OPTS="$OPTS -Des.$mode.host=$ip" OPTS="$OPTS -Des.$mode.host=$ip"
} }
if [ "$DISCOVER_TRANSPORT_IP" != "" ]; then discoverAllGlobalIps() {
discoverIpFromLink $DISCOVER_TRANSPORT_IP transport ips=`ipaddr show scope global|awk '$1 == "inet" { if (!match($2,"/32")) { gsub("/.*","",$2) ; addrs[length(addrs)] = $2 } } END { for (i in addrs) { if (i>0) printf "," ; printf addrs[i] } }'`
fi OPTS="$OPTS --network.host=$ips"
if [ "$DISCOVER_HTTP_IP" != "" ]; then }
discoverIpFromLink $DISCOVER_HTTP_IP http
fi
if [ -n "$CLUSTER" ]; then if [ -n "$CLUSTER" ]; then
OPTS="$OPTS -Des.cluster.name=$CLUSTER" OPTS="$OPTS -Des.cluster.name=$CLUSTER"
@@ -98,6 +97,7 @@ else
mkdir -p /conf/plugins mkdir -p /conf/plugins
fi fi
discoverAllGlobalIps
mkdir -p /conf/scripts mkdir -p /conf/scripts
echo "Starting Elasticsearch with the options $OPTS" echo "Starting Elasticsearch with the options $OPTS"