Istio流量管理之TCP流量转移

在上文“Istio流量管理之流量转移”中,我们使用Istio为7层HTTP应用作了流量按比例分配测试。本文使用Istio自带的tcp-echo样例对4层TCP应用作一下测试。 关于Istio安装等环境准备,请参阅“Istio安装使用”。 1 tcp-echo源码解析 tcp-echo是一个4层应用。其启动后会一直监听所暴露的端口,并等待TCP连接,连接成功后提供ping/pong请求响应。从源码可以看到,其接收到一串字符后会拼上一个前缀并返回给客户端。

阅读更多

Istio流量管理之流量转移

在日常的持续部署中,我们一般使用滚动升级的方式来进行微服务升级。若使用Kubernetes容器编排平台进行微服务滚动升级,其一般通过控制实例数的方式来实现。将旧版本下线,将新版本启动,新实例健康检查通过后,统一将流量打到新版本。 而使用Istio,不用控制实例数,且可以更细粒度的控制流量打到各个版本的百分比,从而实现按比例将流量逐渐迁移到新版本来实现升级。 下面使用Bookinfo样例看一下Istio的流量转移如何使用。我们知道reviews有三个版本,假定我们想从v1版本升级到v3版本。(关于Istio的安装及Bookinfo样例的部署,请参看上文“Istio安装使用”) 首先,配置默认的Destination Rule。

阅读更多

2020 年終總結

2020馬上就要結束了,總結2020,于國家于自己都是不平凡的一年。 年初,疫情肆虐,讓每個人都心驚膽戰。可敬的是,我們的民族,每當關鍵時刻,總有人不畏艱險,迎難而上,帶領人們走出困境。 于自己而言,2020將是一生中都難忘的一年:在這一年中,遇到一些事,明白一些道理。 這一年,太太生產,女兒出生,帶給我不一樣的人生經歷。更重要的是,鞭策我承擔起做一個好丈夫好父親的責任。 這一年,身體經歷一次非同尋常的考驗,皆因自己多年的不良習慣所致。磨礪我重新審視自己,審視人生。塞翁失馬,焉知非福,也因此結識中醫,結識傳統文化。解決人生的種種問題,皆應內求。—— 這是我至此所明白的最重要的人生道理。而給我這把鑰匙的人即是于網絡空間相識的張慶祥導師,通過導師對『論語』,『心經』,『陽明心學』的解讀,讓我明白自己出問題的根本——即未順應天道。感歎古人的非凡智慧,中華民族的偉大。

阅读更多

Istio流量管理之故障注入

在微服务架构中,若一个服务不可用,会不会导致调用其API的上游服务也不可用,上游服务有没有针对该种情形做容错处理,这对应用的整体可用性来说是很关键的。Istio可以在对微服务无侵入的情况下来模拟其发生故障,以帮助我们测试应用整体的容错能力。 Istio主要使用Virtual Service提供两种故障注入能力:响应延迟与服务中止。 响应延迟 用来模拟被调用服务在高负载情况下造成响应延迟。

阅读更多

Istio流量管理之请求路由

在上文“Istio安装使用”中,我们对Istio进行了安装,并对Bookinfo样例进行了部署测试。本文接着上文,对Istio流量管理中的请求路由进行概念学习及样例测试。 我们知道,Istio通过Envoy数据面拦截了所有服务实例的进出流量。这样基于Istio服务网格即可以实现诸多常规方式难以实现的流量管理策略,诸如灰度发布,A/B测试,按比率分流等。 Istio主要提供两个通过YAML配置的自定义资源来实现流量管理:Virtual Service及Destination Rule。这样即做到流量管理与上游请求服务及下游被请求服务解耦。Virtual Service主要用来配置流量如何流动(即定义符合哪些规则的流量打到哪些服务子集上),而Destination Rule则主要用来定义具体的服务子集。

阅读更多