一、Kubernetes簡介
Kubernetes(K8s)是一個開源的容器編排框架,提供自動部署、升級、容錯、負載均衡和擴展等功能。它能夠自動化管理容器部署、提供容器編排管理、自動化容器部署等一系列容器相關的操作,為開發人員提供高效的部署和管理工具。
二、Elasticsearch簡介
Elasticsearch是一個基於Lucene的分佈式搜索引擎,提供全文檢索、結構化查詢、分析等功能。它能夠處理海量數據,實現快速的搜索和查詢,目前廣泛應用於日誌分析、搜索引擎、數據挖掘、實時數據分析等領域。
三、在Kubernetes上部署Elasticsearch
在Kubernetes上部署Elasticsearch可以實現高可用、可靠的集群管理,下面介紹基於Kubernetes的Elasticsearch部署步驟:
1.安裝minikube
Minikube是一個輕量級的Kubernetes實現,它可以在本地機器上模擬Kubernetes集群環境。在開始部署Elasticsearch之前,請先安裝好Minikube。
brew install minikube
2.創建Elasticsearch鏡像
在部署Elasticsearch之前,需要先創建Elasticsearch的Docker鏡像,並上傳到Docker Hub上。在本地機器上安裝好Docker後,使用以下命令構建Elasticsearch鏡像:
docker build -t elasticsearch:7.10.0 .
其中,7.10.0是Elasticsearch的版本號。構建完成後,使用以下命令將鏡像上傳到Docker Hub上:
docker push yourname/elasticsearch:7.10.0
其中,yourname是您的Docker Hub賬戶名。
3.創建Kubernetes部署文件
創建elasticsearch.yaml文件,並填寫以下內容:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
spec:
serviceName: elasticsearch
replicas: 3
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: yourname/elasticsearch:7.10.0
ports:
- containerPort: 9200
- containerPort: 9300
volumeMounts:
- name: elasticsearch-data
mountPath: /usr/share/elasticsearch/data
env:
- name: discovery.seed_hosts
value: "elasticsearch-0.elasticsearch,elasticsearch-1.elasticsearch,elasticsearch-2.elasticsearch"
- name: cluster.initial_master_nodes
value: "elasticsearch-0,elasticsearch-1,elasticsearch-2"
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
annotations:
volume.beta.kubernetes.io/storage-class: "standard"
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 10Gi
其中,replicas表示副本數量,selector中的app:elasticsearch表示選擇所有的elasticsearch Pods,env中設置了Elasticsearch集群的初始節點,volumeClaimTemplates用於保存數據。
四、使用Elasticsearch Kibana進行數據查詢
可以使用Elasticsearch官方提供的Kibana進行數據查詢和可視化。在Kubernetes上部署Kibana的步驟如下:
1.創建Kibana部署文件
創建kibana.yaml文件,並填寫以下內容:
apiVersion: apps/v1
kind: Deployment
metadata:
name: kibana
spec:
replicas: 1
selector:
matchLabels:
app: kibana
template:
metadata:
labels:
app: kibana
spec:
containers:
- name: kibana
image: docker.elastic.co/kibana/kibana-oss:7.10.0
env:
- name: ELASTICSEARCH_URL
value: http://elasticsearch:9200
ports:
- containerPort: 5601
其中,ELASTICSEARCH_URL為Elasticsearch集群的URL地址。
2.創建Kibana服務
創建kibana-service.yaml文件,並填寫以下內容:
apiVersion: v1
kind: Service
metadata:
name: kibana
spec:
selector:
app: kibana
ports:
- name: kibana
port: 5601
targetPort: 5601
3.訪問Kibana
部署完成後,可以使用瀏覽器訪問Kibana的UI界面,輸入http://localhost:5601訪問。
到此,Elasticsearch在Kubernetes上的部署與使用指南就介紹完了。通過Kubernetes的自動化管理,可以方便地進行集群管理和多節點部署,實現高可用和可靠性的數據查詢和分析。
原創文章,作者:NLBQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/138101.html