无需本地环境,云上一键体验Istio 1.0

Istio是什么?


Istio 1.0版本于8月1号凌晨准点发布,核心特性已支持上生产环境,各大微信公众号、博客纷纷发文转载。那么Istio到底是什么?能解决问题什么? 

  • Istio是Google继Kubernetes之后的又一开源力作,主要参与的公司包括Google,IBM,Lyft等,它提供了完整的非侵入式的微服务治理解决方案,解决微服务的管理、网络连接以及安全管理等应用网络治理问题

  • 它无需修改任何代码就能够实现微服务的负载均衡,服务与服务之间的认证授权以及流量监控和治理。从整个基础设施角度上看,可以将它理解为PaaS平台上的一个面向微服务管理平台的补充。

无需本地环境,云上一键体验Istio 1.0


Istio与Kubernetes


Kubernetes提供了部署、升级和有限的运行流量管理能力;利用service的机制来做服务注册和发现、转发,通过kubeproxy有一定的转发和负载均衡能力,但并不具备上层如熔断、限流降级、调用链治理等能力。

Istio则很好的补齐了k8s在微服务治理上的这部分能力,同时是基于k8s构建的,但不是像SpringCloud Netflix等完全重新做一套。Istio是谷歌微服务治理上的非常关键的一环。

无需本地环境,云上一键体验Istio 1.0


云上一键安装Istio 1.0 + K8S 1.9


目前业界大部分云平台上所提供的Istio能力均需要自己负责istio包的下载、配置、安装等,还是比较费劲的。多个平台对比后发现华为云CCE服务这里深度集成了Istio服务网格,为简单起见,下方以华为云为例:


一键安装kubernetes + Istio

登录CCE控制台,在左侧导航栏中单击“资源管理 > 虚拟机集群”,在“虚拟机集群”界面,单击“创建Kubernetes集群”,按照向导式逐步配置:


图1:创建Kubernetes集群


图2:使能服务网格,一键式安装Istio并自动使能应用sidecar注入:


其他集群创建步骤、配置不变。


一键升级至Istio1.0

由于当前系统默认安装0.8版本,提供的1.0升级包仅供试用,完整能力集成据内部消息将在八月中旬正式推出,所以这里需要再做一步升级操作:


进入cce模板市场-官方模板,查看对应集群下的isito-master实例,点击升级:


升级成功:


无侵入、配置式实现应用灰度发布


应用部署

为简单起见,我们通过cce的应用管理提前把应用部署好,拓扑结构以及应用信息如下:


这里以Istio社区的bookinfo样例为例,其包含ProductPage、Reviews、Details、Ratings这4个微服务,拓扑结构以及网络访问信息如下:

创建好的应用信息如下:


灰度发布

在页面上只需要两步即可以实现应用的快速灰度发布:(如下视频所示)



1、配置版本号(系统默认选择最新版本镜像)


2、配置灰度策略(以百分比为例)


对review服务进行灰度发布后的流量走向:

review v2版本调用ratings服务获取星级评价,并将20%流量分流至本版本上


访问productpage,可以看到部分请求可以显示星级评价,部分请求仍然是老版本的显示效果,部分访问结果为带有星级评价特性的页面:

无需本地环境,云上一键体验Istio 1.0


一键式版本切换


点击“接管所有流量”:

无需本地环境,云上一键体验Istio 1.0


现在所有访问reviews的流量都导向v2版本,访问productpage,所有的请求都会呈现星级评价特性:

无需本地环境,云上一键体验Istio 1.0


Istioctl命令行工具


目前华为云portal上开放的流量治理策略还相对有限,按照官介绍,需要从Istio命令行工具入口配置。进入”资源管理“->“虚拟机集群“,选择对应集群,可以看到Istio命令行的下载和使用指导:

无需本地环境,云上一键体验Istio 1.0


上一篇:Istio架构详解


下一篇:Istio的流量管理(实操一)(istio 系列三)