Istio流量管理之Ingress Gateway

Istio Ingress Gateway是允许外部流量进入Istio服务网格的边缘服务。其比Kubernetes Ingress更具扩展性。且使用Istio Ingress Gateway,使得Istio对于入口流量同样具有策略控制能力及可观察性。

阅读更多

Istio流量管理之流量镜像

本文介绍一下Istio的流量镜像功能,即使用Istio可以将某一服务的实时流量拷贝一份并镜像到另一个服务。该特性对线上调试特别有用。 本文使用httpbin样例来做测试,首先部署两个版本的httpbin服务,然后将请求流量都打到v1,最后使用流量镜像功能将打到v1的流量同时拷贝一份到v2。 关于Istio安装等环境准备,请参阅“Istio安装使用”。 1 httpbin样例部署 部署httpbin-v1,且已开启访问日志。

阅读更多

Istio流量管理之熔断

熔断是创建弹性微服务应用的重要特性,使用熔断可以对并发连接太多,请求过频等做出主动防御,避免服务链条因单一故障问题而出现雪崩效应。 因熔断设置针对的是具体的目标主机,所以Istio使用Destination Rule来进行配置。 本文使用Istio自带的httpbin样例来设定熔断配置,然后使用fortio客户端模拟并发请求来触发熔断。关于Istio安装等环境准备,请参阅“Istio安装使用”。 1 httpbin样例部署 httpbin是一个专门用来做HTTP请求测试的服务。

阅读更多

Istio流量管理之请求超时

可以使用Istio在路由中设置请求超时时间。下面使用Bookinfo样例测试一下。 关于环境准备,请参阅“Istio安装使用”。 本文,我们将使用v2版本的reviews,然后为ratings注入响应延迟,最后修改reviews的超时时间来查看productpage的变化。 开始前,先配置默认的Destination Rule。

阅读更多

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。

阅读更多