目录
- 灰度发布
- 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. 模拟灰度发布
- 5. Kiali
灰度发布
什么叫灰度发布?
灰度发布也就是在我们发布新版本的业务的时候,不是直接将所有流量切到新版本上去,而是新旧版本共存,并且将流量逐步的从旧版本切换到新版本的过程叫做灰度发布
灰度发布的好处
灰度发布对比全量发布的好处是,先由一少部分用户体验新版本,观察新版本的情况,有没有出现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下载代理- [root@master ~]# wget https://github.030814.xyz/https://github.com/istio/istio/releases/download/1.25.0/istio-1.25.0-linux-amd64.tar.gz
复制代码 等待下载结束,版本可以更换为自己想安装的版本
然后解压文件,并移动二进制文件到环境变量下- [root@master ~]# tar -zxvf istio-1.25.0-linux-amd64.tar.gz -C /opt
- [root@master ~]# cd /opt/istio-1.25.0/
- [root@master istio-1.25.0]# mv bin/istioctl /usr/local/bin/
复制代码 2.3 安装istio
我们现在可以使用istioctl来安装了- [root@master istio-1.25.0]# cd
- [root@master ~]# istioctl install --set profile=demo
复制代码 这里由于我的是学习环境,所以我安装的是demo,demo会安装所有的组件,如果是生产环境建议安装default,缺什么组件再自行安装即可,等待安装完成即可
[code]❗ 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
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |