Istio 流量管理| 学习笔记

简介: 快速学习 Istio 流量管理

开发者学堂课程微服务实战-Service Mesh 与 IstioIstio 流量管理】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/620/detail/9436


Istio 流量管理

目录:

一、代码

二、绑定工作

三、流量控制功能

四、Istio流量转移

五、故障注入

如何使用lstio来进行:

1.  配置请求路由

2.  流量转移

3.  故障注入

 

一、 代码

流量apiVersion: networking. istio . io/vlalpha3kind: DestinationRule

metadata:

name: revi ewa

Bpec:

host: reviewa

subsets :

name: vl

labels :

version: v1

name: v2

labels:

vergion: v2

name: v3

labels:

version: v3apiversion: networking. istio. io/vlalpha3kind: Destinat ionRule

metadata :

name: ratinge

spec:

host: ratinga

eubsets :

name: v1

labels:

version: vl

name: v2

labels:

version: v2

name: v2-mysql

labels:

version: v2-mysql

name: v2-myBql -VT

labels:

version: v2-mysql-vn

apiVersion: networking. istio. io/vlalpha3kind: DestinationRule

metadata:

name: detaila

врес:

host: detaile

subsets :

name: v1

labels :

vergion: vl

name: v2

1ahela: .

version: v2

 

二、绑定工作

US- 169691-MP:istio andy.shi$ kubectl apply -f samples/ bookinfo/ networking/destinat ion-rule-ail-mtls. yaml

destinationrule . networking . istio. io/ productpage created

destinationrule. networking. istio.io/reviews created

destinationrule . networking.istio.io/ratings created

destina tionrule . networking. istio.io/details created

US-169691-MP:istio andy.shi$ I

创建了四条 destinationrule

 

三、 流量控制功能

流量控制功能是 lstio 一个主要功能。先看 Book Reviews 的应用程序,访问配置:

An extremely entertaining play by Shakespeare. The slapstick humour isrefreshing!

- Reviewer1

Absolutely fun and entertaining. The play lacks thematic depth when compared toother plays by Shakespeare.

Reviewer2

刷新,发现没有评级的信息了。评级颜色发生变化,发生这种变化的原因如下:

US-169691-MP:istio andy.shi$ku bectlget pods

NAME READY STATUS RESTARTS AGE

details-v1-6978996b-cbsdn 2/2 Running 0 3h25m

productpage-v1-7658b8dcc6-g642s 2/2 Running 0 3h25m

ratings-v1-84975bc778-grpcm 2/2 Running 0 3h25m

reviews-v1-5787f7b87-42jqz 2/2 Running 0 3h25m

reviews-v2-6d8b975647-t5fgp 2/2 Running 0 3h25m

reviews-v3-7d5549f9-n9wwh 2/2 Running 0 3h25m

US-169691-MP:istio andy.shi$

共三种版本,现在需要把三种版本变成一个版本,需要重新定义,重新定义后一直刷新,就只有一个版本了。这就是如何配置请求路由,配置完成后需要清理掉,这样不会影响后续。

 

四、 Istio 流量转移

就对流量进行切割,一个流量倒向一部分,一部分流量导向另一个切割地。reviews有三个子集,v1,v2,v3,此时把配置文件加载出来,再看效果。先刷新一下,评级颜色发生变化,再刷新,也会发生变化,占50%的比例,这就是对路由进行的分配。

spec:

hosts:

reviews

http:

route:

destination:

host: reviewssubset: v1

weight: 50- destination:

host: reviewssubset: v3

weight: 50

在结束后也不要忘记清理掉配置:

US-169691-MP:istio andy.shiS kubectl delete -samples/bookinfo/networking/virtual-service-5li-v1.yam1.

 

五、故障注入

在分布式的应用环境下或为微服务的框架下,很难去模拟如果有一个服务不存在的时候,那么另一个服务会怎么样,有什么方法去表现,此时需要用故障注入的方法,一个服务不存在了另一个服务有什么变化一或者个服务响应慢了另一个服务会有什么表现,能够帮我们测试,也能使应用框架更加强健。

测试整个应用程序端到端的故障恢复能力。

在这次的练习中,用延迟进行故障注入,延迟是计时故障,模拟网络延迟上升或上游服务超载。通过延迟模拟当一个服务不存在,或者服务响应超时的情况下对另一个服务的表现。现在用的例子是lstio自己的例子,他们的文档很复杂难懂,完全是没有必要的。

故障注入其实很简单。用 http 发请求,http 有一个 end user Jason 时,会产生一个延迟,延迟指的是七秒钟的时间,比例是100%

对服务就会有七秒的延迟,没有必要那么复杂。

http 发请求,http 有一个 end user Jason 时,会产生一个延迟,延迟指的是七秒钟的时间,比例是100%

对服务就会有七秒的延迟,没有必要那么复杂修改文件,把七秒改成十五妙或者二十秒钟会容易很多,现在把

virtual service 写出来:networking.istio.io/ratings createdUS-169691-MP:istioandy. shi$,一切正常。制作Please sign injason

中断是模拟上游服务的崩溃故障,这是一个很好的测试方式。不要忘记删除掉前面的课程,不然会影响其他的课程。

相关文章
|
2月前
|
Kubernetes 安全 应用服务中间件
Istio的流量管理(实操二)
Istio的流量管理(实操二)
54 2
|
2月前
|
Kubernetes 网络协议 应用服务中间件
Istio的流量管理(实操三)
Istio的流量管理(实操三)
49 1
|
2月前
|
Kubernetes 网络协议 微服务
Istio的流量管理(实操一)
Istio的流量管理(实操一)
45 3
|
2月前
|
Kubernetes 负载均衡 网络协议
Istio的流量管理(概念)
Istio的流量管理(概念)
52 2
|
5月前
|
Shell Python Perl
深入理解Istio流量管理的熔断配置
创建目标规则,访问 httpbin 服务时应用熔断配置 在 fortio 服务中向 httpbin 服务的发出并发请求
152 3
深入理解Istio流量管理的熔断配置
|
安全 前端开发 Cloud Native
Istio 探索:微服务的流量管理、安全性和策略加固
Istio 探索:微服务的流量管理、安全性和策略加固
92 0
|
测试技术 开发者
KubeVela 对接 Istio 实现应用灰度发布实践|学习笔记(二)
快速学习 KubeVela 对接 Istio 实现应用灰度发布实践
KubeVela 对接 Istio 实现应用灰度发布实践|学习笔记(二)
|
自然语言处理 Kubernetes 网络协议
在阿里云安装初试 Istio| 学习笔记
快速学习在阿里云安装初试 Istio
在阿里云安装初试 Istio| 学习笔记
|
Prometheus 监控 Cloud Native
Istio 遥测| 学习笔记
快速学习 Istio 遥测
Istio 遥测| 学习笔记
|
负载均衡 监控 测试技术
Istio 介绍| 学习笔记
快速学习 Istio 介绍
Istio 介绍| 学习笔记