其实一般es要跑3个节点的,这样才能做高可用,处理并发大,但是我这里只是一个pod

mkdir -p /stroe/data/es

es搭建:
#【拉取镜像】
#docker pull elasticsearch:6.8.7
#docker pull busybox:1.28
【导入镜像】
docker load -i es.tar
【创建命名空间】
kubectl create ns middle-ware
【创建es的资源】

vim test-es.yaml

---
# ConfigMap for Elasticsearch configuration
apiVersion: v1
kind: ConfigMap
metadata:name: es-confignamespace: middle-ware
data:elasticsearch.yml: |cluster.name: my-es-clusternode.name: ${HOSTNAME}network.host: 0.0.0.0discovery.type: single-nodepath.data: /usr/share/elasticsearch/datapath.logs: /usr/share/elasticsearch/logsbootstrap.memory_lock: falsehttp.port: 9200transport.port: 9300jvm.options: |-Xms512m-Xmx512m-XX:+UseG1GC-XX:G1HeapRegionSize=4m-XX:MaxGCPauseMillis=50-XX:+PrintGCDetails-XX:+HeapDumpOnOutOfMemoryError-Xlog:gc*:file=/usr/share/elasticsearch/logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m---
# PersistentVolume (使用 hostPath 本地存储)
apiVersion: v1
kind: PersistentVolume
metadata:name: es-pv
spec:capacity:storage: 1GivolumeMode: FilesystemaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: manualhostPath:path: /data/elasticsearchtype: DirectoryOrCreate---
# PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: es-pvcnamespace: middle-ware
spec:storageClassName: manualaccessModes:- ReadWriteOnceresources:requests:storage: 1Gi---
# StatefulSet
apiVersion: apps/v1
kind: StatefulSet
metadata:name: elasticsearchnamespace: middle-ware
spec:serviceName: elasticsearchreplicas: 1selector:matchLabels:app: elasticsearchtemplate:metadata:labels:app: elasticsearchspec:tolerations:  #放在主节点上,需要配置污点容忍- key: "node-role.kubernetes.io/control-plane"operator: "Exists"effect: "NoSchedule"initContainers:- name: volume-permissionsimage: busybox:1.28command: ["sh", "-c", "chown -R 1000:0 /usr/share/elasticsearch/data /usr/share/elasticsearch/logs"]volumeMounts:- name: es-storagemountPath: /usr/share/elasticsearch/datasubPath: data- name: es-storagemountPath: /usr/share/elasticsearch/logssubPath: logscontainers:- name: elasticsearchimage: elasticsearch:6.8.7imagePullPolicy: IfNotPresentenv:- name: ES_JAVA_OPTSvalue: "-Xms512m -Xmx512m"- name: discovery.typevalue: single-node- name: TAKE_FILE_OWNERSHIPvalue: "true"ports:- containerPort: 9200name: http- containerPort: 9300name: transportvolumeMounts:- name: es-configmountPath: /usr/share/elasticsearch/config/elasticsearch.ymlsubPath: elasticsearch.yml- name: es-configmountPath: /usr/share/elasticsearch/config/jvm.optionssubPath: jvm.options- name: es-storagemountPath: /usr/share/elasticsearch/datasubPath: data- name: es-storagemountPath: /usr/share/elasticsearch/logssubPath: logs- name: es-storagemountPath: /usr/share/elasticsearch/pluginssubPath: pluginsvolumes:- name: es-configconfigMap:name: es-configdefaultMode: 0644- name: es-storagepersistentVolumeClaim:claimName: es-pvc---
# Service
apiVersion: v1
kind: Service
metadata:name: elasticsearchnamespace: middle-ware
spec:selector:app: elasticsearchports:- port: 9200name: httptargetPort: 9200- port: 9300name: transporttargetPort: 9300type: NodePort


vim es.yml   【这个是无https的,先跑起来生成证书放到宿主机】

 

---
# ConfigMap for Elasticsearch configuration
apiVersion: v1
kind: ConfigMap
metadata:name: es-confignamespace: middle-ware-rp
data:elasticsearch.yml: |cluster.name: my-es-clusternode.name: ${HOSTNAME}network.host: 0.0.0.0discovery.type: single-nodepath.data: /usr/share/elasticsearch/datapath.logs: /usr/share/elasticsearch/logsbootstrap.memory_lock: falsehttp.port: 9200transport.port: 9300xpack.security.enabled: truexpack.security.transport.ssl.enabled: truexpack.security.http.ssl.enabled: false  # 先禁用 HTTP SSL 简化配置jvm.options: |-Xms1G-Xmx2G-XX:+UseG1GC-XX:G1HeapRegionSize=4m-XX:MaxGCPauseMillis=50-XX:+PrintGCDetails-XX:+HeapDumpOnOutOfMemoryError-Xlog:gc*:file=/usr/share/elasticsearch/logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m---
# PersistentVolume (使用 hostPath 本地存储)
apiVersion: v1
kind: PersistentVolume
metadata:name: es-pv
spec:capacity:storage: 5GivolumeMode: FilesystemaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: manualhostPath:path: /store/data/estype: DirectoryOrCreate---
# PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: es-pvcnamespace: middle-ware-rp
spec:storageClassName: manualaccessModes:- ReadWriteOnceresources:requests:storage: 5Gi---
# StatefulSet
apiVersion: apps/v1
kind: StatefulSet
metadata:name: elasticsearchnamespace: middle-ware-rp
spec:serviceName: elasticsearchreplicas: 1selector:matchLabels:app: elasticsearchtemplate:metadata:labels:app: elasticsearchspec:tolerations:  #放在主节点上,需要配置污点容忍- key: "node-role.kubernetes.io/control-plane"operator: "Exists"effect: "NoSchedule"nodeName: node2initContainers:- name: volume-permissionsimage: busybox:1.28command: ["sh", "-c", "chown -R 1000:0 /usr/share/elasticsearch/data /usr/share/elasticsearch/logs"]volumeMounts:- name: es-storagemountPath: /usr/share/elasticsearch/datasubPath: data- name: es-storagemountPath: /usr/share/elasticsearch/logssubPath: logscontainers:- name: elasticsearchimage: elasticsearch:6.8.7imagePullPolicy: IfNotPresentenv:- name: ES_JAVA_OPTSvalue: "-Xms1G -Xmx2G"- name: discovery.typevalue: single-node- name: TAKE_FILE_OWNERSHIPvalue: "true"ports:- containerPort: 9200name: http- containerPort: 9300name: transportvolumeMounts:- name: es-configmountPath: /usr/share/elasticsearch/config/elasticsearch.ymlsubPath: elasticsearch.yml- name: es-configmountPath: /usr/share/elasticsearch/config/jvm.optionssubPath: jvm.options- name: es-storagemountPath: /usr/share/elasticsearch/datasubPath: data- name: es-storagemountPath: /usr/share/elasticsearch/logssubPath: logs- name: es-storagemountPath: /usr/share/elasticsearch/pluginssubPath: pluginsvolumes:- name: es-configconfigMap:name: es-configdefaultMode: 0644- name: es-storagepersistentVolumeClaim:claimName: es-pvc---
# Service
apiVersion: v1
kind: Service
metadata:name: elasticsearchnamespace: middle-ware-rp
spec:selector:app: elasticsearchports:- port: 9200name: httptargetPort: 9200nodePort: 30001- port: 9300name: transporttargetPort: 9300nodePort: 30002type: NodePort

=====================【es1.yaml+https的url优化】==============================
证书生成的方式:
kubectl exec -it elasticsearch-0 -n middle-ware -- /bin/bash
 ./bin/elasticsearch-certutil ca #回车回车生成证书
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12  #回车回车生成证书

#!!拷贝到宿主机!!,这个ca证书就是开启es的https用来连接

证书认证:首先让你的es跑起来,然后在配置中应用es1.yaml优化配置文件elasticsearch.yml: |cluster.name: my-es-clusternode.name: ${HOSTNAME}network.host: 0.0.0.0discovery.type: single-nodepath.data: /usr/share/elasticsearch/datapath.logs: /usr/share/elasticsearch/logsbootstrap.memory_lock: falsehttp.port: 9200transport.port: 9300xpack.security.enabled: truexpack.security.transport.ssl.enabled: truexpack.security.http.ssl.enabled: false  # false先禁用 HTTP SSL 简化配置,无证书,有证书再更改为true再加入下面配置#有了证书之后加入一下配置,并且开启httpssl认证xpack.security.transport.ssl.keystore.type: PKCS12xpack.security.transport.ssl.verification_mode: certificatexpack.security.transport.ssl.keystore.path: elastic-certificates.p12xpack.security.transport.ssl.truststore.path: elastic-certificates.p12xpack.security.transport.ssl.truststore.type: PKCS12xpack.security.audit.enabled: truexpack.security.http.ssl.keystore.path: /usr/share/elasticsearch/config/elastic-certificates.p12xpack.security.http.ssl.truststore.path: /usr/share/elasticsearch/config/elastic-certificates.p12#证书生成后,应用ess1.yaml文件,并且先生成secret资源
ls 
[root@150m01 ~/kind]# ll
-rw-r--r-- 1 root root        3443 4月  25 09:32 elastic-certificates.p12
-rw-r--r-- 1 root root        2527 4月  25 09:33 elastic-stack-ca.p12
#生成secret资源
kubectl -n middle-ware create secret generic es-cert --from-file=elastic-certificates.p12#引用secret资源主要增加:
sts.es.spec.template.spec.containers.volumeMounts- name: es-certmountPath: /usr/share/elasticsearch/config/elastic-certificates.p12subPath: elastic-certificates.p12sts.es.spec.template.spec.volumes- name: es-certsecret:secretName: es-certitems:- key: elastic-certificates.p12path: elastic-certificates.p12#证书与ess.yaml文件同级
[root@150m01 ~/kind]# ll
-rw-r--r-- 1 root root        3443 4月  25 09:32 elastic-certificates.p12
-rw-r--r-- 1 root root        2527 4月  25 09:33 elastic-stack-ca.p12
-rw-r--r-- 1 root root        4751 4月  25 09:35 ess.yaml
-rw-r--r-- 1 root root        4348 4月  24 18:07 ess.yaml.0#上传ess1.yaml文件,然后应用
kubectl apply -f es1.yaml


【设置密码】  
【创建多个账户】
kubectl exec -it elasticsearch-0 -n middle-ware --   bin/elasticsearch-setup-passwords interactive 
Y
均为--->密码:esx@1x.8A
Enter password for [elastic用户名首次密码]: 
Reenter password for [elastic用户名确认密码]: 
Enter password for [apm_system]: 
Reenter password for [apm_system]: 
Enter password for [kibana]: 
Reenter password for [kibana]: 
Enter password for [logstash_system]: 
Reenter password for [logstash_system]: 
Enter password for [beats_system]: 
Reenter password for [beats_system]: 
Enter password for [remote_monitoring_user]: 
Reenter password for [remote_monitoring_user]: 

【仅创建一个admin用户】
kubectl exec -it elasticsearch-0 -n middle-ware-sy -- /bin/bash
bin/elasticsearch-users useradd admin -p qqq -r superuser

【测试】
curl -u admin:qqq -X GET "http://10.10.10.150:32071/_cluster/health?pretty"

【部署报错】

有可能是因为你之前部署过es,pv和pvc可能没删除干净有残留,需要删除干净pv和pvc

=============================kibana===================================

无状态服务,展示数据,注意修改secret的账密即可,kibana的登陆页面账密也是es的账密

cat kibana.yml 
---
apiVersion: v1
kind: Secret
metadata:name: kibana-secretnamespace: middle-ware-rp
type: Opaque
data:username: YWRtaW4=password: VllyTWs5b0Y=
---
apiVersion: v1
kind: PersistentVolume
metadata:name: kibana-pv
spec:capacity:storage: 5GivolumeMode: FilesystemaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: manualhostPath:path: /store/data/kibanatype: DirectoryOrCreate
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: kibana-pvcnamespace: middle-ware-rp
spec:storageClassName: manualaccessModes:- ReadWriteOnceresources:requests:storage: 5Gi
---
apiVersion: v1
kind: ConfigMap
metadata:name: kibana-confignamespace: middle-ware-rp
data:kibana.yml: |server.host: "0.0.0.0"elasticsearch.hosts: ["http://10.10.10.133:30001"]xpack.security.enabled: true
---
apiVersion: apps/v1
kind: Deployment
metadata:name: kibananamespace: middle-ware-rp
spec:replicas: 1selector:matchLabels:app: kibanatemplate:metadata:labels:app: kibanaspec:containers:- name: kibanaimage: docker.elastic.co/kibana/kibana:6.8.7ports:- containerPort: 5601name: httpenv:#- name: ELASTICSEARCH_URL#  value: http://elasticsearch:9200- name: ELASTICSEARCH_USERNAMEvalueFrom:secretKeyRef:name: kibana-secretkey: username- name: ELASTICSEARCH_PASSWORDvalueFrom:secretKeyRef:name: kibana-secretkey: passwordvolumeMounts:- name: kibana-configmountPath: /usr/share/kibana/config/kibana.ymlsubPath: kibana.ymlvolumes:- name: kibana-configconfigMap:name: kibana-configdefaultMode: 0644
---
apiVersion: v1
kind: Service
metadata:name: kibananamespace: middle-ware-rp
spec:selector:app: kibanaports:- port: 5601targetPort: 5601name: httpnodePort: 30003type: NodePort



  

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

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

相关文章

WPF常用技巧汇总 - Part 2

WPF常用技巧汇总-CSDN博客 主要用于记录工作中发现的一些问题和常见的解决方法。 目录 WPF常用技巧汇总-CSDN博客 1. DataGrid Tooltip - Multiple 2. DataGrid Tooltip - Cell值和ToolTip值一样 3. DataGrid Tooltip - Cell值和ToolTip值不一样 4. DataGrid - Ctrl A /…

uniapp打包apk如何实现版本更新

我们做的比较简单,在后端设置版本号,并在uniapp的config.js中定义版本号,每次跟后端的进行对比,不一致的话就更新。 一、下载apk 主要代码(下载安装包,并进行安装,一般得手动同意安装&#xf…

局部和整体的关系

Prompt:为什么要研究局部和整体的关系呢?是因为很多情况下,局部就能表达出整体? 这是一个非常本质的问题,其实你已经接近数学和物理中“几何本质”的核心了。我们研究局部和整体的关系,是因为:…

企业办公协同平台安全一体化生态入住技术架构与接口标准分析报告

全球组织数字化与智能化背景下 企业办公协同平台安全一体化生态入住技术架构与接口标准分析报告 一、背景与市场需求 市场规模与增量 根据Statista数据,全球协同办公平台市场规模预计从2023年的$480亿增长至2027年的$900亿,年复合增长率(CAG…

【2025最新面试八股常问知识点】HTTP1.0,HTTP1.1,HTTP2.0,HTTP3.0,HTTP的进化之路。

HTTP 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的…

【算法练习】归并排序和归并分治

文章目录 1.归并排序1.1 递归版本1.2 非递归版本 2.归并分治2.1 计算数组的小和2.2 计算翻转对 1.归并排序 归并排序的核心步骤是: 拆分:将无序数组不断对半拆分成小块,直到每个小块只剩一个元素(自然有序)。 合并&a…

域对齐是什么

域对齐(Domain Alignment)是在机器学习和计算机视觉等领域中常用的技术 定义 域对齐旨在将不同域(Domain)的数据映射到一个共同的特征空间中,使得来自不同域的数据在该空间中具有相似的分布。这里的“域”可以指代不…

【linux】git安装、升级

git安装、升级 一、快捷安装版本2.18.0二、自定义版本安装(安装、升级)1、移除旧文件2、安装所需依赖3、选择指定版本4、解压文件、编译5、增加环境变量,验证是否版本 三、升级 一、快捷安装版本2.18.0 yum install git git --version二、自…

编程日志4.24

栈的链表基础表示结构 #include<iostream> #include<stdexcept> using namespace std; //模板声明&#xff0c;表明Stack类是一个通用的模板&#xff0c;可以用于存储任何类型的元素T template<typename T> //栈的声明 //Stack类的声明&#xff0c;表示一…

《冰雪传奇点卡版》:探索冰雪世界的传奇旅程!

《冰雪传奇点卡版》以“纯净打金”为核心&#xff0c;摒弃复杂付费坑&#xff0c;回归经典传奇玩法。以下从核心玩法、资源获取、职业搭配、交易变现四维度展开&#xff0c;助你高效开启冰雪传奇之旅。 一、核玩法解析&#xff1a;如何高效获取资源&#xff1f; 1. 职业定位与…

DeepClaude开源程序可以实现代码生成、创作诗句以及内容创作等功能

一、软件介绍 文末提供程序和源码下载 DeepClaude开源程序是增强的 AI&#xff0c;可以实现代码生成&#xff1a;DeepSeek r1 Claude 3.7 十四行诗 - 无与伦比的性能&#xff01;内容创作&#xff1a;DeepSeek r1 Gemini 2.5 Pro - 卓越的质量&#xff01;OpenAI 兼容。流媒…

Java常用注解通俗解释

注解就像是给Java代码贴的"便利贴"&#xff0c;它们不会改变代码本身的逻辑&#xff0c;但能给编译器、开发工具或运行时环境提供额外信息。下面我用最通俗的方式解释Java中最常用的注解&#xff1a; 一、基础篇&#xff1a;人人必知的注解 1. Override - "我…

vscode chrome调试怎么在所有浏览器都好使

chrome调试时只能在打开的浏览器里进行调试&#xff0c;其它打开的chrome浏览器就不能调试了&#xff0c;怎么解决。 右键点击 Chrome 的快捷方式图标&#xff0c;选择属性 在目标一栏&#xff0c;最后加上--remote-debugging-port9222 注意要用空格隔开 lanch.json 文件配置 …

Unity PBR基础知识

PBR原理 基于物理的渲染&#xff08;Physically Based Rendering&#xff0c;PBR&#xff09;是指使用基于物理原理和微平面理论建模的着色/光照模型&#xff0c;以及使用从现实中测量的表面参数来准确表示真实世界材质的渲染理念。 PBR基础理念 微平面理论&#xff08;Micr…

COM组件使用方法

普通COM组件&#xff08;如DLL&#xff09;仅暴露方法/属性接口&#xff0c;而ActiveX控件&#xff08;如OCX&#xff09;需要可视化交互&#xff08;如按钮、表格&#xff09;&#xff0c;需通过 ​​AxInterop​​ 包装器实现宿主环境集成。 项目中引入ActiveX控件流程如下。…

在 Spring Boot 项目中如何使用索引来优化 SQL 查询?

在 Spring Boot 项目中使用索引来优化 SQL 查询是提升数据库性能最常用的方法之一。下面是详细的步骤和实践指南&#xff1a; 核心目标&#xff1a;让数据库能够通过扫描索引&#xff08;小范围、有序的数据结构&#xff09;快速定位到所需数据行&#xff0c;而不是扫描整个表…

Vue3生产环境与Vue Devtools

在 Vue 3 的生产环境中&#xff0c;默认情况下 Vue Devtools 是无法正常使用 的&#xff0c;但开发者可以通过配置强制启用。以下是关键信息总结&#xff1a; &#x1f4cc; 核心结论 默认不可用 Vue 3 生产构建会移除 Devtools 支持以优化性能和安全性。 可强制启用 通过构建…

ARP渗透学习1

ARP协议工作原理 1. 什么是ARP ARP定义: 地址解析协议&#xff08;Address Resolution Protocol&#xff09;&#xff0c;是根据IP地址获取物理地址的一个TCP/IP协议。 2. 工作原理 ARP表: 每台计算机都需要一个ARP表&#xff0c;用来保存IP地址和MAC地址的映射关系。查询过…

甲骨文云2025深度解析:AI驱动的云原生生态与全球化突围

一、战略转型&#xff1a;从数据库巨头到AI云服务先锋 1. 技术重心向AI与云深度迁移 甲骨文在2025年加速向AI原生云架构转型&#xff0c;其核心战略围绕生成式AI与量子计算展开。通过推出Oracle 23ai自治数据库&#xff0c;深度集成AI向量搜索功能&#xff0c;并重构云基础设…

【网络原理】TCP异常处理(二):连接异常

目录 一. 由进程崩溃引起的连接断开 二. 由关机引起的连接断开 三. 由断电引起的连接断开 四. 由网线断开引起的连接断开 一. 由进程崩溃引起的连接断开 在一般情况下&#xff0c;进程无论是正常结束&#xff0c;还是异常崩溃&#xff0c;都会触发回收文件资源&#xff0c;…