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

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

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


Istio IngressGateway HTTPS 加密

 

在前面创建 Istio 的 Elasticsearch 集群时我们选择不启用 Elasticsearch 自身的 HTTPS 加密,而交给 Istio 来管理 TLS 加密,现在我们在 Istio IngressGateway 上配置 HTTPS 加密。

创建用于服务签名的根证书和私钥:


openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \
-subj '/O=elasticsearch Inc./CN=elasticsearch.com' \
-keyout elasticsearch.com.key \
-out elasticsearch.com.crt

为 istio.elasticsearch.com 域名创建证书和私钥:


openssl req -out istio.elasticsearch.com.csr -newkey rsa:2048 -nodes \
-keyout istio.elasticsearch.com.key \
-subj "/CN=istio.elasticsearch.com/O=istio organization"
openssl x509 -req -days 365 -CA elasticsearch.com.crt \
-CAkey elasticsearch.com.key -set_serial 0 \
-in istio.elasticsearch.com.csr -out istio.elasticsearch.com.crt

查看创建相关证书文件:

> ls -l
total 20
-rw-r--r-- 1 chengzw chengzw 1212 Aug 30 10:52 elasticsearch.com.crt
-rw------- 1 chengzw chengzw 1708 Aug 30 10:52 elasticsearch.com.key
-rw-r--r-- 1 chengzw chengzw 1074 Aug 30 10:54 istio.elasticsearch.com.crt
-rw-r--r-- 1 chengzw chengzw  948 Aug 30 10:53 istio.elasticsearch.com.csr
-rw------- 1 chengzw chengzw 1704 Aug 30 10:53 istio.elasticsearch.com.key

为 Ingress Gateway 创建 Secret:


kubectl create -n istio-system secret tls istio-elasticsearch-credential \
--key=istio.elasticsearch.com.key \
--cert=istio.elasticsearch.com.crt

修改原先 Istio Gateway 的资源文件,将 credentialName 的值指定为 istio-elasticsearch-credential,这个与刚刚创建的 Secret 名称相同,TLS 模式的设置为 SIMPLE。

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: istio-elasticsearch-gateway-tls
  namespace: istio-demo
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 9200
      name: https
      protocol: HTTPS #改为 HTTPS 协议
    hosts:
       - "istio.elasticsearch.com" #客户端访问的域名
    tls: #TLS 加密
      mode: SIMPLE
      credentialName: istio-elasticsearch-credential

定义 VirtualService 关联 Gateway。


apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: istio-elasticsearch-gateway-virtualservice-tls
  namespace: istio-demo
spec:
  hosts:
  - "istio.elasticsearch.com" #客户端访问的域名
  gateways:
  - istio-elasticsearch-gateway-tls  #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

删除原先的 Gateway 和 Virtualservice,创建新的 TLS 加密的 Gateway 和 Virtualservice。


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

由于我们的 HTTPS 证书是自签证书,客户端通过 curl 命令访问 Elasticsearch 时需要加上

-k 参数,表示允许连接不受信任的 HTTPS 连接。

 

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

相关实践学习
使用阿里云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
|
存储 Kubernetes 固态存储
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(7)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(7)
155 0
|
安全 对象存储 索引
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(14)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(14)
180 0
|
网络协议
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(22)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(22)
119 0
|
API 对象存储 数据安全/隐私保护
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(12)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(12)
120 0
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(23)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(23)
102 0
|
存储
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(17)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(17)
169 0
|
存储 固态存储 数据安全/隐私保护
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(8)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(8)
148 0
|
运维 负载均衡 监控
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(18)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(18)
131 0
|
Kubernetes API 索引
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(16)
带你读《Elastic Stack 实战手册》之15:——3.4.1.8. ECK 安装(16)
209 0