前言

在公有云方面,华为云已经率先将 Istio 作为产品投入到公有云中进行商业应用中,保持和开源istio高度兼容,做了商业化的运维管理界面,同时进行了性能优化。这里我们做一次验证测试。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

 

Bookinfo 应用

这里我们部署一个demo,由四个单独的微服务构成**(注意这里的四个微服务是由不同的语言编写的)**,用来演示多种 Istio 特性。这个应用模仿在线书店的一个分类,显示一本书的信息。页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。

 

Bookinfo 应用分为四个单独的微服务:

 

  • productpage:productpage微服务会调用details和reviews两个微服务,用来生成页面。

  • details:这个微服务包含了书籍的信息。

  • reviews:这个微服务包含了书籍相关的评论。它还会调用 ratings 微服务。

  • ratings:ratings 微服务中包含了由书籍评价组成的评级信息。

 

这里主要使用reviews来演示 Istio 特性,reviews微服务有 3 个版本:

 

  • v1 版本不会调用ratings服务。

  • v2 版本会调用ratings服务,并使用 1 到 5 个黑色星形图标来显示评分信息。

  • v3 版本会调用ratings服务,并使用 1 到 5 个红色星形图标来显示评分信息。

 

下图展示了这个应用的端到端架构。 

 

华为云和开源Istio运维管理对比样例应用部署 随笔 第1张

Istio 注入之前的 Bookinfo 应用

 

Bookinfo 是一个异构应用,几个微服务是由不同的语言编写的。这些服务对 Istio 并无依赖,但是构成了一个有代表性的服务网格的例子:它由多个服务、多个语言构成,并且 reviews 服务具有多个版本。

 

 

部署应用

这里 Istio 的安装部署就不在赘述了。

 

值得注意的是:如果使用的是开源K8s服务安装的 Istio ,要配置负载均衡。

 

在 Istio 中运行这一应用,无需对应用自身做出任何改变。我们只要简单的在 Istio 环境中对服务进行配置和运行,具体一点说就是把 Envoy sidecar 注入到每个服务之中。这个过程所需的具体命令和配置方法由运行时环境决定,而部署结果较为一致,如下图所示:

 

华为云和开源Istio运维管理对比样例应用部署 随笔 第2张

Bookinfo 应用

 

所有的微服务都和 Envoysidecar 集成在一起,被集成服务所有的出入流量都被 sidecar 所劫持,这样就为外部控制准备了所需的 Hook,然后就可以利用 Istio 控制平面为应用提供服务路由、遥测数据收集以及策略实施等功能。

下载安装

 

到 GitHub 中 istio 的 release 中下载相应版本的 istio包,下载后将 bin目录配置到环境变量 PATH中 export PATH="/istio/bin:$PATH",这里我们使用的是 istio 1.0.5版本

 

Bookinfo 这个应用就在samples/目录下

 

 

在华为云(CCE)上运行

 

华为云率先将 Istio 作为产品投入到公有云中进行商业应用,开通方式十分简单,只要在华为云CCE上创建集群,然后申请 Istio 公测即可。

 

为了方便测试Bookinfo 应用在华为云上提供了一键体验应用,点击即可省去刚刚那一系列的kubectl操作

 

       华为云和开源Istio运维管理对比样例应用部署 随笔 第3张

一键创建体验应用

       华为云和开源Istio运维管理对比样例应用部署 随笔 第4张

点击灰度发布即可

       华为云和开源Istio运维管理对比样例应用部署 随笔 第5张

创建金丝雀发布

       华为云和开源Istio运维管理对比样例应用部署 随笔 第6张

选择灰度发布的组件

       华为云和开源Istio运维管理对比样例应用部署 随笔 第7张

填写版本号

       华为云和开源Istio运维管理对比样例应用部署 随笔 第8张

选择镜像版本

       华为云和开源Istio运维管理对比样例应用部署 随笔 第9张

版本创建完成后配置灰度策略

       华为云和开源Istio运维管理对比样例应用部署 随笔 第10张

选择相应策略,策略下发即可

 

总的来说,华为云的Istio 确实已经是商业化应用,这里只是展示了部分灰度发布的功能。其他比如流量治理,流量监控等功能还没展示,这些功能做的十分细致,值得尝试。

 

参考

基于ISTIO服务网格的灰度发布

https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_0012.html

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄