Der ElasticSearch-Cluster unterstützt Offizielle Dokumentation zu dynamischen Cluster-Verbindungsmethoden: https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-update-settings.html Vorarbeit Beschreibung der Parameter auf der offiziellen Website:
Docker-Pull Elasticsearch:7.8.0 Erstellen Sie ein Netzwerk es_net, um den Elasticsearch-Cluster zu platzieren Docker-Netzwerk erstellen --subnet=172.18.0.0/24 es_net Gemäß den Informationen WORKDIR /usr/share/elasticsearch in der DockerFile-Datei auf der offiziellen Website können wir erkennen, dass sich der Installationsort von Elasticsearch im Verzeichnis /usr/share/elasticsearch befindet. Um nachfolgende Vorgänge zu erleichtern, erstellen Sie ein Datenvolumen, um die von Elasticsearch generierten Daten dem Host zuzuordnen, um zu verhindern, dass ES abstürzt und Daten nicht wiederhergestellt werden können. Erstellen eines Datenvolumens Docker-Volume erstellen es_data01 Docker-Volume erstellen es_data02 Docker-Volume erstellen es_data03 #Öffentliche Konfigurationsdateien und Plugin-Speicherort Docker-Volume erstellen es_conf Docker-Volume erstellt es_plugins Erstellen Sie drei YML-Konfigurationsdateien zum Speichern von Daten, Konfigurationen und Plug-Ins Dynamischer Aufbau eines ElasticSearch-Clusters (empfohlen) Dies bedeutet, dass Sie den Clusteraufbau abschließen können, indem Sie einfach ElasticSearch starten und dann die in ES integrierten Operationen im RestFul-Stil verwenden. Starten Sie es01 docker run -it -d --restart immer -p 9201:9200 -p 9301:9300 \ --name es01 --network=es_net --ip=172.18.0.101 \ -v es_data01:/usr/share/elasticsearch/data \ -v es_conf:/usr/share/elasticsearch/conf \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e "Entdeckung.Typ=Einzelknoten" \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0 Starten Sie es02 docker run -it -d --restart immer -p 9202:9200 -p 9302:9300 \ --name es02 --network=es_net --ip=172.18.0.102 \ -v es_data02:/usr/share/elasticsearch/data \ -v es_conf:/usr/share/elasticsearch/conf \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e "Entdeckung.Typ=Einzelknoten" \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0 Starten Sie es03 docker run -it -d --restart immer -p 9203:9200 -p 9303:9300 \ --name es03 --network=es_net --ip=172.18.0.103 \ -v es_data03:/usr/share/elasticsearch/data \ -v es_conf:/usr/share/elasticsearch/conf \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e "Entdeckung.Typ=Einzelknoten" \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0 Über die PUT-Methode können Sie den Linux-Curl-Befehl verwenden, um auf es02 und es03 zu arbeiten curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Inhaltstyp: application/json' -d' { "hartnäckig" : { "Cluster": { "Fernbedienung" : { "Führer" : { "Samen" : [ „127.0.0.1:9300“ ] } } } } } ' Persistentes Update curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Inhaltstyp: application/json' -d' { "hartnäckig" : { "indices.recovery.max_bytes_per_sec" : "50 MB" } } ' Transiente aktualisieren curl -X PUT "localhost:9200/_cluster/settings?flat_settings=true&pretty" -H 'Inhaltstyp: application/json' -d' { "vorübergehend" : { "indices.recovery.max_bytes_per_sec": "20 MB" } } ' Löschen vorübergehender Konfigurationsinhalte curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Inhaltstyp: application/json' -d' { "vorübergehend" : { "indices.recovery.max_bytes_per_sec" : null } } ' Alle vorübergehenden Einstellungen entfernen curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Inhaltstyp: application/json' -d' { "vorübergehend" : { "indices.recovery.*" : null } } ' ElasticSearch startet den Cluster über eine statische Konfigurationsdatei Der Grund für den Fehler dürfte darin liegen, dass beim Starten des Containers zu wenig Parameter zur Verfügung stehen. Konfigurationsdateiinformationen des Knotens es-node1 vim /var/lib/docker/volumes/es_conf/_data/es01.yml Bitte ändern Sie die Host-IP und die Portadresse der ES-Clusterkommunikation in der Kommentarzeile Clustername: Elasticsearch-Cluster Knotenname: es-node1 Netzwerk.Bind_Host: 0.0.0.0 network.publish_host: 192.168.117.231 #Ändern Sie die IP des Docker-Hosts http.port: 9200 #Dies befindet sich innerhalb des Containers, also muss es nicht geändert werden transport.tcp.port: 9300 #Dies befindet sich innerhalb des Containers, also muss es nicht geändert werden http.cors.enabled: true http.cors.allow-origin: "*" node.master: wahr node.data: wahr Entdeckung.seed_hosts: ["192.168.117.231:9300","192.168.117.231:9301","192.168.117.232:9302"] Entdeckung.zen.minimum_master_nodes: 2 indices.query.bool.max_clause_count: 10240 #Verwenden Sie zum Erstellen unterschiedliche Ports eines Hosts und geben Sie beim Starten des Docker-Containers den Mapping-Port über -p an Aus der obigen Konfigurationsdatei können wir ersehen, dass die Ports 9300, 9301 und 9302 zugeordnet werden müssen. Diese Ports werden für die Clusterkommunikation verwendet, d. h. die drei Knotenbindungsports sind -p 9300:9300, -p 9301:9300 und -p 9302:9300. Erstellen Sie eine Tabelle: |
Knoten | An Host-Port 1 binden | An Host-Port 2 binden |
---|---|---|
es-node1 | 9200 | 9300 |
es-node2 | 9201 | 9301 |
es-node3 | 9202 | 9301 |
Wirkung | Häfen, die externe Dienste anbieten | Der Port für die Kommunikation zwischen es1- und es3-Clustern |
Konfigurationsdateiinformationen des Knotens es-node2
vim /var/lib/docker/volumes/es_conf/_data/es02.yml
Der Unterschied zu es-node1 besteht darin, dass der Knotenname geändert wird
Clustername: Elasticsearch-Cluster Knotenname: es-node2 Netzwerk.Bind_Host: 0.0.0.0 network.publish_host: 192.168.117.231 #Ändern Sie die IP des Docker-Hosts http.port: 9200 #Dies befindet sich innerhalb des Containers, also muss es nicht geändert werden transport.tcp.port: 9300 #Dies befindet sich innerhalb des Containers, also muss es nicht geändert werden http.cors.enabled: true http.cors.allow-origin: "*" node.master: wahr node.data: wahr Entdeckung.seed_hosts: ["192.168.117.231:9300","192.168.117.231:9301","192.168.117.232:9302"] Entdeckung.zen.minimum_master_nodes: 2 indices.query.bool.max_clause_count: 10240 #Verwenden Sie zum Erstellen unterschiedliche Ports eines Hosts und geben Sie beim Starten des Docker-Containers den Mapping-Port über -p an
Konfigurationsdateiinformationen des Knotens es-node3
vim /var/lib/docker/volumes/es_conf/_data/es02.yml
Der Unterschied zu es-node1 besteht darin, dass der Knotenname geändert wird
Clustername: Elasticsearch-Cluster Knotenname: es-node3 Netzwerk.Bind_Host: 0.0.0.0 network.publish_host: 192.168.117.231 #Ändern Sie die IP des Docker-Hosts http.port: 9200 #Dies befindet sich innerhalb des Containers, also muss es nicht geändert werden transport.tcp.port: 9300 #Dies befindet sich innerhalb des Containers, also muss es nicht geändert werden http.cors.enabled: true http.cors.allow-origin: "*" node.master: wahr node.data: wahr Entdeckung.seed_hosts: ["192.168.117.231:9300","192.168.117.231:9301","192.168.117.232:9302"] Entdeckung.zen.minimum_master_nodes: 2 indices.query.bool.max_clause_count: 10240 #Verwenden Sie zum Erstellen unterschiedliche Ports eines Hosts und geben Sie beim Starten des Docker-Containers den Mapping-Port über -p an
Startbefehl es-node1, Docker-Prozessalias es01
Das verwendete Netzwerk ist die oben erstellte Netzwerkkarte es_net, und die interne Netzwerk-IP 172.18.0.100 des angegebenen Knotens muss sich im selben Netzwerksegment wie es_net befinden
docker run -it -d --restart immer -p 9200:9200 -p 9300:9300 \ --name es01 --network=es_net --ip=172.18.0.100 \ -v es_data01:/usr/share/elasticsearch/data \ -v /var/lib/docker/volumes/es_conf/_data/es01.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0
ES_JAVA_OPTS gibt den von es verwendeten Speicher an, um zu verhindern, dass beim Starten von es zu viel Speicherplatz beansprucht wird.
--restart always Das Datenträgermapping wird weggelassen. Zu beachten ist lediglich, dass die Konfigurationsdatei es01.yml auf die Konfigurationsdatei gemappt wird, die beim Start des internen es verwendet wird.
docker run -it -d --restart immer -p 9201:9200 -p 9301:9300 \ --name es02 --network=es_net --ip=172.18.0.101 \ -v es_data02:/usr/share/elasticsearch/data \ -v /var/lib/docker/volumes/es_conf/_data/es02.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0
docker run -it -d --restart immer -p 9202:9200 -p 9302:9300 \ --name es03 --network=es_net --ip=172.18.0.102 \ -v es_data03:/usr/share/elasticsearch/data \ -v /var/lib/docker/volumes/es_conf/_data/es03.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v es_plugins:/usr/share/elasticsearch/plugins \ -e ES_JAVA_OPTS="-Xms64m -Xmx128m" elasticsearch:7.8.0
Dies ist das Ende dieses Artikels zur Installation des ElasticSearch:7.8.0-Clusters mit Docker. Weitere Informationen zur Installation des ElasticSearch-Clusters mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!
>>: Konfigurationslösung für die MySQL Dual-Master-Architektur (Master-Master)
Das einfache, nahtlos scrollende Karussell weist ...
Inhaltsverzeichnis Vorwort Mischen Mixin-Hinweis ...
Als PHP7 herauskam, habe ich als Fan der neuesten...
Das Textfeld mit dem ReadOnly-Attribut wird auf de...
1. Bereiten Sie zunächst die MySQL- und Eclipse-U...
Inhaltsverzeichnis Nehmen Sie Todolist als Beispi...
1. Einreihiger Überlauf 1. Wenn eine einzelne Zei...
Spezifische Methode: Öffnen Sie zuerst die Eingab...
Die Lösung für das Problem, dass MySQL keine Verb...
Holen Sie sich das aktuelle Datum + die aktuelle ...
Dieser Artikel beschreibt anhand von Beispielen v...
Holen Sie sich das IP-Tool importiere lombok.exte...
Bei der Designarbeit höre ich oft, dass an der Übe...
Laden Sie MySQL 5.7.20 / 5.7.21 herunter, install...
1. Problembeschreibung <br />Wenn JS verwen...