Istio网关Gateway 启用TLS

Istio网关Gateway概述


Istio网关Gateway是一个负责处理南北向流量的组件,它通常会暴露服务网格内部的服务,以便外部的请求能够访问到服务网格中的服务。Istio网关Gateway支持多种协议,包括HTTP、HTTPS和GRPC等。

在Istio网关Gateway中,每个服务器都包含一个或多个端口,每个端口都定义了一种协议和相应的配置Istio网关Gateway还可以定义多个TLS证书,以便对传输的数据进行加密和解密。

在配置Istio网关Gateway时,我们需要指定其所使用的负载均衡算法和服务发现机制。Istio网关Gateway支持多种服务发现机制,包括Kubernetes服务发现、Consul服务发现和Eureka服务发现等。

先来部署有TLS的网关。

1.生成密钥对

首选来生成密钥对,-keyout是生成私钥。-out是公钥,生成的密钥对。生成好了要放在指定的目录下,在/etc/istio/ingressgateway-certs/。

[root@k8s-master ~]# mkdir -p /etc/istio/ingressgateway-certs
[root@k8s-master ~]# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/istio/ingressgateway-certs/mykey.key -out /etc/istio/ingressgateway-certs/mycrt.crt -subj "/CN=mytest/O=my-test"
Generating a 2048 bit RSA private key
..............................................................................+++
........................+++
writing new private key to '/etc/istio/ingressgateway-certs/mykey.key'
-----
[root@k8s-master ~]# ls /etc/istio/ingressgateway-certs
mycrt.crt  mykey.key

这个证书并不是合法的CA颁发的,而是我们自己生成的。

2.创建tls类型的secret

[root@k8s-master ~]# kubectl create secret generic istio-ingressgateway-certs --from-file /etc/istio/ingressgateway-certs/mykey.key --from-file /etc/istio/ingressgateway-certs/mycrt.crt -n istio

这里的证书正常情况下是CA帮我们颁发的,只不过我们这里并没有使用到CA。

serverCertificate: /etc/istio/ingressgateway-certs/mycrt.crt
privateKey: /etc/istio/ingressgateway-certs/mykey.key

 

 

 

多套证书,基于多个域名


其实也就是两套证书,两套证书分配给不同的域名。 

上面是直接服务器端生成了公钥和私钥。如果是生产环境那么就需要去购买证书,购买证书可以到阿里云等厂商。

前提

  • EKS集群可用
  • istio-gateway可用

创建TLS证书secret

kubectl create secret generic shanhaitls-credential -n istio-system \
--from-file=cert=$Path/certs/server.cer \
--from-file=key=$Path/certs/server.key

Gateway添加TLS配置

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: swbom-g-gatewaynamespace: istio-system
spec:selector:istio: ingressgateway # use Istio default gateway implementationservers:- port:number: 80name: httpprotocol: HTTPhosts:- "swbom-dev-g.shanhai.huawei.com"- "swbom-g-test-kuboard-elb.shanhai.huawei.com"- port:number: 443name: httpsprotocol: HTTPStls:mode: SIMPLEcredentialName: shanhaitls-credential # must be the same as secrethosts:- "swbom-dev-g.shanhai.huawei.com"- "swbom-g-test-kuboard-elb.shanhai.huawei.com"
---

 Gateway配置示例

以下是一个使用Istio Gateway进行南北流量管理的示例:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:name: my-gateway
spec:selector:istio: ingressgatewayservers:- port:number: 80name: httpprotocol: HTTPhosts:- my-service.comtls:mode: SIMPLEserverCertificate: /etc/certs/server.pemprivateKey: /etc/certs/private_key.pem- port:number: 443name: httpsprotocol: HTTPShosts:- my-service.comtls:mode: SIMPLEserverCertificate: /etc/certs/server.pemprivateKey: /etc/certs/private_key.pem- port:number: 8443name: https-adminprotocol: HTTPShosts:- my-admin.comtls:mode: SIMPLEserverCertificate: /etc/certs/server.pemprivateKey: /etc/certs/private_key.pem- port:number: 8080name: grpcprotocol: GRPChosts:- my-service.comtls:mode: SIMPLEserverCertificate: /etc/certs/server.pemprivateKey: /etc/certs/private_key.pem

在上述示例中,我们首先定义了一个名为my-gateway的Gateway对象。该对象有一个标签选择器istio: ingressgateway,用于将其指定为Istio Ingress Gateway。

在该Gateway对象中,我们定义了四个服务器,分别处理不同的端口和协议。

其中,第一个服务器用于处理HTTP流量,第二个服务器用于处理HTTPS流量,第三个服务器用于处理HTTPS管理员流量,第四个服务器用于处理GRPC流量。每个服务器都定义了一个名为port的子对象,用于指定其所使用的端口、协议和端口名称。每个服务器还定义了一个名为hosts的子对象,用于指定其所支持的主机名。此外,每个服务器还定义了一个名为tls的子对象,用于指定其所使用的TLS证书的相关配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/11241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二、Java框架基础02 XML

二、XML 2.1 XML 简介 XML 即可扩展标记语言,一种简单的数据存储语言,使用一系列简单的标记来描述结构化数据 XML 的特点 XML 与操作系统,编程语言的开发平台无关规范统一,实现不同系统之间的数据交互 2.1.1 XML 的文档结构 以下…

吐血整理,性能测试最重要指标分析说明,一步通关...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 QPS Queries Per …

swiper不生效/切换不生效,点击切换按钮activeIndex值不对应问题@令狐张豪

原因:因为把new Swiper放在mounted实例化的时候可能v-for并未执行完成结构还未完全生成 错误:先执行了swiper实例化后循环的;正确:先循环完数据确保数据完整循环完成后再执行swiper实例化; 解决方案:watch…

SketchUp 如何选择合适的硬件配置?

SketchUp 本地配置不足可以尝试云端解决方案: 渲云渲染插件 渲云云渲染面向多领域三维内容制作提供云渲染服务,帮助用户快速完成三维内容、动画及效果图的渲染计算,规避因本地电脑配置不足导致渲染慢的问题,大幅提高工作效率&…

注解和反射03--Class对象

注解和反射 Class类Class类的常用方法获取Class类的实例哪些类型可以有Class对象 Class类 在Object类重定义了以下的方法,此方法将被所有子类继承 public final Class getClass()以上的方法返回值的类型是一个Class类,此类是Java反射的源头&#xff0c…

一百三十七、Hive——HQL运行报错(持续更新中)

一、timestamp字段与int字段相加 (一)场景 change_time字段是timestamp字段,代表一个红绿灯周期的开始时间(先是绿灯、再是黄灯、最后红灯),而green是int字段,代表绿灯的秒数,现在…

Docker 阿里云容器镜像服务

阿里云-容器镜像服务ACR 将本地/服务器docker image(镜像)推送到 阿里云容器镜像服务仓库 1. 在容器镜像服务ACR中创建个人实例 2. 进入个人实例 > 命名空间 创建命名空间 3. 进入个人实例 > 镜像仓库 创建镜像仓库 4. 进入镜像仓库 > 基本信…

论文笔记--Distilling the Knowledge in a Neural Network

论文笔记--Distilling the Knowledge in a Neural Network 1. 文章简介2. 文章概括3 文章重点技术3.1 Soft Target3.2 蒸馏Distillation 4. 文章亮点5. 原文传送门 1. 文章简介 标题:Distilling the Knowledge in a Neural Network作者:Hinton, Geoffre…

【iOS】isKindOfClass和isMemberOfClass方法

前言 这个归根结底还是在考察我们对isa走向图和类的继承的理解,也就是苹果官方这幅图: 接下来的函数调用流程请参考这张图。 1 isKindOfClass方法 1.1 objc_opt_isKindOfClass C函数 查看源码可发现,无论是谁调用isKindOfClass方法都会…

flex布局进阶

推荐看一下阮一峰老师的flex布局博客【Flex 布局教程:语法篇】(https://www.ruanyifeng.com/blog/2015/07/flex-grammar.html#),讲的非常清晰。 一、多行布局大小相同的子盒子技巧 使用弹性布局实现多行均匀布局时,如若子盒子数量不能被每行…

HHDESK便捷功能介绍三

1 连接便捷显示 工作中,往往需要设置很多资源连接。而过多的连接设,往往很容易混淆。 在HHDESK中,当鼠标点击连接时,会在下方显示本连接的参数,方便用户查看。 2 日志查看 实际工作中,查看日志是一件很…

QT【day3】

思维导图&#xff1a; 闹钟&#xff1a; //widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> // #include<QTime> //定时器 #include<QDebug> // #in…

Rust vs Go:常用语法对比(七)

题图来自 Go vs Rust: Which will be the top pick in programming?[1] 121. UDP listen and read Listen UDP traffic on port p and read 1024 bytes into buffer b. 听端口p上的UDP流量&#xff0c;并将1024字节读入缓冲区b。 import ( "fmt" "net&qu…

API接口:如何通过使用手机归属地查询

随着手机普及率的不断增加&#xff0c;手机号码的信息查询也成为了一个非常实用的功能。本文将介绍如何通过使用手机归属地查询API接口实现查询手机号码所在地的功能。 首先&#xff0c;我们需要一个可以查询手机号码所在地的API接口。目前市面上有很多免费或付费的API接口可供…

深入了解HTTP代理在网络爬虫与SEO实践中的角色

随着互联网的不断发展&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;成为各大企业和网站重要的推广手段。然而&#xff0c;传统的SEO方法已经难以应对日益复杂和智能化的搜索引擎算法。在这样的背景下&#xff0c;HTTP代理爬虫作为一种重要的工具&#xff0c;正在逐渐被…

php-golang-rpc jsonrpc和php客户端tivoka/tivoka包实践

golang 代码&#xff1a; package main import ( "fmt" "net" "net/rpc" "net/rpc/jsonrpc" ) type App struct{} type Res struct { Code int json:"code" Msg string json:"msg" Data any json:"…

【洁洁送书第二期】Python机器学习:基于PyTorch和Scikit-Learn

前言 近年来&#xff0c;机器学习方法凭借其理解海量数据和自主决策的能力&#xff0c;已在医疗保健、 机器人、生物学、物理学、大众消费和互联网服务等行业得到了广泛的应用。自从AlexNet模型在2012年ImageNet大赛被提出以来&#xff0c;机器学习和深度学习迅猛发展&#xf…

clickhouse分布式查询降级为本地查询

在基于 clickhouse 做类数仓建模时通常的做法是在本地创建物化视图&#xff0c;然后使用分布式表做代理对外提供服务。我们知道 clickhouse 对于 DQL 内部实现了分布式&#xff0c;而对于 DDL 则需要我们自动实现比如&#xff1a; drop table table_name on cluster cluster_n…

TCP 协议【传输层协议】

文章目录 1. 简介1.1 TCP 协议是什么1.2 TCP 协议的作用1.3 什么是“面向连接” 2. 简述 TCP2.1 封装和解包2.2 TCP 报文格式2.3 什么是“面向字节流”2.4 通过 ACK 机制实现一定可靠性 3. 详述 TCP3.1 基本认识TCP 报头格式16 位源/目标端口号32 位序列号*32 位确认应答号4 位…

HCIA实验四

一.实验要求&#xff1a; 1、R4为ISP&#xff0c;其上只能配置IP地址&#xff1b;R4与其他所有直连设备间均使用共有IP&#xff1b; 2、R3 - R5/6/7为MGRE环境&#xff0c;R3为中心站点&#xff1b; 3、整个网络配置OSPF环境&#xff0c;IP基于172.16.0.0/16网段划分&#x…