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

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

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


定义一个 Gateway 资源,定义集群外部流量访问集群中 Elasticsearch 服务的入口。集群外部的客户通过 istio.elasticsearch.com 域名和 9200 端口访问集群内部的 Elasticsearch 服务。

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: istio-elasticsearch-gateway
  namespace: istio-demo
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 9200
      name: http
      protocol: HTTP
    hosts:
       - "istio.elasticsearch.com" #客户端访问的域名

将 VirtualService 绑定到 Gateway 上,使用 Istio 规则来控制从集群外部通过 Gateway 进入的流量。将所有写操作的流量转发至 Ingest 节点,其他操作的流量转发至 Coordinating 节点。


apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: istio-elasticsearch-gateway-virtualservice
  namespace: istio-demo
spec:
  hosts:
  - "istio.elasticsearch.com" #客户端访问的域名
  gateways:
  - istio-elasticsearch-gateway  #gateway 的名称
  http:
  - match:  #写入操作的请求分发至 ingest 节点
    - uri:
        regex: .*_doc.* #正则表达式匹配 url,例如创建文档 my-index-istio/doc/1
    - uri:
        prefix: /_bulk #匹配 url 前缀,bulk 批量提交
    route:
      - destination:
          host: istio-elasticsearch-es-ingest #kubernetes 集群中真正存在的 service
  - route:
    - destination:  #其余操作的请求分发至 coordinating 节点
        host: istio-elasticsearch-es-coordinating


使用以下命令应用 Istio 转发规则:


kubectl apply -f gateway.yaml
kubectl apply -f virtualservice.yaml

访问验证

 

由于在 Gateway 中定义的域名没有 DNS 服务器能解析到 SLB 的公网地址,我们需要在客户端添加 host 记录,在客户端编辑 /etc/hosts,添加以下记录:

 

121.41.8.133 istio.elasticsearch.com

客户端写入 1000 条数据:


for i in {1..1000};do curl -u elastic:L733hU98Y467IZMft4DzLq5m \
http://istio.elasticsearch.com:9200/my-index-istio/_doc\?pretty \
-X POST -H "Content-Type:application/json" \
-d '{"name":"tom","age":18}';done
#返回结果
{
  "_index" : "my-index-istio",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}
......

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

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