GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menyebarkan Elasticsearch di Kubernetes

Pendahuluan

Elasticsearch adalah mesin pencari scalable real-time yang digunakan dalam cluster. Saat dikombinasikan dengan orkestrasi Kubernetes, Elasticsearch mudah dikonfigurasi, dikelola, dan diskalakan.

Menyebarkan cluster Elasticsearch secara default membuat tiga pod. Setiap pod melayani ketiga fungsi:master, data, dan klien. Namun, praktik terbaiknya adalah menerapkan beberapa pod Elasticsearch khusus untuk setiap peran secara manual.

Artikel ini menjelaskan cara menerapkan Elasticsearch di Kubernetes pada tujuh pod secara manual dan menggunakan bagan Helm bawaan.

Prasyarat

  • Kluster Kubernetes (kami menggunakan Minikube).
  • Manajer paket Helm.
  • Alat baris perintah kubectl.
  • Akses ke baris perintah atau terminal.

Cara Men-deploy Elasticsearch di Kubernetes Secara Manual

Praktik terbaik adalah menggunakan tujuh pod di cluster Elasticsearch:

  • Tiga pod master untuk mengelola cluster.
  • Dua pod data untuk menyimpan data dan memproses kueri.
  • Dua pod klien (atau koordinator) untuk mengarahkan lalu lintas.

Menerapkan Elasticsearch di Kubernetes secara manual dengan tujuh pod khusus adalah proses sederhana yang memerlukan pengaturan nilai Helm berdasarkan peran.

Langkah 1:Siapkan Kubernetes

1. Cluster membutuhkan sumber daya yang signifikan. Setel CPU Minikube ke minimal 4 dan memori ke 8192MB:

minikube config set cpus 4
minikube config set memory 8192

2. Buka terminal dan mulai minikube dengan parameter berikut:

minikube start

Instance dimulai dengan memori dan CPU yang dikonfigurasi.

3. Minikube membutuhkan values.yaml file untuk menjalankan Elasticsearch. Unduh file dengan:

curl -O https://raw.githubusercontent.com/elastic/helm-charts/master/elasticsearch/examples/minikube/values.yaml

File tersebut berisi informasi yang digunakan pada langkah berikutnya untuk ketiga konfigurasi pod.

Langkah 2:Atur Nilai berdasarkan Peran Pod

1. Salin konten values.yaml file menggunakan cp perintah ke dalam tiga file konfigurasi pod yang berbeda:

cp values.yaml master.yaml
cp values.yaml data.yaml
cp values.yaml client.yaml

2. Periksa keempat file YAML menggunakan ls perintah:

ls -l *.yaml

3. Buka master.yaml file dengan editor teks dan tambahkan konfigurasi berikut di awal:

# master.yaml
---
clusterName: "elasticsearch"
nodeGroup: "master"
roles:
  master: "true"
  ingest: "false"
  data: "false"
replicas: 3

Konfigurasi menyetel grup simpul ke master di elasticsearch mengelompokkan dan menyetel peran master ke "true" . Selain itu, master.yaml membuat tiga replika node master.

master.yaml lengkapnya terlihat seperti berikut:

# master.yaml
---
clusterName: "elasticsearch"
nodeGroup: "master"
roles:
  master: "true"
  ingest: "false"
  data: "false"
replicas: 3
# Permit co-located instances for solitary minikube virtual machines.
antiAffinity: "soft
# Shrink default JVM heap.
esJavaOpts: "-Xmx128m -Xms128m"
# Allocate smaller chunks of memory per pod.
resources:
  requests:
    cpu: "100m"
    memory: "512M"
  limits:
    cpu: "1000m"
    memory: "512M"
# Request smaller persistent volumes.
volumeClaimTemplate:
  accessModes: [ "ReadWriteOnce" ]
  storageClassName: "standard"
  resources:
    requests:
      storage: 100M

4. Simpan file dan tutup.

5. Buka data.yaml file dan tambahkan informasi berikut di bagian atas untuk mengonfigurasi pod data:

# data.yaml
---
clusterName: "elasticsearch"
nodeGroup: "data"
roles:
  master: "false"
  ingest: "true"
  data: "true"
replicas: 2

Penyiapan membuat dua replika pod data. Setel peran data dan penyerapan ke "true" . Simpan file dan tutup.

6. Buka client.yaml file dan tambahkan informasi konfigurasi berikut di bagian atas:

# client.yaml
---
clusterName: "elasticsearch"
nodeGroup: "client"
roles:
  master: "false"
  ingest: "false"
  data: "false"
replicas: 2
service:
  type: "LoadBalancer"

7. Simpan file dan tutup.

Klien memiliki semua peran yang disetel ke "false" karena klien menangani permintaan layanan. Jenis layanan ditetapkan sebagai "LoadBalancer" untuk menyeimbangkan permintaan layanan secara merata di semua node.

Langkah 3:Terapkan Pod Elasticsearch berdasarkan Peran

1. Tambahkan repositori Helm:

helm repo add elastic https://helm.elastic.co

2. Gunakan helm install perintah tiga kali, sekali untuk setiap file YAML khusus yang dibuat pada langkah sebelumnya:

helm install elasticsearch-multi-master elastic/elasticsearch -f ./master.yaml
helm install elasticsearch-multi-data elastic/elasticsearch -f ./data.yaml
helm install elasticsearch-multi-client elastic/elasticsearch -f ./client.yaml

Output mencetak detail penerapan.

3. Tunggu hingga anggota cluster di-deploy. Gunakan perintah berikut untuk memeriksa kemajuan dan mengonfirmasi penyelesaian:

kubectl get pods

Keluaran menunjukkan SIAP kolom dengan nilai 1/1 setelah penerapan selesai untuk ketujuh pod.

Langkah 4:Uji Koneksi

1. Untuk mengakses Elasticsearch secara lokal, teruskan port 9200 menggunakan kubectl perintah:

kubectl port-forward service/elasticsearch-master

Perintah meneruskan koneksi dan membuatnya tetap terbuka. Biarkan jendela terminal berjalan dan lanjutkan ke langkah berikutnya.

2. Di tab terminal lain, uji koneksi dengan:

curl localhost:9200

Output mencetak informasi penerapan.

Atau, akses localhost:9200 dari browser.

Output menunjukkan detail cluster dalam format JSON, yang menunjukkan bahwa penerapan berhasil.

Cara Men-deploy Elasticsearch dengan Seven Pod Menggunakan Diagram Helm Prebuilt

Bagan Helm bawaan untuk menerapkan Elasticsearch pada tujuh pod khusus tersedia di repositori Bitnami. Menginstal bagan dengan cara ini menghindari pembuatan file konfigurasi secara manual.

Langkah 1:Siapkan Kubernetes

1. Alokasikan setidaknya 4 CPU dan memori 8192MB:

minikube config set cpus 4
minikube config set memory 8192

2. Mulai Minikube:

minikube start

Instance Minikube dimulai dengan konfigurasi yang ditentukan.

Langkah 2:Tambahkan Repositori Bitnami dan Terapkan Bagan Elasticsearch

1. Tambahkan repositori Bitnami Helm dengan:

helm repo add bitnami https://charts.bitnami.com/bitnami

2. Instal grafik dengan menjalankan:

helm install elasticsearch --set master.replicas=3,coordinating.service.type=LoadBalancer bitnami/elasticsearch

Perintah memiliki opsi berikut:

  • Pemasangan elasticsearch dengan nama rilis elasticsearch .
  • master.replicas=3 menambahkan tiga replika Master ke cluster. Kami menyarankan untuk tetap menggunakan tiga node master.
  • coordinating.service.type=LoadBalancer menyetel node klien untuk menyeimbangkan permintaan layanan secara merata di semua node.

3. Pantau penerapan dengan:

kubectl get pods

Tujuh pod menunjukkan 1/1 dalam SIAP kolom saat Elasticsearch diterapkan sepenuhnya.

Langkah 3:Uji Koneksi

1. Teruskan koneksi ke port 9200 :

kubectl port-forward svc/elasticsearch-master 9200

Biarkan koneksi terbuka dan lanjutkan ke langkah berikutnya.

2. Di tab terminal lain, periksa koneksi dengan:

curl localhost:9200

Atau, akses alamat yang sama dari browser untuk melihat informasi penerapan dalam format JSON.


Ubuntu
  1. Bagaimana melakukan Deployment Canary di Kubernetes

  2. Cara Menyebarkan Load Balancing Nginx di Cluster Kubernetes di Ubuntu 18.04 LTS

  3. Cara men-deploy pod pertama Anda di Cluster Kubernetes

  1. Cara Menyebarkan Instance WordPress di Kubernetes

  2. Cara Menyebarkan Cluster Redis di Kubernetes

  3. Cara Menginstal Kubernetes di Ubuntu 18.04

  1. Cara Menginstal Elasticsearch di Ubuntu 18.04

  2. Cara Menyebarkan RabbitMQ di Kubernetes

  3. Cara Menyebarkan PostgreSQL di Kubernetes