使用阿里云容器服务部署Bookinfo示例
Bookinfo应用介绍
Bookinfo是一个样例应用,用来演示多种 Istio 特性,它由四个单独的微服务构成:
-
productpage
:productpage
微服务会调用details
和reviews
两个微服务,用来生成页面。 -
details
:这个微服务包含了书籍的信息。 -
reviews
:这个微服务包含了书籍相关的评论。它还会调用ratings
微服务。 -
ratings
:ratings
微服务中包含了由书籍评价组成的评级信息。
reviews
微服务有 3 个版本:
- v1 版本不会调用
ratings
服务。 - v2 版本会调用
ratings
服务,并使用 1 到 5 个黑色星形图标来显示评分信息。 - v3 版本会调用
ratings
服务,并使用 1 到 5 个红色星形图标来显示评分信息。
下图展示了这个应用的端到端架构
部署应用
部署istio
登录容器服务控制台,左侧导航中选择服务网格-Istio管理,选择需要安装Istio的集群,使用默认配置点击部署Istio
成功部署Istio后,可以看到下方Sidecar 自动注入设置。选择一个命名空间,开启Sidecar自动注入
完成后可以看到istio-test命名空间下新增标签istio-injection:enabled
部署相关服务
bookinfo使用的服务yaml文件地址 https://raw.githubusercontent.com/istio/istio/release-1.2/samples/bookinfo/platform/kube/bookinfo.yaml
这里我们使用控制台分别部署productpage,detail,rating及reviews服务的两个版本(v1,v2)
productpage服务
选择集群,命名空间
输入镜像名称,版本,设置端口
服务(service)相关配置
创建完成
参考上述步骤分别创建details,ratings,reviews(v1)三个服务。
创建完成后,等待所有的service和 pod 都已经正常启动。
创建服务网关
服务网关可以将Istio的功能(如:监控和路由规则)应用到进入集群的流量。在服务网格目录下选择服务网关,点击新建。
然后,可以将虚拟服务绑定到网关,以控制进入集群的流量。点击虚拟服务可以看到虚拟服务列表,
点击productpage的服务网关绑定,可以看到如下弹窗,选择创建好的服务网关bookinfo-gateway,确定后完成绑定。
进入服务网关列表,点击bookinfo-gateway中istio-ingressgateway服务地址,输入路由/productpage可以看到如下页面
部署reviews-v2 版本
点击虚拟服务reviews,进入详情页,在版本管理栏点击增加灰度版本
输入版本号进入下一步,输入镜像名称,版本,设置端口。
下一步,设置灰度策略。这里选择基于流量比例的发布策略,v1,v2版本流量各50%。设置完成后点击创建。
待pod启动完成后,刷新url,会看到v2版本的UI(由于v1、v2流量比例各50%,可能要多刷新几次)
最后,我们可以使用压测工具(如siege)模拟多次访问,再通过kiali观察流量拓扑。我们在安装istio的时候已经默认安装了kiali,只需要在路由中新建一个ingress就可以方便的进行访问。
左侧导航中选择路由与负载均衡->路由,选择安装好istio的集群,命名空间选择istio-system,点击创建并按如下填写相关内容
创建完成后会在Ingress列表看到kiali的访问地址
进入kiali界面(用户名密码默认为admin),可以看到流量拓扑如图。
小结
本文介绍了使用阿里云容器服务部署运行bookinfo示例的过程。接下来我们还可以用它来体验Istio相关特性,包括智能路由,错误注入,流量控制等。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Container及其内部进程监控剖析
目前市场上的虚拟化技术种类很多,例如moby(docker)、LXC、RKT等等。在带来方便应用部署和资源充分利用的好处的同时,如何监控相应Container及其内部应用进程成为运维人员不可避免遇到的新情况。UAV.Container从虚拟化技术的基础原理和Linux操作系统的内核特性出发,得到Container容器和内部进程的各维度监控数据,使无论是虚拟机或物理机运维人员,还是业务运维人员角度,都能得到合适的监控维度。 虚拟化技术从基础原理上主要是cgroups、namespace和file system的应用,而操作系统作为cgroup和namespace根节点,无论在container里启动何种应用,从内核角度上来说,肯定在操作系统有其一定的特征和表现形式。我们需要做的就是对这些特征做加工处理,以得到相应的监控数据。 下面我们以docker技术举例,其他虚拟化技术类似。 一、Container ID Container ID是一个Container的唯一标识。从容器监控的角度我们需要能得到该进程在哪个Container里运行。在操作系统层面,进程的cgroup的挂载情况就能有所体...
- 下一篇
阿里云服务器与普通服务器区别在哪?如何选择?
阿里云服务器与普通的IDC机房或服务器厂商相比,阿里云服务器ECS具有高可用性、安全性和弹性优势。魏艾斯博客从以上几个方面详细说下这二者的区别及如何选择。 注册账号之前点我领取阿里云千元代金券,用于购买阿里云上百款云产品时可以用来抵用,节约财务成本。 一、高可用性 阿里云比普通IDC机房使用更严格的IDC标准、服务器准入标准以及运维标准,保证云计算基础框架的高可用性、数据的可靠性以及云服务器的高可用性。也就是稳定性比较高。 阿里云提供的每个地域都存在多可用区。当您需要更高的可用性时,可以利用多可用区部署方案搭建主备服务或者双活服务。对于面向金融领域的两地三中心的解决方案,您也可以通过多地域和多可用区搭建出更高的可用性服务。其中包括容灾、备份等服务,阿里云都有非常成熟的解决方案。如果某个可用区出现问题了,可以快速切换到好用的可用区上去,业务不停机。 提升可用性的产品和服务。包括云服务器ECS、负载均衡SLB、关系型数据库RDS以及数据迁移服务DTS等。行业合作伙伴以及生态合作伙伴。帮助您完成更稳定的架构,并且保证服务的持续性。多种多样的培训服务。让您从业务端到底层服务端,在整条链路上实现...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度