带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(8)

简介: 带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(8)

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(7) https://developer.aliyun.com/article/1231274


部署 Hot-Warm 架构 Elasticsearch 集群 和 Cerebro

 

定义一个 Elasticsearch 类型的资源文件部署一个冷热分离的 Elasticsearch 集群:

 

l 3 个 Master 节点,不存储数据,负责集群元数据的管理,集群范围的操作(创建或删除索引,跟踪集群节点,分片分配等等)。Master 节点因为没有读写数据的压力,因此选择最便宜的高效云盘。

l 3 个 Hot 节点,新的数据都会首先写入 Hot 节点,承受较大的读写压力,选择使用读写性能最好的 ESSD 硬盘。

l 3 个 Warm 节点,选择读写性能稍差的 SSD 硬盘。

l 3 个 Cold 节点,选择最便宜的高效云盘。


apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: hot-warm-elasticsearch
spec:
  #禁用 https
  http:
    tls:
      selfSignedCertificate:
        disabled: true
  version: 7.14.0
  nodeSets:
  #master 节点
  - name: master
    count: 3
    config:
      node.roles: ["master"]
    podTemplate:
      spec:
        containers:
        - name: elasticsearch
          resources:
            #限制资源使用
            limits:
              memory: 1Gi
              cpu: 1
    volumeClaimTemplates:
    - metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 20Gi
        storageClassName: alicloud-disk-efficiency #挂载高效云盘
  # hot 节点
  - name: hot
    count: 3
    config:
      node.attr.data: hot #节点属性
      node.roles: ["data","ingest"]
podTemplate:
      spec:
        containers:
        - name: elasticsearch
          resources:
            limits:
              memory: 2Gi
              cpu: 2
    volumeClaimTemplates:
    - metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 20Gi
        storageClassName: alicloud-disk-essd #挂载 ESSD
  # warm 节点
  - name: warm
    count: 3
    config:
      node.attr.data: warm #节点属性
      node.roles: ["data","ingest"]
    podTemplate:
      spec:
        containers:
        - name: elasticsearch
          resources:
            limits:
              memory: 2Gi
              cpu: 1
    volumeClaimTemplates:
- metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 60Gi
        storageClassName: alicloud-disk-ssd  #挂载 SSD
  # cold 节点
  - name: cold
    count: 3
    config:
      node.attr.data: cold #节点属性
      node.roles: ["data","ingest"]
    podTemplate:
      spec:
        containers:
        - name: elasticsearch
          resources:
            limits:
              memory: 2Gi
              cpu: 1
    volumeClaimTemplates:
    - metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 100Gi
        storageClassName: alicloud-disk-efficiency  #挂载高效云盘

为了方便我们观察索引在节点上的迁移情况,这里额外安装了 Cerebro,在 Cerebro 上可以很直观地看到索引在每个节点的分布情况。由于通过 ECK 安装的 Elasticsearch 默认都使用了自签名证书来进行 HTTPS 加密,而 Cerebro 默认只能连接受信任的 HTTPS 或者 HTTP 站点,因此我们在定义 Elasticsearch 资源文件时选择禁用 HTTPS,让 Cerebro 通过 HTTP 访问 Elasticsearch 集群。


apiVersion: apps/v1
kind: Deployment
metadata:
  name: cerebro
  labels:
    app: cerebro
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cerebro
  template:
    metadata:
      labels:
        app: cerebro
    spec:
      containers:
      - name: cerebro
        image: lmenezes/cerebro:0.9.4
        ports:
        - containerPort: 9000

使用以下命令应用本实验的资源文件:

 

kubectl apply -f hot-warm/

查看创建的相关 Pod:


❯ kubectl get pod
NAME                                  READY   STATUS    RESTARTS   AGE
cerebro-99484576f-pwx85               1/1     Running   0          6h19m
hot-warm-elasticsearch-es-cold-0      1/1     Running   0          113s
hot-warm-elasticsearch-es-cold-1      1/1     Running   0          112s
hot-warm-elasticsearch-es-cold-2      1/1     Running   0          112s
hot-warm-elasticsearch-es-hot-0       1/1     Running   0          113s
hot-warm-elasticsearch-es-hot-1       1/1     Running   0          113s
hot-warm-elasticsearch-es-hot-2       1/1     Running   0          113s
hot-warm-elasticsearch-es-master-0    1/1     Running   0          113s
hot-warm-elasticsearch-es-master-1    1/1     Running   0          113s
hot-warm-elasticsearch-es-master-2    1/1     Running   0          113s
hot-warm-elasticsearch-es-warm-0      1/1     Running   0          113s
hot-warm-elasticsearch-es-warm-1      1/1     Running   0          113s
hot-warm-elasticsearch-es-warm-2      1/1     Running   0          113s
hot-warm-kibana-kb-7d5747887d-n8dzd   1/1     Running   0          82s

开启端口转发,将 Kibana 和 Cerebro 的服务转发到本地,方便我们访问。

 

kubectl port-forward pod/cerebro-99484576f-pwx85 9000
kubectl port-forward service/hot-warm-kibana-kb-http 5601

获取 elastic 用户密码:


PASSWORD=$(kubectl get secret hot-warm-elasticsearch-es-elastic-user \
-o go-template='{{.data.elastic | base64decode}}')
echo $PASSWORD
#elastic 用户密码
js373o37ZKu3DKDo69co97Ds

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.1.Elastic Stack 安装部署——3.4.1.8. ECK 安装(9) https://developer.aliyun.com/article/1231272

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
运维 Linux
Linux命令(66)之tar
Linux命令(66)之tar
521 6
|
存储 缓存 自然语言处理
Elasticsearch 内存占用分析及 page cache 监控
Elasticsearch 内存占用相关知识,以及对 lucene 文件的 page cache 进行监控
4757 6
|
JSON 人工智能 安全
HTTP工具解析:功能、应用场景与选型指南
本内容系统介绍了主流接口测试工具的核心功能、应用场景及选型建议。涵盖请求构造、响应分析、自动化测试与团队协作等模块,支持多环境参数切换、JSON/XML数据格式及性能指标监控。典型场景包括接口调试、Mock服务、高并发压测等,推荐工具如Postman、Apifox、JMeter、Locust等。同时分析了低代码化、AI辅助、协议扩展等技术趋势与安全合规挑战。
771 5
|
Prometheus Kubernetes 网络协议
kubernetes dns 解析超时问题排查
kubernetes dns 解析超时问题排查
802 0
|
监控 Nacos Docker
【开发问题记录】Nacos修改服务实例权重时报错
【开发问题记录】Nacos修改服务实例权重时报错
978 1
|
Kubernetes 数据安全/隐私保护 索引
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(9)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(9)
319 0
|
Kubernetes 数据安全/隐私保护 Perl
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(6)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(6)
608 0
|
存储 Kubernetes 固态存储
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(7)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(7)
407 0
|
索引
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(10)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(10)
323 0
|
API 对象存储 数据安全/隐私保护
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(12)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(12)
319 0

热门文章

最新文章