Archive | Istio RSS feed for this section

Istio灰度发布实践 –《云原生服务网格Istio》书摘05

本节书摘来自华为云原生技术丛书《云原生服务网格Istio:原理,实践,架构与源码解析》一书实践篇的第10章灰度发布实践。更多内容参照原书,或者关注容器魔方公众号。作者:star

目前一些大型的互联网或金融行业的公司,都有自己的发布系统。但是对一些初创公司,从零开始构建这样一套系统并不简单,有一定的门槛。利用Istio提供的流量路由功能可以很方便地构建一个流量分配系统来做灰度发布和AB测试。

预先准备:

将所有流量都路由到各个服务的v1版本

在开始本章的实践前,先将frontend、advertisement和forecast服务的v1版本部署到集群中,命名空间是weather,执行如下命令确认Pod成功启动:

对每个服务都创建各自的VirtualService和DestinationRule资源,将访问请[......]

阅读全文

Tags: ,

Comments { 0 }

Sidecar Injector自动注入的原理 –《云原生服务网格Istio》书摘04

本节书摘来自华为云原生技术丛书《云原生服务网格Istio:原理,实践,架构与源码解析》一书原理篇的第6章透明的Sidecar机制,6.1.1小节Sidecar Injector自动注入的原理。更多内容参照原书,或者关注容器魔方公众号。

Sidecar注入

我们都知道,Istio的流量管理、策略、遥测等功能无须应用程序做任何改动,这种无侵入式的方式全部依赖于Sidecar。应用程序发送或者接收的流量都被Sidecar拦截,并由Sidecar进行认证、鉴权、策略执行及遥测数据上报等众多治理功能。

如图6-1所示,在Kubernetes中,Sidecar容器与应用容器共存于同一个Pod中,并且共享同一个Network Namespaces,因此Sidecar容器与应用容器共享同一个网络协议栈,这也是Sidecar能够通过iptables拦截应用进出口流量的根本原因。

 istio-sidecar-injection-of-cloudnativeistio-04-01

图6-1[......]

阅读全文

Tags: ,

Comments { 0 }

Istio灰度发布 –《云原生服务网格Istio》书摘03

本节书摘来自华为云原生技术丛书《云原生服务网格Istio:原理,实践,架构与源码解析》一书原理篇的第3章非侵入的流量治理,第3.1.4小节灰度发布原理。更多内容参照原书,或者关注容器魔方公众号。

3.1.4  灰度发布

在新版本上线时,不管是在技术上考虑产品的稳定性等因素,还是在商业上考虑新版本被用户接受的程度,直接将老版本全部升级是非常有风险的。所以一般的做法是,新老版本同时在线,新版本只切分少量流量出来,在确认新版本没有问题后,再逐步加大流量比例。这正是灰度发布要解决的问题。其核心是能配置一定的流量策略,将用户在同一个访问入口的流量导到不同的版本上。有如下几种典型场景。

1.蓝绿发布

蓝绿发布的主要思路如图3-13所示,让新版本部署在另一套独立的资源上,在新版本可用后将所有流量都从老版本切到新版本上来。当新版本工作正常时,删除老版本;当新版本工作有问题时,快速切回到老版本,因此[......]

阅读全文

Tags: ,

Comments { 0 }

Pilot的设计亮点–《云原生服务网格Istio》书摘02

本节书摘来自华为云原生技术丛书《云原生服务网格Istio:原理,实践,架构与源码解析》一书架构篇的第14章司令官Pilot,第4节Pilot的设计亮点。更多内容参照原书,或者关注容器魔方公众号。作者:中虎

作为Istio数据面的司令官,Pilot控制中枢系统,它的性能好坏直接影响服务网格的大规模可扩展、配置时延等。如果Pilot的性能低,配置生成效率也低,那么它将难以管理大规模服务网格。比如,服务网格拥有成千上万服务及数十万服务实例,配置生成的效率很低,难以满足服务及Config更新带来的配置更新需要,将会造成Pilot负载很高,用户体验很差。Istio社区网络工作组很早就已经意识到这个问题,并在近期的版本中相继做了很多优化工作,本节选取具有代表性的4个优化点进行讲解。

14.4.1  三级缓存优化

缓存模型是软件系统中最常用的一种性能优化机制,通过缓存一定的资源,减少CPU利用[......]

阅读全文

Tags: ,

Comments { 0 }

Istio服务熔断 –《云原生服务网格Istio》书摘01

本节书摘来自华为云原生技术丛书《云原生服务网格Istio:原理,实践,架构与源码解析》一书中的第3章非侵入的流量治理,第3节Istio流量治理的原理3.1.2小节服务熔断。更多内容参照原书,或者关注容器魔方公众号。

熔断器在生活中一般指可以自动操作的电气开关,用来保护电路不会因为电流过载或者短路而受损,典型的动作是在检测到故障后马上中断电流。“熔断器”这个概念延伸到计算机世界中指的是故障检测和处理逻辑,防止临时故障或意外导致系统整体不可用,最典型的应用场景是防止网络和服务调用故障级联发生,限制故障的影响范围,防止故障蔓延导致系统整体性能下降或雪崩。

如图3-6所示为级联故障示例,可以看出在4个服务间有调用关系,如果后端服务recommendation由于各种原因导致不可用,则前端服务forecast和frontend都会受影响。在这个过程中,若单个服务的故障蔓延到其他服务,就会[......]

阅读全文

Tags: ,

Comments { 0 }