gpt4 book ai didi

云原生架构(三)简单样例

转载 作者:我是一只小鸟 更新时间:2022-12-16 22:31:37 24 4
gpt4 key购买 nike

  。

正文 。

系列目录 。

云原生架构(一)原理概览 。

云原生架构(二)环境搭建 。

云原生架构(三)简单样例 。

云原生架构(四)源码详解 。

云原生架构(五)总结提高 。

回到顶部

1、目标&准备

1.1 目标

前两节,我们学习了云原生架构Istio的原理概览、环境搭建。要快速熟悉一个技术架构,最快的方式是先跑起来。这一节我们 以Istio服务网格的能力,验证微服务间的流量管理、可观测性 .

注:本节参照Istio官网--任务相关章节实现, 飞机票.

1.2 准备

我们以Istio官方自带的bookinfo(第二节Istio自带的samples)作为样例工程,来做流量管理和观测性的测试。样例工程Bookinfo 应用分为四个单独的微服务:

  • productpage . 这个微服务会调用 details reviews 两个微服务,用来生成 主页面
  • details . 这个微服务中包含了书籍的 详情 信息。
  • reviews . 这个微服务中包含了书籍相关的 评论 。分3个版本,V1啥都不调用; V2 调用 ratings ,返回 黑色星星 V3 调用 ratings ,返回 红色星星
  • ratings . 这个微服务中包含了由书籍评价组成的 评级 信息。

应用架构如下:

前面一节,我们命令行打开kiali服务监控:

                          
                             istioctl dashboard kiali 
                          
                        

访问几次“书主页”:http://127.0.0.1/productpage,再刷新kiali监控.

回到顶部

2、功能测试

2.1 强制流量路由到指定版本

运行以下命令以应用 Virtual Service:

                          kubectl apply -f samples/bookinfo/networking/
                          
                            virtual
                          
                          -service-all-v1.yaml
                        

我们想要把 bookinfo的服务流量都路由到V1版本 ,来看下yaml配置内容:

                          apiVersion: networking.istio.io/
                          
                            v1alpha3
kind: VirtualService
metadata:
  name: productpage
spec:
  hosts:
  
                          
                          -
                          
                             productpage
  http:
  
                          
                          -
                          
                             route:
    
                          
                          -
                          
                             destination:
        host: productpage
        subset: v1

                          
                          ---
                          
                            
apiVersion: networking.istio.io
                          
                          /
                          
                            v1alpha3
kind: VirtualService
metadata:
  name: reviews
spec:
  hosts:
  
                          
                          -
                          
                             reviews
  http:
  
                          
                          -
                          
                             route:
    
                          
                          -
                          
                             destination:
        host: reviews
        subset: v1

                          
                          ---
                          
                            
apiVersion: networking.istio.io
                          
                          /
                          
                            v1alpha3
kind: VirtualService
metadata:
  name: ratings
spec:
  hosts:
  
                          
                          -
                          
                             ratings
  http:
  
                          
                          -
                          
                             route:
    
                          
                          -
                          
                             destination:
        host: ratings
        subset: v1

                          
                          ---
                          
                            
apiVersion: networking.istio.io
                          
                          /
                          
                            v1alpha3
kind: VirtualService//虚拟服务
metadata:
  name: details//属性-名称:details
spec:
  hosts:
  
                          
                          -
                          
                             details
  http:
  
                          
                          -
                          
                             route:
    
                          
                          -
                          
                             destination://路由到 details域名的v1子集
        host: details
        subset: v1 

                          
                          ---
                        
                        
                            VirtualService用以指定一组流量路由规则  
                          。例如从:A(hosts)->B(host+subset)。打开http://127.0.0.1/productpage访问:
                          

如上图,Reviews里面没有星星,按照项目介绍,应该是访问V1版本的服务。多刷新几次,一直都是这个,不会切换成星星(V2、V3)了.

打开kiali监控->Graph->namespace选择default,看到服务流量全部访问的是V1版本的。如下图:

ok,到这里,《强制流量路由》验证成功! 。

2.2 流量转移

 上面我们尝试把流量强制转移到V1版本,这一次,我们尝试把reviews服务, 50%流量导入v1,50%导入v3 ,命令如下:

                          kubectl apply -f samples/bookinfo/networking/
                          
                            virtual
                          
                          -service-reviews-
                          
                            50
                          
                          -v3.yaml
                        

内容如下:

                          apiVersion: networking.istio.io/
                          
                            v1alpha3
kind: VirtualService
metadata:
  name: reviews
spec:
  hosts:
    
                          
                          -
                          
                             reviews
  http:
  
                          
                          -
                          
                             route://  v1 50%   v3  50%
    
                          
                          -
                          
                             destination:
        host: reviews
        subset: v1
      weight: 
                          
                          
                            50
                          
                          
    -
                          
                             destination:
        host: reviews
        subset: v3
      weight: 
                          
                          
                            50
                          
                        

多访问几次bookinfo页面:http://127.0.0.1/productpage,发现reviews评价内容,在红色星星(V3)和无星星(V1)之间跳转。查看kiali监控,如下图:

如上图,reviews服务,v1和v3,基本就在50%左右跳转。验证通过! 。

  。

最后此篇关于云原生架构(三)简单样例的文章就讲到这里了,如果你想了解更多关于云原生架构(三)简单样例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com