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

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 带你读《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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
存储 缓存 达摩院
企查查基于阿里云Elasticsearch 在复杂检索场景中的性能优化
本文分享企查查基于阿里云Elasticsearch 在复杂检索场景中的性能优化。
1640 0
|
数据采集 Java Python
如何用Python同时抓取多个网页:深入ThreadPoolExecutor
在信息化时代,实时数据的获取对体育赛事爱好者、数据分析师和投注行业至关重要。本文介绍了如何使用Python的`ThreadPoolExecutor`结合代理IP和请求头设置,高效稳定地抓取五大足球联赛的实时比赛信息。通过多线程并发处理,解决了抓取效率低、请求限制等问题,提供了详细的代码示例和解析方法。
330 0
如何用Python同时抓取多个网页:深入ThreadPoolExecutor
|
消息中间件 NoSQL Go
PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
【9月更文挑战第7天】在从 PHP 的 ThinkPHP 框架迁移到 Go 的 Gin 框架时,涉及 Redis 延时消息队列的技术实践主要包括:理解延时消息队列概念,其能在特定时间处理消息,适用于定时任务等场景;在 ThinkPHP 中使用 Redis 实现延时队列;在 Gin 中结合 Go 的 Redis 客户端库实现类似功能;Go 具有更高性能和简洁性,适合处理大量消息。迁移过程中需考虑业务需求及系统稳定性。
328 1
|
安全 数据挖掘 区块链
区块链商城源码搭建开发技术方案丨成熟讲解
区块链积分商城系统开发技术丨成熟方案
399 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的学习网站系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的学习网站系统附带文章源码部署视频讲解等
131 0
【Axios】配置默认值及拦截器代码逐行详解
【Axios】配置默认值及拦截器代码逐行详解
171 0
|
安全 网络安全 数据安全/隐私保护
Digicert为什么能成为高端的SSL证书品牌
Digicert为什么能成为高端的SSL证书品牌
229 0
Digicert为什么能成为高端的SSL证书品牌
|
机器学习/深度学习 存储 算法
排队打水算法实现
排队打水算法实现
|
JSON 前端开发 JavaScript
Spring之路(26)–Spring Restful+jQuery+Bootstrap开发博客系统实例(前端开发篇)
本文目录 1. 概述 2. 配置访问静态资源 3. 建立html网页 4. 浏览博客功能实现 5. 删除博客实现 6. 新增博客实现 7. 编辑博客实现
322 0
Spring之路(26)–Spring Restful+jQuery+Bootstrap开发博客系统实例(前端开发篇)

热门文章

最新文章