如何在Kubernetes上部署Elasticsearch(详细步骤指南)

Kubernetes部署Elasticsearch指南介绍Elasticsearch 是一个部署在集群中的实时可扩展搜索引擎。结合Kubernetes编排,Elasticsearch 易于配置、管理和扩展。
Kubernetes如何部署Elasticsearch?默认情况下部署一个 Elasticsearch 集群会创建三个 pod。每个 pod 都提供所有三个功能:master、data 和 client。但是,最佳实践是为每个角色手动部署多个专用的 Elasticsearch pod。
本文介绍了如何使用预构建的 Helm 图表在 Kubernetes 上的七个 Pod 上手动部署 Elasticsearch。
先决条件

  • 一个 Kubernetes 集群(我们使用了Minikube)。
  • 该头盔包管理器。
  • 该kubectl命令行工具。
  • 访问命令行或终端。
如何在 Kubernetes 上手动部署 Elasticsearch最佳实践是在 Elasticsearch 集群中使用七个 Pod:
  • 用于管理集群的三个主 Pod。
  • 两个数据 Pod,用于存储数据和处理查询。
  • 用于引导流量的两个客户端(或协调)pod。
使用七个专用 pod 在 Kubernetes 上手动部署 Elasticsearch 是一个简单的过程,需要按角色设置Helm 值。
注意:根据需要在需要时快速启动尽可能多的Bare Metal Cloud 服务器实例。使用 BMC,创建易于配置、扩展和管理的 Kubernetes 集群。有多种计费方式可供选择以适应任何预算。
第 1 步:设置 Kubernetes
1. 如何在Kubernetes上部署Elasticsearch?集群需要大量资源。将 Minikube CPU 设置为至少 4 个,并将内存设置为 8192MB:
minikube config set cpus 4 minikube config set memory 8192

2、打开终端,使用以下参数启动minikube:
minikube start

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
实例从配置的内存和 CPU 开始。
3. Kubernetes部署Elasticsearch指南:Minikube 需要一个values.yaml文件来运行 Elasticsearch。下载文件:
curl -O https://raw.githubusercontent.com/elastic/helm-charts/master/elasticsearch/examples/minikube/values.yaml

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
该文件包含所有三个 pod 配置的下一步中使用的信息。
步骤 2:按 Pod 角色设置值
1.Kubernetes如何部署Elasticsearch?使用命令将values.yaml文件的内容复制到三个不同的 pod 配置文件中:cp
cp values.yaml master.yaml cp values.yaml data.yaml cp values.yaml client.yaml

2.使用以下命令检查四个YAML 文件ls
ls -l *.yaml

3  、用文本编辑器打开master.yaml文件,在开头添加如下配置:
# master.yaml --- clusterName: "elasticsearch" nodeGroup: "master" roles: master: "true" ingest: "false" data: "false" replicas: 3

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
配置节点组设置为主中elasticsearch簇,并将主机角色“真”。此外,master.yaml创建了三个主节点副本。
如何在Kubernetes上部署Elasticsearch?完整的master.yaml如下所示:
# 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. 保存文件并关闭。
5、打开data.yaml文件,在顶部添加如下信息,配置数据pods:
# data.yaml --- clusterName: "elasticsearch" nodeGroup: "data" roles: master: "false" ingest: "true" data: "true" replicas: 2

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
该设置创建了两个数据 Pod 副本。将数据和摄取角色都设置为"true"。保存文件并关闭。
6、打开client.yaml文件,在顶部添加如下配置信息:
# client.yaml --- clusterName: "elasticsearch" nodeGroup: "client" roles: master: "false" ingest: "false" data: "false" replicas: 2 service: type: "LoadBalancer"

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
7. 保存文件并关闭。
由于客户端处理服务请求,因此客户端将所有角色设置为“false”  。服务类型被指定为“LoadBalancer”以在所有节点之间均匀地平衡服务请求。
第 3 步:按角色部署 Elasticsearch Pod
1.Kubernetes如何部署Elasticsearch?添加 Helm 存储库:
helm repo add elastic https://helm.elastic.co

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
2. 使用该helm install命令 3 次,对上一步中创建的每个自定义 YAML 文件使用一次:
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

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
输出会打印部署详细信息。
3. 等待集群成员部署。使用以下命令检查进度并确认完成:
kubectl get pods

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
一旦所有七个 Pod 的部署完成,输出就会显示值为1/1的READY列。
步骤 4:测试连接
1. 如何在Kubernetes上部署Elasticsearch?要在本地访问 Elasticsearch,请使用以下命令转发端口9200kubectl
kubectl port-forward service/elasticsearch-master

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
该命令转发连接并使其保持打开状态。保持终端窗口运行并继续下一步。
2. 在另一个终端选项卡中,使用以下命令测试连接:
curl localhost:9200

输出打印部署信息。
如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
或者,从浏览器访问localhost:9200。
如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
输出以JSON格式显示集群详细信息,表示部署成功。
如何使用预构建的 Helm Chart 部署带有七个 Pod 的 ElasticsearchKubernetes部署Elasticsearch指南:Bitnami 存储库中提供了用于在七个专用 pod 上部署 Elasticsearch 的预构建 Helm 图表。以这种方式安装图表可避免手动创建配置文件。
第 1 步:设置 Kubernetes
1. 至少分配 4 个 CPU 和 8192MB 内存:
minikube config set cpus 4 minikube config set memory 8192

2. 启动 Minikube:
minikube start

Minikube 实例以指定的配置启动。
第 2 步:添加 Bitnami 存储库并部署 Elasticsearch Chart
1. Kubernetes如何部署Elasticsearch?添加 Bitnami Helm 存储库:
helm repo add bitnami https://charts.bitnami.com/bitnami

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
2. 通过运行安装图表:
helm install elasticsearch --set master.replicas=3,coordinating.service.type=LoadBalancer bitnami/elasticsearch

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
该命令具有以下选项:
  • Elasticsearch 安装在发行版名称下elasticsearch
  • master.replicas=3向集群添加三个 Master 副本。我们建议坚持使用三个主节点。
  • coordinating.service.type=LoadBalancer  设置客户端节点以在所有节点之间均匀地平衡服务请求。
3. 监控部署:
kubectl get pods

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
如何在Kubernetes上部署Elasticsearch?当 Elasticsearch 完全部署时,七个 Pod在READY列中显示1/1。
步骤 3:测试连接
1. 将连接转发到端口9200:
kubectl port-forward svc/elasticsearch-master 9200

保持连接打开并继续下一步。
2. 在另一个终端选项卡中,检查连接:
curl localhost:9200

如何在Kubernetes上部署Elasticsearch(详细步骤指南)

文章图片
或者,从浏览器访问相同的地址以查看 JSON 格式的部署信息。
Kubernetes部署Elasticsearch指南结论【如何在Kubernetes上部署Elasticsearch(详细步骤指南)】Kubernetes如何部署Elasticsearch?完成本教程后,你应该将 Elasticsearch 部署在七个专用 Pod 上。Pod 的角色可以手动设置,也可以使用预构建的 Helm 图表自动设置。

    推荐阅读