You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Allow to control allocation if indices on nodes based on include/exclude filters. The filters can be set both on the index level and on the cluster level. Lets start with an example of setting it on the cluster level:
Lets say we have 4 nodes, each has specific attribute called tag associated with it (the name of the attribute can be any name). Each node has a specific value associated with tag. Node 1 has a setting node.tag: value1, Node 2 a setting of node.tag: value2, and so on.
We can create an index that will only deploy on nodes that have tag set to value1 and value2 by setting index.routing.allocation.include.tag to value1,value2. For example:
On the other hand, we can create an index that will be deployed on all nodes except for nodes with a tag of value value3 by setting index.routing.allocation.exclude.tag to value3. For example:
The include and exclude values can have generic simple matching wildcards, for example, value1*. A special attribute name called _ip can be used to match on node ip values.
Obviously a node can have several attributes associated with it, and both the attribute name and value are controlled in the setting. For example, here is a sample of several node configurations:
The provided settings can also be updated in real time using the update settings API, allowing to "move" indices (shards) around in realtime.
Cluster wide filtering can also be defined, and be updated in real time using the cluster update settings API. This setting can come in handy for things like decommissioning nodes (even if the replica count is set to 0). Here is a sample of how to decommission a node based on _ip address:
Allow to control allocation if indices on nodes based on include/exclude filters. The filters can be set both on the index level and on the cluster level. Lets start with an example of setting it on the cluster level:
Lets say we have 4 nodes, each has specific attribute called
tag
associated with it (the name of the attribute can be any name). Each node has a specific value associated withtag
. Node 1 has a settingnode.tag: value1
, Node 2 a setting ofnode.tag: value2
, and so on.We can create an index that will only deploy on nodes that have
tag
set tovalue1
andvalue2
by settingindex.routing.allocation.include.tag
tovalue1,value2
. For example:On the other hand, we can create an index that will be deployed on all nodes except for nodes with a
tag
of valuevalue3
by settingindex.routing.allocation.exclude.tag
tovalue3
. For example:The
include
andexclude
values can have generic simple matching wildcards, for example,value1*
. A special attribute name called_ip
can be used to match on node ip values.Obviously a node can have several attributes associated with it, and both the attribute name and value are controlled in the setting. For example, here is a sample of several node configurations:
In the same manner,
include
andexclude
can work against several attributes, for example:The provided settings can also be updated in real time using the update settings API, allowing to "move" indices (shards) around in realtime.
Cluster wide filtering can also be defined, and be updated in real time using the cluster update settings API. This setting can come in handy for things like decommissioning nodes (even if the replica count is set to 0). Here is a sample of how to decommission a node based on
_ip
address:The text was updated successfully, but these errors were encountered: