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: es
  labels:
    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-storage
  annotations:
    openebs.io/cas-type: local
    cas.openebs.io/config: |
      - name: StorageType
        value: hostpath
      - name: BasePath
        value: /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-config
  namespace: es
  labels:
    app: es-config
data:
  elasticsearch.yml: |+     
    #集群名称
    cluster.name: cluster-es
    #节点名称,每个节点的名称不能重复,这里不指定,使用当前主机的名称
    # node.name: 
    #ip 地址,每个节点的地址不能重复
    network.host: 0.0.0.0
    #是不是有资格主节点
    node.master: true
    node.data: true
    http.port: 9200
    # head 插件需要这打开这两个配置,解决跨域问题
    http.cors.allow-origin: "*"
    http.cors.enabled: true
    http.max_content_length: 200mb
    #es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
    cluster.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: 2
    network.tcp.keep_alive: true
    network.tcp.no_delay: true
    transport.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-svc
  namespace: es
  labels:
    app: es-svc
spec:
  clusterIP: None
  ports:
  - name: rest-port
    port: 9200
  - name: cluster-port
    port: 9300
  selector:
    app: es

---
# NodePort service 
apiVersion: v1
kind: Service
metadata:
  name: es-svc-nodeport
  namespace: es
  labels:
    app: es-svc
spec:
  clusterIP: 
  ports:
  - name: rest-port
    port: 9200
    nodePort: 31920
    targetPort: 9200
  selector:
    app: es
  type: NodePort
  target-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: es
  namespace: es
spec:
  serviceName: "es-svc"   #填写无头服务的名称
  replicas: 3
  selector: 
    matchLabels: 
      app: es
  template:
    metadata:
      labels:
        app: es
    spec:
      containers:
      - name: es
        image: elasticsearch:7.14.0
        ports:
        - containerPort: 9200
          name: es-rest-port
        - containerPort: 9200
          name: es-cluster-port
        env:
        - name: ES_JAVA_OPTS
          value: "-Xms1g -Xmx1g"
        volumeMounts:                           
          - name: es-config     #挂载配置
            mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
            subPath: elasticsearch.yml
          - name: es-data       #挂载数据
            mountPath: /usr/share/elasticsearch/data 
      volumes:
      - name: es-config
        configMap:                                
          name: es-config
  volumeClaimTemplates:
    - metadata:
        name: es-data
      spec:
        accessModes: ["ReadWriteOnce"]
        storageClassName: es-local-storage
        resources:
          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-nodeport
  namespace: es
  labels:
    app: kibana-svc
spec:
  clusterIP: 
  ports:
  - name: kibana
    port: 5601
    nodePort: 31561
    targetPort: 5601
  selector:
    app: kibana
  type: NodePort
  target-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: kibana
  namespace: es
spec:
  replicas: 1
  selector: 
    matchLabels: 
      app: kibana
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
      - name: kibana
        image: kibana:7.14.0
        ports:
        - containerPort: 5601
          name: ui-port
        env:
        - name: ELASTICSEARCH_HOSTS
          value: 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.mfbz.cn/a/556209.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HQL,SQL刷题,尚硅谷(中级)

目录 相关表结构: 1、order_info表 2、order_detail表 题目及思路解析: 第一题,查询各品类销售商品的种类数及销量最高的商品 第二题 查询用户的累计消费金额及VIP等级 第三题 查询首次下单后第二天连续下单的用户比率 总结归纳&#xff1a…

2024.4.18

学生管理部分 #include<myhead.h> int main(int argc, char *argv[]) {sqlite3* ppDbNULL;if(sqlite3_open("./mydb.db",&ppDb)!SQLITE_OK){printf("sqlite3_open error:%s\n",sqlite3_errmsg(ppDb));return -1;}//创建数据表char arg[128]&quo…

SQL Serve---嵌套查询

定义 嵌套查询&#xff1a;主要用于复杂的查询中。在SQL语言中&#xff0c;一个Select From Where语句称为一个查询块&#xff0c;将一个查询块嵌套在另一个查询的Where子句或Having短语中的查询称为嵌套查询。 子查询的类型 使用别名的子查询 使用IN和NOT IN的子查询 使用比较…

4.15报错记录

打开文件时出错a bytes-like object is required,notNoneType 确保E:/data/stdata/st- images-1208-json|ST-WT-1.json是一个有效的标签文件。 今天用X-anylabling更改标签目录时出现这个报错 解决方案&#xff1a;图片文件夹中创建同名的一个文件夹把json文件放进去就可以打…

Ubuntu 微调训练ChatGLM3大语言模型

Ubuntu 微调训练ChatGLM3大语言模型 LLaMA Factory 的 LoRA 微调提供了 3.7 倍的加速比&#xff0c;同时在广告文案生成任务上取得了更高的 Rouge 分数。结合 4 比特量化技术&#xff0c;LLaMA Factory 的 QLoRA 微调进一步降低了 GPU 显存消耗。 https://github.com/hiyouga…

六边形酷科技特效单页源码

源码介绍 基于canvas画布绘制多个六边形追踪鼠标&#xff0c;科技感的几何图形酷炫动画特效&#xff0c; 单页html源码&#xff0c;可以做网站动态背景&#xff0c;喜欢的朋友可以拿去 效果截图 完整源码 <!doctype html> <html> <head> <meta charset…

OpenHarmony UI开发-ohos-svg

简介 ohos-svg是一个SVG图片的解析器和渲染器&#xff0c;解析SVG图片并渲染到页面上。它支持大部分 SVG 1.1 规范&#xff0c;包括基本形状、路径、文本、样式和渐变,它能够渲染大多数标准的 SVG 图像。ohos-svg的优点是性能好、内存占用低。 效果展示 SVG图片解析并绘制: …

C++ | Leetcode C++题解之第35题搜索插入位置

题目&#xff1a; 题解&#xff1a; class Solution { public:int searchInsert(vector<int>& nums, int target) {int n nums.size();int left 0, right n - 1, ans n;while (left < right) {int mid ((right - left) >> 1) left;if (target < n…

单页面首屏优化,打包后大小减少64M,加载速度快了13.6秒

需求背景 从第三方采购的vue2 ElementUI实现的云管平台&#xff0c;乙方说2011年左右就开始有这个项目了&#xff08;那时候有Vue了吗&#xff0c;思考.jpg&#xff09;。十几年的项目&#xff0c;我何德何能可以担此责任。里面的代码经过多人多年迭代可以用惨不忍睹来形容&a…

面试题:Java中int符号数字的位运算与操作 + 原码、反码、补码之间如何进行转换

题目来源 阿里-淘天-技术1面 问题 -1和4做位运算与操作&#xff0c;结果是多少&#xff1f; 答案 正确答案 4 通过Java代码验证如下&#xff1a; 我的回答 -5&#xff0c;但是-5是错误的答案。 面试的时候&#xff0c;面试官没有告诉我对错。 为什么&#xff1f; 到底…

[生活][杂项] 上班党的注意事项

前言 目前是上班已经接近两年了&#xff0c;目前的状态是&#xff0c;一个人租了一个单间在上班。对于这种情况有以下几点需要注意。 钥匙问题&#xff0c;一定不要陷入钥匙丢失的情况&#xff01;一定不要陷入钥匙丢失的情况&#xff01;一定不要陷入钥匙丢失的情况&#xff…

CSS:filter(滤镜)属性

用途 可以用于img标签&#xff0c;div标签等 图像&#xff0c;背景&#xff0c;边框的调整 常用属性 1. 灰度 grayscale()&#xff0c;默认是0&#xff0c;100%就是黑白 2. blux 给图像设置高斯模糊的程度&#xff0c;radius值设定高斯模糊的程序&#xff0c;表示像素点…

2024年Q1季度冰箱行业线上市场销售数据分析

Q1季度冰箱线上市场表现不如预期。 根据鲸参谋数据显示&#xff0c;2024年1月至3月线上电商平台&#xff08;京东天猫淘宝&#xff09;冰箱累计销量约410万件&#xff0c;环比下降11%&#xff0c;同比下降21%&#xff1b;累计销售额约98亿元&#xff0c;环比下降31%&#xff0…

python爬虫(Selenium案列)第二十四

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

详细分析Python的继承和多态(附Demo)

目录 前言1. 继承2. 多态 前言 入行多年&#xff0c;对于知识点还会混淆&#xff0c;此处主要做一个详细区分 继承&#xff08;Inheritance&#xff09;: 面向对象编程中的一个重要概念&#xff0c;允许一个类&#xff08;称为子类或派生类&#xff09;继承另一个类&#xff…

工作流JBPM操作API启动实例查询任务

文章目录 8.5 启动实例8.5.1 按照key启动(不加参数)8.5.2 按照key启动(加入参数)8.5.3 启动流程实例的说明 8.6 查询任务8.6.1 查询所有未办理任务8.6.2 查询个人未办理任务8.6.3 查询个人的待办组任务 8.5 启动实例 8.5.1 按照key启动(不加参数) Test // 启动 -- 简单的启…

2024华中杯B题完整思路代码论文解析

2024华中杯B题思路论文汇总 https://www.yuque.com/u42168770/qv6z0d/xpkf6ax8udqq9lt2?singleDoc# 本文针对电子地图服务商利用车辆轨迹数据估计城市路口信号灯周期的问题,提出了一系列数学模型和算法。通过分析车辆行驶轨迹与信号灯的关联性,在不同的约束条件下,实现了对路…

谷歌量化白皮书—PTQ原理

本篇笔记摘抄的原文链接 量化方法 量化粒度 量化模拟 激活层的量化 量化硬件原理 量化范围的设置方法 基于BN的激活层量化范围设置 普通卷积 VS 深度可分离卷积 跨层均衡化 ReLU6比ReLU有什么优势 吸收高偏差、偏差校正、自适应取整 标准PTQ流程 量化模型精度的诊断和性能…

综合大实验

题目&#xff1a; 1、R4为ISP&#xff0c;其上只配置IP地址&#xff1b;R4与其他所直连设备间均使用公有IP&#xff1b; 2、R3-R5、R6、R7为MGRE环境&#xff0c;R3为中心站点&#xff1b; 3、整个OSPF环境IP基于172.16.0.0/16划分&#xff1b;除了R12有两个环回&#xff0c;其…

LeetCode in Python 1338. Reduce Array Size to The Half (数组大小减半)

数组大小减半思路简单&#xff0c;主要是熟悉python中collections.Counter的用法&#xff0c;采用贪心策略即可。 示例&#xff1a; 图1 数组大小减半输入输出示例 代码&#xff1a; class Solution:def minSetSize(self, arr):count Counter(arr)n, ans 0, 0for i, valu…
最新文章