istio 服务跟踪和流量管理

2024-06-04 22:48

本文主要是介绍istio 服务跟踪和流量管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

创建目标规则和默认路由

使用Istio来管理这两个服务的流量

定义一个名称为nginx-web的DestinationRule 目标规则,

利用Pod标签把nginx-web服务分成两个subset, 分别命名为v1和v2

# nginx-destinationRule.yaml 
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:name: nginx-web
spec:host: nginx-websubsets:- name: v1labels:version: v1- name: v2labels:version: v2#### 部署到集群上kubectl apply -f nginx-destinationRule.yaml          
创建默认的路由规则VirtualService 不论是否进行进一步的流量控制,都建议为网格中的服务创建默认的路由规则

定义一个VirtualService对象,它负责接管对 “nginx-web”这一主机名的访问,
将流量都转发到DestinationRule定义的v2 subset上

# cat nginx-virtual-service-reviews-v2.yaml 
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: nginx-web-v2
spec:hosts:- nginx-webhttp:- route: - destination: host: nginx-websubset: v2#### 部署到集群上
kubectl apply -f nginx-virtual-service-reviews-v2.yaml 

再次进入客户端Pod, 看看新定义的流量管理规则是否生效

### 结果可以看出,访问只返回 v2 版本
# kubectl exec -it sleep-7995b95fdb-8vzmx sh
Defaulting container name to sleep.
Use 'kubectl describe pod/sleep-7995b95fdb-8vzmx -n default' to see all of the containers in this pod.
/ # while true; do curl http://nginx-web:80 ; sleep 1; done
<h1>Welcome to V2 !</h1>
<h1>Welcome to V2 !</h1>
<h1>Welcome to V2 !</h1>
<h1>Welcome to V2 !</h1>

金丝雀部署

金丝雀(Canary)部署指的是让少量用户使用应用新版本的一个过程,
借助这一过程能够验证新版本是否存在问题,然后能够确保以更高的质量发布给更多的受众
将 20% 的用户发送至带有缺陷的 v2 版本(这就是金丝雀发布),
并将 80% 的用户发送至正常的服务 v1 版本
这可以通过如下的 VirtualService 来实现

# cat nginx-virtual-service-reviews-80-20.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: nginx-web
spec:hosts:- nginx-webhttp:- route: - destination: host: nginx-websubset: v1weight: 80- destination: host: nginx-websubset: v2weight: 20#### 部署到集群上
kubectl apply -f nginx-virtual-service-reviews-80-20.yaml

再次进入客户端Pod, 看看新定义的流量管理规则是否生效

### 结果可以看出,大部分结果返回 v1 版本
# kubectl exec -it sleep-7995b95fdb-8vzmx sh
Defaulting container name to sleep.
Use 'kubectl describe pod/sleep-7995b95fdb-8vzmx -n default' to see all of the containers in this pod.
/ # while true; do curl http://nginx-web ; sleep 1; done
<h1>Welcome to V1 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V2 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V1 !</h1>
<h1>Welcome to V2 !</h1>

带有缺陷的服务版本会有三分之一的概率在生成响应时耗费过长的时间,
三分之一的概率遇到服务器内部错误,其余的请求均能正常完成。

为了降低这些缺陷的影响并给用户带来更好的用户体验,我们会采取如下的措施:

  • 如果服务耗时超过了 8 秒钟,将会超时;
  • 对于失败的请求进行重试。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: nginx-web
spec:hosts:- nginx-webhttp:- route: - destination: host: nginx-websubset: v1weight: 80- destination: host: nginx-websubset: v2weight: 20timeout: 8sretries:attempts: 3perTryTimeout: 3s

这篇关于istio 服务跟踪和流量管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1031343

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提