一、简介
在上一篇文章中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官网
评论前必须登录!
注册