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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(20)

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


部署 Elasticsearch 集群

 

默认情况下,Istio 会为具有 Istio Sidecar 代理的工作负载之间的所有流量启用双向 TLS,需要对 Elasticsearch 资源文件进行以下修改才能确保 Elasticsearch 集群正常工作:

 

l 1.禁用 elastic operator 使用自签名证书加密 Elasticsearch 集群的 HTTPS 流量,之后会在 Istio Gateway 加密 HTTPS 流量。

 

 l 2.将 Elasticsearch 集群节点之前的传输端口 9300 排除在代理之外,目前 ECK 不支持关闭 Elasticsearch 传输端口的 X-Pack Security 和 TLS。如果允许 Istio 代理传输端口,则流量会被加密两次,会导致 Elasticsearch 节点之间的通信会中断。

l 3.可选,仅当 Kubernetes 集群不支持发布第三方安全令牌时才需要设置 automountServiceAccountToken 为 true。


apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: istio-elasticsearch
  namespace: istio-demo
spec:
  #禁用 elaticsearch 本身的 https,通过 istio 管理 tls
  http:
    tls:
      selfSignedCertificate:
        disabled: true
  version: 7.14.0
  nodeSets:
  #master节点
  - name: master
    count: 3
    config:
      node.roles: ["master"]
    podTemplate:
      metadata:
        annotations:
          #将传输端口 9300 排除在代理之外
          traffic.sidecar.istio.io/includeInboundPorts: "*"
          traffic.sidecar.istio.io/excludeOutboundPorts: "9300"
          traffic.sidecar.istio.io/excludeInboundPorts: "9300"
      spec:
        #仅当 Kubernetes 集群不支持发布第三方安全令牌时才需要设置
        #automountServiceAccountToken: true
        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
  #data 节点
  - name: data
    count: 3
    config:
      node.roles: ["data"]
    podTemplate:
      metadata:
        annotations:
          traffic.sidecar.istio.io/includeInboundPorts: "*"
          traffic.sidecar.istio.io/excludeOutboundPorts: "9300"
          traffic.sidecar.istio.io/excludeInboundPorts: "9300"
      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-efficiency
  #ingest 节点
  - name: ingest
    count: 3
    config:
      node.roles: ["ingest"]
    podTemplate:
      metadata:
        annotations:
          traffic.sidecar.istio.io/includeInboundPorts: "*"
          traffic.sidecar.istio.io/excludeOutboundPorts: "9300"
          traffic.sidecar.istio.io/excludeInboundPorts: "9300"
      spec:
        containers:
        - name: elasticsearch
          resources:
            limits:
              memory: 2Gi
              cpu: 1
volumeClaimTemplates:
    - metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 20Gi
        storageClassName: alicloud-disk-efficiency
  #coordinating 节点
  - name: coordinating
    count: 3
    config:
      node.roles: []
    podTemplate:
      metadata:
        annotations:
          traffic.sidecar.istio.io/includeInboundPorts: "*"
          traffic.sidecar.istio.io/excludeOutboundPorts: "9300"
          traffic.sidecar.istio.io/excludeInboundPorts: "9300"
      spec:
        containers:
        - name: elasticsearch
          resources:
            limits:
              memory: 2Gi
              cpu: 1
    volumeClaimTemplates:
    - metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 20Gi
        storageClassName: alicloud-disk-efficiency

使用以下命令应用资源文件部署 Elasticsearh 集群。


kubectl create ns istio-demo
kubectl label namespace istio-demo istio-injection=enabled
kubectl apply -f elasticsearch.yaml

获取 Elasticsearch 集群密码:


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

Istio 可视化组件部署

 

Istio 和几个遥测应用做了集成,遥测能帮你了解服务网格的结构、展示网络的拓扑结构、分析网格的健康状态。使用下面命令部署 Kiali 仪表板,以及 Prometheus、Grafana、Jaeger。


kubectl apply -f istio/istio-1.11.1/samples/addons

通过 kubectl port-forward 的方式将 Kiali Service 服务转发到本地 20001 端口,便于我们本地访问测试。


kubectl port-forward -n istio-system service/kiali 20001

浏览器输入 http://localhost:20001 访问 Kiali 页面。


image.png

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


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
11月前
|
Kubernetes API 索引
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(16)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(16)
159 0
|
11月前
|
Kubernetes API 容器
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(2)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(2)
106 0
|
11月前
|
存储
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(17)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(17)
114 0
|
11月前
|
存储 Kubernetes 固态存储
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(5)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(5)
115 0
|
11月前
|
存储 API 对象存储
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(11)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(11)
142 0
|
11月前
|
存储 固态存储 数据安全/隐私保护
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(8)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(8)
122 0
|
11月前
|
存储 Kubernetes 固态存储
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(7)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(7)
115 0
|
11月前
|
索引
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(15)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(15)
|
11月前
|
Cloud Native 大数据
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(25)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(25)
108 0
|
11月前
|
容器 Perl
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(19)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(19)
109 1

相关课程

更多