k8s部署elastic+kibana

news2025/1/20 2:00:20

1.软件版本说明

1.1软件版本说明

软件版本
kubernetes1.23.17
elasticsearch7.17.3
kibana7.17.3

1.2硬件环境说明

宿主机使用windows10安装vmware17.5.0,虚拟机安装linux系统(centos7.9)

说明:
elasticserch和kibana的版本尽量保持一致,避免由于版本不一致出现问题。

2.elastic部署

2.1使用xshell连接到虚拟机(已搭建好k8s基础环境)进入到root目录
在这里插入图片描述
2.2部署准备
创建elastic挂载目录并授权

mkdir -p /es/esData/{config,data,plugins,logs}

设置elastic任意ip都可访问,生产环境建议使用具体ip

echo "http.host: 0.0.0.0" >> /es/esData/config/elasticsearch.yml

挂在目录授权

chmod -R 777  /es/esData

2.3创建es-deployment.yaml
vim es-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: elasticsearch
  name: elasticsearch
 # namespace: sg-bs
spec:
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      nodeSelector:
        kubernetes.io/hostname: k8s-master01
      containers:
        - image: elasticsearch:7.17.3
          imagePullPolicy: IfNotPresent
          name: elasticsearch
          ports:
            - containerPort: 9200
              name: elasticsearch
              protocol: TCP
          env:
            - name: ES_JAVA_OPTS
              value: "-Xms128m -Xmx256m"
            - name: discovery.type
              value: "single-node"
            #- name: network.host
             # value: "0.0.0.0"
          volumeMounts:
            - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
              name: config
            - mountPath: /usr/share/elasticsearch/data
              name: data
            - mountPath: /usr/share/elasticsearch/plugins
              name: plugins
            - mountPath: /usr/share/elasticsearch/logs
              name: logs
      volumes:
        - hostPath:
            path: /es/esData/config/elasticsearch.yml
            type: FileOrCreate
          name: config
        - hostPath:
            path: /es/esData/data
            type: DirectoryOrCreate
          name: data
        - hostPath:
            path: /es/esData/plugins
            type: DirectoryOrCreate
          name: plugins
        - hostPath:
            path: /es/esData/logs
            type: DirectoryOrCreate
          name: logs

2.4执行部署

kubectl apply -f es-deployment.yaml

执行完成上面部署命令后,等3-5分钟查看部署情况

kubectl get po

在这里插入图片描述
如果elastic的STATUS变为Running,说明容器启动成功,此时可以通过如下命令查询运行pod的ip

kubectl get po -owide

在这里插入图片描述
通过ip和端口查看服务是否能够正常启动

curl 172.25.244.240:9200  #ip修改为自己查询到的es服务ip

在这里插入图片描述
出现如上图所示内容说明服务启动完成并且可以正常访问

说明:kubectl get po

kubectl get po 用于查看默认命名空间下的pod的运行情况
kubectl get ns 查看k8s所有存在的命名空间
kubectl get po -n 命名空间名称 查看指定命名空间下的pod运行情况

特殊说明:pod启动或者运行异常问题排查步骤

1.使用kubectl describe查看异常情况
kubectl describe pod pod名称 -n 命名空间
2.通过运行日志查看
kubectl logs pod名称  -n 命名空间

2.5elastic服务暴露,允许外部网络访问
创建es-service.yaml
vim es-service.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: elasticsearch
  name: elasticsearch
 # namespace: sg-bs
spec:
  type: NodePort
  ports:
  - name: elasticsearch
    port: 9200
    nodePort: 32000
    protocol: TCP
    targetPort: elasticsearch
  selector:
    app: elasticsearch

部署service

kubectl apply -f es-service.yaml

查看service

kubectl get svc

在这里插入图片描述
访问
浏览器输入虚拟机ip:32000访问
在这里插入图片描述
至此 es服务部署完成

3.kibana部署

3.1配置文件准备

在/es/esData/config 目录下创建 kibana.yaml文件
vim kibana.yaml

server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://192.168.2.111:32000" ] # 配置elastic访问路径
elasticsearch.username: "elastic" # es用户名
elasticsearch.password: "elastic" # es密码
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN" # 可是化界面中文

3.2 部署kibana

创建kibana-deploy.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: kibana
  name: kibana
 # namespace: sg-bs
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kibana
  template:
    metadata:
      labels:
        app: kibana
    spec:
      nodeSelector:
        kubernetes.io/hostname: k8s-master01
      containers:
        - image: kibana:7.17.3
          imagePullPolicy: IfNotPresent
          name: kibana
          ports:
            - containerPort: 5601
              name: kibana
              protocol: TCP
          volumeMounts:
            - mountPath: /usr/share/kibana/config/kibana.yml
              name: config
      volumes:
        - hostPath:
            path: /es/esData/config/kibana.yml
            type: FileOrCreate
          name: config

部署

kubectl apply -f kibana-deploy.yml

等待3-5分钟查看pod运行情况
在这里插入图片描述

3.3暴露kibana服务

vim kibana-service.yaml

apiVersion: v1
kind: Service
metadata:
  labels:
    app: kibana
  name: kibana
 # namespace: sg-bs
spec:
  type: NodePort
  ports:
  - name: kibana
    port: 5601
    nodePort: 31921
    protocol: TCP
    targetPort: kibana
  selector:
    app: kibana

部署service

kubectl apply -f kibana-service.yaml

访问
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

邦火策划的餐饮品牌策划,到底是不是打破常规的创新之选?

在餐饮业的浩瀚市场中,邦火策划以其独特的餐饮品牌策划服务,引起了业界的关注。邦火策划是否真的是打破常规的创新之选?让我们深入了解,探寻其中的奥秘。 首先,邦火策划在餐饮品牌策划中的创新之处在于对市场的深度洞…

【IDEA】try-catch自动生成中修改catch的内容

编辑器 --> 文件和代码模板 --> 代码 --> Catch Statement Body

又老性能又差,为什么好多公司依然选择 RabbitMQ?

大家好,我是君哥。 RabbitMQ 这个消息队列相信很多程序员都用过,我第一次使用是在 2016 年,确实是一个老牌的消息队列了,但是为什么一直没有被淘汰呢?今天来聊一聊这个话题。 老旧差 发布历史 为什么说 RabbitMQ 老…

drools入门案例

1 业务场景说明 业务场景:消费者在图书商城购买图书,下单后需要在支付页面显示订单优惠后的价格。具体优惠规则如下: 规则编号 规则名称 描述 1 规则一 所购图书总价在100元以下的没有优惠 2 规则二 所购图书总价在100到200元的优惠2…

AtomHub 开源容器镜像中心开放公测,国内服务稳定下载

由开放原子开源基金会主导,华为、浪潮、DaoCloud、谐云、青云、飓风引擎以及 OpenSDV 开源联盟、openEuler 社区、OpenCloudOS 社区等成员单位共同发起建设的 AtomHub 可信镜像中心正式开放公测。AtomHub 秉承共建、共治、共享的理念,旨在为开源组织和开…

Linux常用基本命令(三)

一、显示命令 1. cat 通式:cat 选项 文件名 只能看普通的文本文件 缺点:如果内容过多会显示不全 选项效果-n显示行号包括空行-b跳过空白行编号-s讲所有的连续的多个空行替换为一个空行(压缩成一个空行)-A显示隐藏字符 三个标准文件…

SpringBoot的配置高级

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

前端基础location的使用

概念 获取当前页面的地址信息,还可以修改某些属性,实现页面跳转和刷新等。 样例展示 window.location 含义.originURL 基础地址,包括协议名、域名和端口号.protocol协议 (http: 或 https:).host域名端口号.hostname域名.port端口号.pathname路…

原型链污染[JavaScript]

一、原型链污染 此类型一般存在以nodejs编写的后端程序当中,其中Express是一个流行的Node.js Web应用程序框架 1.JavaScript 1.1 原理 引入 解释:直接先读代码来理解原型链污染 // let jack {b:2} console.log(typeof jack) // 它的类型是obejct con…

C++结合OpenCV:掌握图像基础与处理

本文详细介绍了使用 OpenCV4 进行图像处理的基础知识和操作。内容包括图像的基础概念、色彩空间理解、以及如何在 C 中进行图像读取、显示和基础操作。 1.图像的基本概念与术语 图像表示 在计算机视觉中,图像通常表示为一个二维或三维的数组。二维数组表示灰度图像&…

Linux 磁盘空间占满故障解决方法

故障排查: 使用命令查看磁盘使用量 # 使用人类可读的格式(预设值是不加这个选项的...) df -h # --inodes 列出 inode 资讯,不列出已使用 block df -i # 查看当前目录下各个文件及目录占用空间大小 du -sh / 情况一:一般磁盘空间满了&a…

redis常见数据类型

目录 1.基本全局命令 2.数据结构和内部编码 3.单线程架构 1.基本全局命令 Redis有5种数据结构,但它们都是键值对种的值,对于键来说有一些通用的命令。 KEYS 返回所有满足样式(pattern) 的key。支持如下统配样式。 h?llo 匹配 hello, hallo和hxllo h*llo匹配h…

C++内存管理和模板初阶

C/C内存分布 请看代码: int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)mallo…

1982-2022年的GIMMIS-NDVI数据

GIMMIS-NDVI简单介绍 NDVI 基于先进高分辨率辐射计 (AVHRR) 数据的校正和校准测量,空间分辨率为 0.0833 度,覆盖 1982 年至 2022 年的全球范围。最大 NDVI 值在每月两次合成周期内报告(每月两个值)。该数据集由不同的 AVHRR 传…

SpringIOC之SimpleTimeZoneAwareLocaleContext

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

宽带阻抗匹配的工程实现-第一步,端口驻波仿真

概要 ADS仿真,Matlab仿真,宽带阻抗匹配,smith圆图。 其实阻抗匹配我工作以来经常说,也经常做,但是基本上都是直接在印制板上进行调试。现在想先用仿真软件直接设计出来,才发现很多东西嘴上说容易&#xf…

【RabbitMQ】RabbitMQ详解(一)

RabbitMQ详解 RabbitMQ介绍四大核心概念RabbitMQ 入门案例Hello RabbitMQ生产者消费者 Work Queues轮询消费 RabbitMQ消息应答与发布自动应答手动应答的方法肯定确认应答否定确认应答拒绝处理该消息恢复到消息队列Multiple的解释消息重新入队手动应答案例 RabbitMQ持久化队列持…

绝对干货-讲讲设计模式之结构型设计模式

经典的23种设计模式种属于结构型设计模式的是装饰模式,适配器模式,代理模式,组合模式,桥接模式,外观模式,享元模式。 如果说创建型设计模式解决的是创建对象的问题,那么结构型模式就是通过类和…

二叉搜索树 --- C++实现

目录 1.二叉搜索树的概念 2.二叉搜索树的操作 3. 二叉树的实现 4.二叉搜索树的应用 5. 二叉树的性能分析 6. 二叉树进阶练习题 1.二叉搜索树的概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左…

双非本科求职_面试经验_上集

前言 后知后觉开始找实习,也马上进入秋招,写此文一方面是记录一下我的面试经历作为复盘,另一方面也给同样在广州,双非二本的同志一个参考(快来看菜鸟),从而获得一定的动力和自信,毕…