廖彗云 发表于 2025-6-4 08:32:47

使用Istio灰度发布

目录

[*]灰度发布

[*]1. Istio

[*]1.1 Istio介绍
[*]1.2 Istio是如何工作的

[*]2. 安装Istio

[*]2.1 环境
[*]2.2 得到二进制文件
[*]2.3 安装istio

[*]3. 部署bookinfo模拟业务

[*]3.1 v1页面
[*]3.2 v2页面
[*]3.3 v3页面

[*]4. 模拟灰度发布

[*]4.1 业务版本v2
[*]4.2 灰度发布到v3版本

[*]5. Kiali

[*]5.1 安装普罗米修斯
[*]5.2 修改svc类型



灰度发布

什么叫灰度发布?
灰度发布也就是在我们发布新版本的业务的时候,不是直接将所有流量切到新版本上去,而是新旧版本共存,并且将流量逐步的从旧版本切换到新版本的过程叫做灰度发布
灰度发布的好处
灰度发布对比全量发布的好处是,先由一少部分用户体验新版本,观察新版本的情况,有没有出现bug,服务错误之类的问题,如果遇到了这种问题,可以直接将流量给切回旧版本,因为体验新版本的用户不是特别多,所以不会造成特别大的事故,而如果使用全量发布,等到发布完之后发现业务有bug,这时候所有在用的用户都受到了这个bug的影响,此时回退版本的影响肯定是大于灰度发布造成的影响的
1. Istio

1.1 Istio介绍

Istio 是一种开源服务网格,可透明地分层到现有的分布式应用程序上。 Istio 的强大功能提供了一种统一且更高效的方式来保护、连接和监控服务。 Istio 是实现负载均衡、服务到服务身份验证和监控的途径 - 几乎无需更改服务代码。它为您提供:

[*]使用双向 TLS 加密、强大的基于身份的身份验证和鉴权在集群中保护服务到服务通信
[*]HTTP、gRPC、WebSocket 和 TCP 流量的自动负载均衡
[*]使用丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制
[*]支持访问控制、限流和配额的可插入策略层和配置 API
[*]集群内所有流量(包括集群入口和出口)的自动指标、日志和链路追踪
1.2 Istio是如何工作的

Istio 使用代理来拦截您的所有网络流量,从而根据您设置的配置允许使用一系列应用程序感知功能。
控制平面采用您所需的配置及其对服务的视图,并动态地编程代理服务器,并根据规则或环境的变化对其进行更新。
数据平面是服务之间的通信。如果没有服务网格,网络就无法理解正在发送的流量,也无法根据流量类型、流量来源或目的地做出任何决策。
Istio 支持两种数据平面模式:

[*]Sidecar 模式,它会与您在集群中启动的每个 Pod 一起部署一个 Envoy 代理,或者与在虚拟机上运行的服务一同运行。
[*]Ambient 模式,它使用每个节点的四层代理,并且可选地使用每个命名空间的 Envoy 代理来实现七层功能。
2. 安装Istio

安装Istio之前我们需要有一个Kubetnetes集群,自行部署一个集群即可
我是用Istioctl方式去安装,也可以使用helm安装,自行查阅官方文档即可
2.1 环境

k8s版本IP地址1.28.2192.168.200.1562.2 得到二进制文件

由于二进制压缩包是在github上的,所以国内下载会很慢甚至是无法下载,所以我这里使用了我自己的github下载代理
# wget https://github.030814.xyz/https://github.com/istio/istio/releases/download/1.25.0/istio-1.25.0-linux-amd64.tar.gz等待下载结束,版本可以更换为自己想安装的版本
然后解压文件,并移动二进制文件到环境变量下
# tar -zxvf istio-1.25.0-linux-amd64.tar.gz -C /opt
# cd /opt/istio-1.25.0/
# mv bin/istioctl /usr/local/bin/2.3 安装istio

我们现在可以使用istioctl来安装了
# cd
# istioctl install --set profile=demo 这里由于我的是学习环境,所以我安装的是demo,demo会安装所有的组件,如果是生产环境建议安装default,缺什么组件再自行安装即可,等待安装完成即可
❗ detected Calico CNI with 'bpfConnectTimeLoadBalancing=TCP'; this must be set to 'bpfConnectTimeLoadBalancing=Disabled' in the Calico configurationThis will install the Istio 1.25.0 profile "demo" into the cluster. Proceed? (y/N) y✔ Istio core installed ⛵️                                                                                                                                     ✔ Istiod installed
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 使用Istio灰度发布