es boleh digunakan dengan docker; mengerahkan kluster es boleh dilakukan secara langsung menggunakan "docker-compose" ialah alat docker yang digunakan untuk mentakrif dan menjalankan aplikasi yang kompleks, aplikasi menggunakan bekas docker , biasanya terdiri daripada berbilang bekas, menggunakan "docker-compose" menghapuskan keperluan untuk menggunakan skrip shell untuk memulakan bekas.
Persekitaran pengendalian tutorial ini: sistem linux7.3, docker versi 19.03, komputer Dell G3.
Deployment of es cluster boleh dilakukan secara terus menggunakan docker-compose
Docker Compose ialah alat Docker yang digunakan untuk mentakrif dan menjalankan aplikasi yang kompleks . Aplikasi yang menggunakan bekas Docker biasanya terdiri daripada berbilang bekas. Menggunakan Docker Compose tidak lagi memerlukan skrip shell untuk memulakan bekas.
Karang menguruskan berbilang bekas Docker melalui fail konfigurasi Dalam fail konfigurasi, semua bekas ditakrifkan melalui perkhidmatan, dan kemudian skrip karang docker digunakan untuk memulakan, menghentikan dan memulakan semula aplikasi dan perkhidmatan dalam. serta semua kontena yang bergantung pada perkhidmatan, ia sangat sesuai untuk senario di mana berbilang kontena digabungkan untuk pembangunan.
Meluaskan pengetahuan
Pengenalan kepada kluster ES
Mengapa kluster diperlukan
Pencarian elastik mesin tunggal Apabila melakukan penyimpanan data, anda pasti akan menghadapi dua masalah: masalah penyimpanan data besar-besaran dan masalah kegagalan titik tunggal.
Masalah storan data yang besar: Pisah pustaka indeks secara logik kepada serpihan N dan simpannya pada berbilang nod
Masalah kegagalan satu titik: Pisahkan data yang terpecah di lokasi yang berbeza Sandaran nod (replika)
Konsep berkaitan kluster ES
Kluster: sekumpulan nod dengan nama kluster biasa.
Nod: tika Elasticearch dalam kelompok
Shard: indeks boleh dibahagikan kepada bahagian yang berbeza Storan dipanggil sharding. Dalam persekitaran kluster, serpihan indeks yang berbeza boleh dibahagikan kepada nod yang berbeza
Selesaikan masalah: jumlah data terlalu besar dan kapasiti storan satu titik adalah terhad.
Di sini, kami membahagikan data kepada 3 serpihan: shard0, shard1, shard2
Serpihan utama: Definisi relatif kepada serpihan replika .
Replika serpihan Setiap serpihan primer boleh mempunyai satu atau lebih replika dan data adalah sama dengan serpihan primer.
Sandaran data boleh memastikan ketersediaan tinggi, tetapi satu salinan setiap serpihan akan menggandakan bilangan nod yang diperlukan dan kosnya terlalu tinggi!
Untuk mencari keseimbangan antara ketersediaan tinggi dan kos, kami boleh melakukan ini:
Pertama-tama pecahkan data dan simpan dalam nod yang berbeza
Kemudian sandarkan setiap serpihan dan letakkannya pada nod yang satu lagi untuk melengkapkan sandaran bersama
Ini boleh mengurangkan bilangan nod perkhidmatan yang diperlukan, seperti yang ditunjukkan dalam angka, kami menggunakan 3 serpihan, sebagai contoh, sandarkan satu salinan setiap serpihan:
Bina gugusan ES
Menggunakan kluster es boleh dilakukan terus menggunakan docker-compose, tetapi mesin maya Linux anda dikehendaki mempunyai sekurang-kurangnya 4G ruang memori
Mula-mula tulis fail docker-compose dengan kandungan berikut:
version: '2.2' services: es01: image: elasticsearch:7.12.1 container_name: es01 environment: - node.name=es01 - cluster.name=es-docker-cluster - discovery.seed_hosts=es02,es03 - cluster.initial_master_nodes=es01,es02,es03 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - data01:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - elastic es02: image: elasticsearch:7.12.1 container_name: es02 environment: - node.name=es02 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es03 - cluster.initial_master_nodes=es01,es02,es03 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - data02:/usr/share/elasticsearch/data ports: - 9201:9200 networks: - elastic es03: image: elasticsearch:7.12.1 container_name: es03 environment: - node.name=es03 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es02 - cluster.initial_master_nodes=es01,es02,es03 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" volumes: - data03:/usr/share/elasticsearch/data networks: - elastic ports: - 9202:9200 volumes: data01: driver: local data02: driver: local data03: driver: local networks: elastic: driver: bridge
Pengenalan kandungan fail:
versi: versi complse
es01: nod
imej: cermin
nama_bekas: nama kontena
persekitaran: pembolehubah persekitaran
node.name: nama nod
cluster.name: nama cluster, es secara automatik mencipta gugusan
discovery.seed_hosts: dua lagi Alamat boleh disambungkan menggunakan nama kontena
cluster.initial_master_nodes: nod induk yang dimulakan, yang boleh mengambil bahagian dalam pilihan raya
"ES_JAVA_OPTS=-Xms512m -Xmx512m -Xmx512m ": memori JVM minimum dan maksimum
volum: alamat volum data
port: pemetaan port
Pembelajaran yang disyorkan: "tutorial video docker"
Atas ialah kandungan terperinci Bolehkah es digunakan dengan docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!