Istio中提供了一个Bookinfo的例子来演示微服务之间的调用,那么如何在Knative中部署这个例子呢?本文将详细介绍Bookinfo微服务在Knative中的部署以及调用链的追踪信息。 BackgroundBookInfo这个示例应用程序由四个微服务组成。 Bookinfo的应用架构图如下:productpage微服务:调用details微服务和reviews微服务生成页面细节微服务:包含图书评论的详细信息微服务:提供书评功能,也可以调用评分微服务对图书进行评分:提供图书评分功能。另外,目前有三个版本的点评微服务:v1不会调用评分微服务,v2调用评分微服务,v3调用评分微服务有1~5颗黑星,每个评分显示为1~5颗红星。准备部署Knative。 参考:阿里云容器服务部署Knative已启动链接跟踪追踪分析服务。参考:要在Knative上实现跟踪分布式跟踪部署,首先要启动Istio Sidecar注入。我们把istio-injection=enabled的标签放在默认命名空间:kubectl标签命名空间默认istio-injection = enabled要部署Bookinfo Knative Service服务,只需通过yaml文件一键拉起, book info . YAML:API version:serving.knative.dev/ v1 kind:service metadata:name:details-v1命名空间:default spec:template:spec:containers:-image:registry.cn-hangzhou.aliyuncs.co m/k native-sample/examples-book info-details-v1:1 . 15 . 0端口:-container port:9080-API version:serving.knative.dev/ v1 kind:service metadata:name:ratings-v1命名空间:default spec:template:spec:containers:-image:registry.cn-hangzhou.aliyuncs.co m/k native-sample/examples-book info-ratings-v1:1 . 15 . 0 示例-book info-reviews-v2:v1-阿里云端口:-container port:9080 env:-name:SERVICES _ DOMAIN value:default . SV c . cluster . local-name:RATINGS _ HOSTNAME value:RATINGS-v1-API version:serving.knative.dev/ v1 kind:service metadata:name:reviews-v3命名空间:default spec:template:spec:containers:-image:registry.cn-hangzhou.aliyuncs.co m/k native-sample/examples-book info-reviews-v3:v1-阿里云端口:-container port:9080 env:-name:SERVICES _ DOMAIN value:default productpage:v1-阿里云端口:-container port:9080 env:-name:SERVICES_DOMAIN Value:default . SVC . cluster . local-name:DETAILS _ HOSTNAME Value:RATINGS-v1-name:REVIEWS _ HOSTNAME Value:REVIEWS-v2这里有几点需要说明:product page环境变量设置:SERVICES _ DOMAIN:微服务是通过内部访问域名直接访问的,在这里设置域名后缀为:default . SVC . cluster . local DETAILS _ HOSTNAME:Set to DETAILS-v1 rating 查看v2、v3环境变量设置 因为v2和v3需要访问rate进行评分,所以需要设置相应的环境变量:SERVICES_DOMAIN:微服务是通过内部访问域名直接访问的,在这里设置域名后缀为:default . SVC . cluster . local ratings _ hostname:设置为ratings-v1。执行命令:# kubectl apply -f bookinfo.yaml查看执行结果:# kube CTL get kserviceproductpage-v1 http://productpage-v1.default.knative.kuberun.com product page-v1-S4 drn product page-v1-S4 drn真实评分-v1 http://ratings-v1.default.knative.kuberun.com评分-v1-bsvb2评分-v1-bsvb2真实详情-v1 http://details-v1.default.knative.kuberun.com详情-v1-dj47j详情-v1-dj47j真实点评-v1 http://reviews-v1.default.knative.kuberun.com点评-v1-q5wz4点评-v1-v1q,表示服务访问正常:微服务调用链。一般客户更关注微服务中的呼叫链信息。通过跟踪分析服务,我们可以方便地查看服务调用链。 首先,让我们进行一次服务访问。在productpage页面,点击普通用户可以看到图书详情和书评的信息。 Productpage服务会依次调用:详情、评论、评分服务。接下来登录跟踪分析服务控制台,选择【应用列表】,点击productpage.default,选择调用链分析页签,可以查看以上服务调用链信息结论的详细信息。我们可以看到,在Knative中可以轻松实现微服务部署,结合跟踪分析服务可以满足部署生产级服务的需求。 阅读此文为云起社区原创内容,未经允许不得转载。