K8s 部署 elasticsearch-7.14.0 集群 及 kibana 客户端

一、K8s 部署 elasticsearch-7.14.0 集群

安装规划

组件replicas类型
es3StatefulSet
kibana1Deployment

使用 k8s 版本为:v1.18.0

本次使用 OpenEBS 来作为存储引擎,OpenEBS 是一个开源的、可扩展的存储平台,它提供了一种简单的方式来创建和管理持久化存储卷。它支持各种存储后端,包括但不限于 ZFSBtrfsXFS 等。同时,OpenEBS 具有高度的可扩展性和可配置性,可以满足不同的存储需求。

安装 OpenEBS

kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml

验证OpenEBS是否正确安装:

kubectl get pods -n openebs

在这里插入图片描述
所有的 OpenEBS pods 都处于Running状态表示正常。

1. 创建命名空间

vi es-ns.yml
apiVersion: v1
kind: Namespace
metadata:name: eslabels:name: es
kubectl apply -f es-ns.yml

查看命名空间:

kubectl get ns

在这里插入图片描述

2. 创建存储卷

使用 OpenEBS 本地存储模式:

vi es-local-storage.yml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: es-local-storageannotations:openebs.io/cas-type: localcas.openebs.io/config: |- name: StorageTypevalue: hostpath- name: BasePathvalue: /data/openebs/es 
provisioner: openebs.io/local
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
kubectl apply -f es-local-storage.yml

查看存储卷:

kubectl get sc

在这里插入图片描述

3. 创建 ConfigMap 配置

主要声明 elasticsearch.yml 配置文件:

vi es-config.yml
apiVersion: v1
kind: ConfigMap
metadata:name: es-confignamespace: eslabels:app: es-config
data:elasticsearch.yml: |+     #集群名称cluster.name: cluster-es#节点名称,每个节点的名称不能重复,这里不指定,使用当前主机的名称# node.name: #ip 地址,每个节点的地址不能重复network.host: 0.0.0.0#是不是有资格主节点node.master: truenode.data: truehttp.port: 9200# head 插件需要这打开这两个配置,解决跨域问题http.cors.allow-origin: "*"http.cors.enabled: truehttp.max_content_length: 200mb#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 mastercluster.initial_master_nodes: ["es-0"]#es7.x 之后新增的配置,节点发现discovery.seed_hosts: ["es-0.es-svc.es.svc.cluster.local:9300","es-1.es-svc.es.svc.cluster.local:9300","es-2.es-svc.es.svc.cluster.local:9300"]gateway.recover_after_nodes: 2network.tcp.keep_alive: truenetwork.tcp.no_delay: truetransport.tcp.compress: true#集群内同时启动的数据任务个数,默认是 2 个cluster.routing.allocation.cluster_concurrent_rebalance: 16#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个cluster.routing.allocation.node_concurrent_recoveries: 16#初始化数据恢复时,并发恢复线程的个数,默认 4 个cluster.routing.allocation.node_initial_primaries_recoveries: 16

注意这里的集群间的访问使用域名:es-X.es-svc.es.svc.cluster.local ,格式为:

(podname).(headless server name).(namespace).svc.cluster.local

所以注意下面创建 Headless Service 服务名字需要为 es-svcStatefulSetPod 的名字需要为 es

kubectl apply -f es-config.yml

查看 ConfigMap:

kubectl get cm -n es

在这里插入图片描述

4. 创建 Service 服务

这里需要创建两个,一个用于集群建访问的 Headless Service ,一个用于外部访问的 NodePort Service :

vi es-svc.yml
# headless service 
apiVersion: v1
kind: Service
metadata:name: es-svcnamespace: eslabels:app: es-svc
spec:clusterIP: Noneports:- name: rest-portport: 9200- name: cluster-portport: 9300selector:app: es---
# NodePort service 
apiVersion: v1
kind: Service
metadata:name: es-svc-nodeportnamespace: eslabels:app: es-svc
spec:clusterIP: ports:- name: rest-portport: 9200nodePort: 31920targetPort: 9200selector:app: estype: NodePorttarget-port:externalTrafficPolicy: Cluster # Local 只有所在node可以访问,Cluster 公平转发
kubectl apply -f es-svc.yml

查看创建的 Service

kubectl get svc -n es

在这里插入图片描述

5. 创建 StatefulSet 应用

vi es-sfe.yml
apiVersion: apps/v1
kind: StatefulSet
metadata:name: esnamespace: es
spec:serviceName: "es-svc"   #填写无头服务的名称replicas: 3selector: matchLabels: app: estemplate:metadata:labels:app: esspec:containers:- name: esimage: elasticsearch:7.14.0ports:- containerPort: 9200name: es-rest-port- containerPort: 9200name: es-cluster-portenv:- name: ES_JAVA_OPTSvalue: "-Xms1g -Xmx1g"volumeMounts:                           - name: es-config     #挂载配置mountPath: /usr/share/elasticsearch/config/elasticsearch.ymlsubPath: elasticsearch.yml- name: es-data       #挂载数据mountPath: /usr/share/elasticsearch/data volumes:- name: es-configconfigMap:                                name: es-configvolumeClaimTemplates:- metadata:name: es-dataspec:accessModes: ["ReadWriteOnce"]storageClassName: es-local-storageresources:requests:storage: 5Gi

这里使用 volumeClaimTemplates 动态创建 pvpvc

kubectl apply -f es-sfe.yml

查看 statefulset :

kubectl get statefulset -n es

在这里插入图片描述

查看 pod:

kubectl get pods -n es

在这里插入图片描述

使用 http 请求验证 es 服务是否正常:

http://ip:31920/_cluster/health?pretty

在这里插入图片描述

从结果上可以看出 ES 启动正常。

二、K8s 部署 kibana 客户端

1. 创建 Service 服务

vi kibana-svc.yml
apiVersion: v1
kind: Service
metadata:name: kibana-svc-nodeportnamespace: eslabels:app: kibana-svc
spec:clusterIP: ports:- name: kibanaport: 5601nodePort: 31561targetPort: 5601selector:app: kibanatype: NodePorttarget-port:externalTrafficPolicy: Cluster # Local 只有所在node可以访问,Cluster 公平转发
kubectl apply -f kibana-svc.yml

2. 创建 Deployment 应用

vi kibana-dm.yml
apiVersion: apps/v1
kind: Deployment
metadata:name: kibananamespace: es
spec:replicas: 1selector: matchLabels: app: kibanatemplate:metadata:labels:app: kibanaspec:containers:- name: kibanaimage: kibana:7.14.0ports:- containerPort: 5601name: ui-portenv:- name: ELASTICSEARCH_HOSTSvalue: http://es-0.es-svc.es.svc.cluster.local:9200
kubectl apply -f kibana-dm.yml

查看 pod :

kubectl get pods -n es

在这里插入图片描述

下面在浏览器访问 kibana 页面:

http://ip:31561/

在这里插入图片描述

三、测试

使用 kibana 创建一个 test_index 索引:

PUT /test_index

在这里插入图片描述

查看 test_index 索引信息:

GET /test_index

在这里插入图片描述

test_index 索引中添加数据:

PUT /test_index/user/1
{"name": "张三","age": 15,"sex": "男"
}

在这里插入图片描述

查询添加的数据:

GET /test_index/user/1

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国内首款千亿参数MoE模型APUS-xDAN-4.0:性能逼近GPT-4,可在4090显卡上运行

前言 随着人工智能技术的快速发展,模型参数的数量已成为衡量其复杂性和处理能力的重要指标。近日,国内科技企业APUS与AI创企新旦智能联合宣布,成功开源了国内首个千亿参数的混合专家模型(MoE),APUS-xDAN-4…

锁策略和死锁问题

锁策略 乐观锁 vs 悲观锁重量级锁 vs 轻量级锁自旋锁 vs 挂起等待锁读写锁 vs 互斥锁公平锁 vs 非公平锁可重入锁 vs 不可重入锁死锁死锁产生的必要条件如何简单的解决死锁问题 小结 这里不是描述的某个特定锁,而是描述的锁的特性,描述的是"一类锁". 乐观锁 vs 悲观…

Java配置环境变量的过程

第一步:先找到你下载java的文件夹。 第二步:点击它进入看到新的文件夹继续点击。 第三步:点击bin文件。 第四步:点进去bin文件之后复制上述文件的地址。 第五步:回到你的电脑位置右键鼠标点击空白位置出现属性点进去 第…

设计模式胡咧咧之策略工厂实现导入导出

策略模式(Strategy Pattern) 定义: 定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。 本质: 分离算法,选择实现 应用场景 何时使用 一个系统有许多类,而区分他们的只是他们直接…

复合机器人在磁钢上下料中的应用及其优势分析

复合机器人是一种集成了移动机器人和工业机器人功能的设备,其独特之处在于拥有“手、脚、眼、脑”的综合能力,从而实现了更高的灵活性和操作效率。在磁钢上下料的应用场景中,复合机器人能够发挥显著的优势。 首先,复合机器人可以根…

Photomator 3.3.5 (macOS Universal) - 照片编辑软件

Photomator 3.3.5 (macOS Universal) - 照片编辑软件 适用于 Mac、iPhone 和 iPad 的终极照片编辑器 请访问原文链接:https://sysin.org/blog/photomator/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Photomat…

计算机网络 -- 网络编程基础

一 学习准备 1.1 IP地址 在 前文中我们提到过: IP 是全球网络的基础,使用 IP 地址来标识公网环境下主机的唯一性,我们可以根据 目的IP地址 进行跨路由器的远端通信。 但是我们也提到了,通过 IP 地址,只能寻找到目标主机&#xff…

视频质量度量VQM算法详细介绍

视频质量评价 视频质量评价(Video Quality Assessment,VQA)是指通过主观、客观的方式对视频图像的内容、画质等,进行感知、衡量与评价。 ITU definations subjective assessment: the determination of the quality or impairment of programme-like pictures presented…

【代码随想录】【动态规划】day48:打家劫舍

打家劫舍1 def rob(self, nums):""":type nums: List[int]:rtype: int"""# 分为两个情况,偷还是不偷,# dp[i]为考虑到第i个房间时的最大值if len(nums) 0: # 如果没有房屋,返回0return 0if len(nums) 1: #…

【 书生·浦语大模型实战营】作业(五):LMDeploy 量化部署

【 书生浦语大模型实战营】作业(五):LMDeploy 量化部署 🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系…

Linux debian gdb dump

1.开发背景 记录 debian 下应用程序崩溃调试方法 2.开发需求 程序越界可以定位到越界的位置附近 3.开发环境 debian 操作系统,如果不支持需要查看是否存在对应的可执行文件 4.实现步骤 4.1 设置 dump 输出大小 ulimit -c unlimited # 设置输出大小 生成core 文…

【QT+OpenCV】车牌号检测 学习记录 遇到的问题

【QTOpenCV】车牌号检测 学习记录 首先在QT里面配置好OpenCV .pro文件中加入: INCLUDEPATH G:/opencv/build/include LIBS -L"G:/opencv/build/x64/vc14/lib"\-lopencv_core \-lopencv_imgproc \-lopencv_highgui \-lopencv_ml \-lopencv_video \-lo.c…

Linux下SPI设备驱动实验:使用内核提供的读写SPI设备中的数据的函数

一. 简介 前面文章的学习,已经实现了 读写SPI设备中数据的功能。文章如下: Linux下SPI设备驱动实验:验证读写SPI设备中数据的函数功能-CSDN博客 本文来使用内核提供的读写SPI设备中的数据的API函数,来实现读写SPI设备中数据。 …

HTML5+JavaScript实现本地视频/音频播放器

HTML5JavaScript实现本地视频/音频播放器 HTML5 提供了本地视频和音频播放器的支持&#xff0c;通过 <video> 和 <audio> 标签&#xff0c;这些标签支持多种媒体格式&#xff0c;并且可以通过 JavaScript 进行控制&#xff0c;实现功能比较完整的本地视频音频播放器…

MySQL 8.0 新特性之 Clone Plugin

个人感觉&#xff0c;主要还是为 Group Replication 服务。在 Group Replication 中&#xff0c;如果要添加一个新的节点&#xff0c;这个节点差异数据的补齐是通过分布式恢复&#xff08; Distributed Recovery &#xff09;来实现的。 在 MySQL 8.0.17 之前&#xff0c;只支…

【数据结构】队列(链表模拟队列)

学习本章节必须具备 单链表的前置知识&#xff0c; 建议提前学习&#xff1a;点击链接学习&#xff1a;单链表各种功能函数 细节 详解 本章节是学习用 单链表模拟队列 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff…

javase基础汇总学习

目录 背景步骤宏观微观理论基础用法面向对象数据类型基础语法&#xff08;关于方法&#xff09;try&#xff08;正常的逻辑代码&#xff09;catch&#xff08;这个和异常有关系&#xff09;finally&#xff08;经典面试题&#xff09; 高阶使用序列化泛型注解反射 总结 背景 后…

大型网站系统架构演化实例_3.使用服务集群改善网站并发处理能力

1.使用服务集群改善网站并发处理能力 使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时&#xff0c;不要企图去更换更强大的服务器&#xff0c;对大型网站而言&#xff0c;不管多么强大的服务器&#xff0c;对大型网站而言&…

Jenkins 的构建时执行时间问题

我们希望我的项目能够在特定的时间自动执行&#xff0c;我们需要设定一个定时任务。 Jenkins 的定时任务是通过 Cron 任务来实现的&#xff0c;但是由有点不一样。 H/2 * * * * 比如说上面的设置就是每 2 分钟执行一次。 希望每分钟执行一次 Jenkins 的每分钟执行一次的设置…

【AI工具之Prezo如何自动生成PPT操作步骤】

先说优缺点&#xff1a; 最大的优点就是免费&#xff08;但说实话功能和体验方面很弱&#xff09;支持中文提问&#xff08;最好用英文&#xff09;&#xff0c;智能生成图文&#xff08;但是只能生成英文内容&#xff09;可以AI生成图片&#xff0c;图片很精美酷炫&#xff0…