分享交流
合作共赢!

Istio基础使用方法总结【二】——安装bookinfo(用于演示istio功能特性)

一、简介

在上一篇文章中Istio基础使用方法总结【一】——安装部署我们安装了istio组件,我们需要演示和验证istio的常用功能,在这之前我们选哟用官方提供的一套应用bookinfo来演示和验证。关于这套应用,官方介绍如下(摘自istio官方):

这个示例部署了一个用于演示多种 Istio 特性的应用,该应用由四个单独的微服务构成。

如果您使用入门安装了 Istio,说明您已经安装了 Bookinfo,您可以跳过这些步骤。

这个应用模仿在线书店的一个分类,显示一本书的信息。 页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。

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

  • productpage. 这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。
  • details. 这个微服务中包含了书籍的信息。
  • reviews. 这个微服务中包含了书籍相关的评论。它还会调用 ratings 微服务。
  • ratings. 这个微服务中包含了由书籍评价组成的评级信息。

reviews 微服务有 3 个版本:

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

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

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

二、安装

1.给default名称空间打标签,使其内的所有pod自定注入istio的sidecar porxy

$ kubectl label namespace default istio-injection=enabled

2.切换到istio目录(istio Github提供的仓库),开始部署应用
$ kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

note: 如果为设置自动注入,手动注入sidecar参考如下命令

$ kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)

上面的命令会启动全部的四个服务,其中也包括了 reviews 服务的三个版本(v1、v2 以及 v3)。

3.检查相关资源是否创建成功

$ kubectl get pods

$ kubectl get services

4.检查bookinfo应用是否正常运行

$ kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage | grep -o "<title>.*</title>"

<title>Simple Bookstore App</title>

如上显示出“<title>Simple Bookstore App</title>”信息说明bookinfo正常运行。

三、部署ingress gateway

如果想要从外部访问bookinfo应用,比如浏览器等方式,需要部署istio提供的ingress gateway.

$ kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml

Note: 如平台支持LoadBalancer的话,可以直接通过ELB来访问bookinfo应用。如果不支持,想要使用node port来访问的话,可以进行配置,参考istio官网

赞(0) 打赏
未经允许不得转载:琼杰笔记 » Istio基础使用方法总结【二】——安装bookinfo(用于演示istio功能特性)

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏