(十六)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的ElasticSearch服务平台
Posted 北溟溟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(十六)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的ElasticSearch服务平台相关的知识,希望对你有一定的参考价值。
前言
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。本节内容我们使用kubesphere管理平台搭建一个k8s环境下的高可用的es集群服务。elasticsearch镜像选用的是最新版本的elasticsearch:8.1.3镜像,配置和以前的版本稍有不同。
正文
- 创建elasticsearch配置文件
-点击配置中心->配置->创建,填写es的基本配置信息,点击下一步
-点击添加数据,填写es配置数据
-官方es配置文件
# ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticsearch comes with reasonable defaults for most settings. # Before you set out to tweak and tune the configuration, make sure you # understand what are you trying to accomplish and the consequences. # # The primary way of configuring a node is via this file. This template lists # the most important settings you may want to configure for a production cluster. # # Please consult the documentation for further information on configuration options: # https://www.elastic.co/guide/en/elasticsearch/reference/index.html # # ---------------------------------- Cluster ----------------------------------- # # Use a descriptive name for your cluster: # #cluster.name: my-application # # ------------------------------------ Node ------------------------------------ # # Use a descriptive name for the node: # #node.name: node-1 # # Add custom attributes to the node: # #node.attr.rack: r1 # # ----------------------------------- Paths ------------------------------------ # # Path to directory where to store the data (separate multiple locations by comma): # #path.data: /path/to/data # # Path to log files: # #path.logs: /path/to/logs # # ----------------------------------- Memory ----------------------------------- # # Lock the memory on startup: # #bootstrap.memory_lock: true # # Make sure that the heap size is set to about half the memory available # on the system and that the owner of the process is allowed to use this # limit. # # Elasticsearch performs poorly when the system is swapping the memory. # # ---------------------------------- Network ----------------------------------- # # By default Elasticsearch is only accessible on localhost. Set a different # address here to expose this node on the network: # #network.host: 192.168.0.1 # # By default Elasticsearch listens for HTTP traffic on the first free port it # finds starting at 9200. Set a specific HTTP port here: # #http.port: 9200 # # For more information, consult the network module documentation. # # --------------------------------- Discovery ---------------------------------- # # Pass an initial list of hosts to perform discovery when this node is started: # The default list of hosts is ["127.0.0.1", "[::1]"] # #discovery.seed_hosts: ["host1", "host2"] # # Bootstrap the cluster using an initial set of master-eligible nodes: # #cluster.initial_master_nodes: ["node-1", "node-2"] # # For more information, consult the discovery and cluster formation module documentation. # # ---------------------------------- Various ----------------------------------- # # Allow wildcard deletion of indices: # #action.destructive_requires_name: false
- 需要的配置说明
#集群名称配置 cluster.name: my-es #节点角色配置 node.roles: [ data, master ] #网络配置 network.host: 0.0.0.0 #集群节点配置 discovery.seed_hosts: [ "app-es-v1-0.app-es.app.svc.cluster.local:9300","app-es-v1-1.app-es.app.svc.cluster.local:9300","app-es-v1-2.app-es.app.svc.cluster.local:9300" ] #集群初始化节点 cluster.initial_master_nodes: [ "app-es-v1-0","app-es-v1-1","app-es-v1-2" ] #绑定客户端访问端口 http.port: 9200 #绑定集群间通信端口 transport.port: 9300 #安全访问 xpack.security.transport.ssl.enabled: true
ps:k8s环境中有状态服务的部署pod的服务名称是按照固定规则生成的一个主机服务名称,
(podname).(headless server name).(namespace).svc.cluster.local例如app-es-v1-0.app-es.app.svc.cluster.local,其中app-es-v1-0是pod的节点名称,app-es是服务器名称,app是命名空间,svc.cluster.local为固定写法。后面创建es集群我们需要按照这个规则来命名创建集群。
- 填写es集群配置,点击对号,点击创建
-完成集群配置文件的创建
- 部署elasticsearch服务
-点击应用负载->服务->创建->有状态服务->填写集群配置基本信息,这里要注意这里的名称就是pod的节点名称,要与前面配置文件的名字一致
- 点击下一步,选择容器组副本数为3,然后点击添加容器镜像
- 添加集群服务镜像elasticsearch:8.1.3,加载镜像后,选择使用默认暴露端口9200访问服务
- 添加环境变量ES_JAVA_OPTS:-Xms256m -Xmx256m,为es分配初始化和最大JVM内存,es也是一个java服务,这里用于测试,jvm内存设置的小一点,正常要设置为服务器内存的50%左右,完成后勾选主机时区,点对号完成镜像添加,点击下一步
-点击添加存储卷模板,完成es数据存储的pvc配置
- 填写pvc存储基本信息,完成es数据存储设置,pvc存储路径映射为:/usr/share/elasticsearch/data,这里要选择添加子路径,以免覆盖其它文件路径,点击对号完成pvc存储卷的添加
-挂载es配置文件elasticsearch.yml
-选择已经创建的es配置文件,填写es配置文件路径/usr/share/elasticsearch/config/elasticsearch.yml及其子路径elasticsearch.yml
- 勾选特定的键和路径,点击对号完成es集群配置文件的添加
-点击下一步,完成es集群的创建
-点击创建,es集群创建完毕
- 验证elasticsearch服务
- 点击任意一台服务器控制台图标进入es容器内
-访问集群节点,查看集群状态
地址:curl http://app-es-v1-0.app-es.app.svc.cluster.local:9200/_cat/nodes?pretty
结语
至此,关于使用kubesphere管理平台搭建一个k8s环境下的高可用的es集群服务就结束了。别忘了,关注、点赞,加收藏哦,我们下期见。。。
以上是关于(十六)从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的ElasticSearch服务平台的主要内容,如果未能解决你的问题,请参考以下文章
从零开始搭建k8s集群——使用KubeSphere管理平台搭建链路追踪组件zipkin服务端
从零开始搭建k8s集群——使用KubeSphere管理平台搭建一个高可用的zookeeper集群服务