istio

编程入门 行业动态 更新时间:2024-10-11 03:16:20

<a href=https://www.elefans.com/category/jswz/34/1761361.html style=istio"/>

istio

在前面我们成功搭建并部署了 Istio 及其其 Bookinfo 示例应用:

目前搭建 Bookinfo 应用我们只用到了下面两个资源文件:

samples/bookinfo/platform/kube/bookinfo.yaml
samples/bookinfo/networking/bookinfo-gateway.yaml

前者就是通常的 Kubernetes 定义的 Deployment 和 Service 的资源清单文件,只是对定义的 Pod 注入了 sidecar 代理,后者定义了这个应用的外部访问入口gateway,以及应用内部 productpage 服务的 VirtualService 规则,而其他内部服务的访问规则还没有被定义。

现在访问应用界面并刷新,会看到 Reviews 有时不会显示评分,有时候会显示不同样式的评分,这是因为后面有3个不同的 Reviews 服务版本,而没有配置该服务的路由规则 route rule 的情况下,该服务的几个实例会被随机访问到,有的版本服务会进一步调用 Ratings 服务,有的不会。

到这里我们已经接触到了 Istio 中两个非常重要的流量管理的资源对象了:

VirtualService 是用来在 Istio 中定义路由规则,控制流量路由到服务上的各种行为。

Gateway 我为 HTTP/TCP 流量配置负载均衡器的。 

  • 不同服务版本访问规则

对 Reviews 服务添加一条路由规则,启用 samples/bookinfo/networking/virtual-service-reviews-v3.yaml 定义的 VirtualService 规则,内容如下:

[root@master istio-1.9.1]# cat samples/bookinfo/networking/virtual-service-reviews-v3.yaml 
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: reviews
spec:hosts:- reviewshttp:- route:- destination:host: reviewssubset: v3

这样,所有访问 reviews 服务的流量就会被引导到 reviews 服务对应的 subset 为 v3 的 Pod 中。启用这条规则:

[root@master istio-1.9.1]# kubectl apply -f  samples/bookinfo/networking/virtual-service-reviews-v3.yaml
virtualserviceworking.istio.io/reviews created
[root@master istio-1.9.1]# kubectl get virtualservices
NAME       GATEWAYS               HOSTS         AGE
bookinfo   ["bookinfo-gateway"]   ["*"]         6d22h
reviews                           ["reviews"]   13s

我们可以看到 reviews 的 VirtualService 已经创建成功了,此时我们去刷新应用的页面,发现访问 Reviews 失败了:

这是因为我们还没有创建 DestinationRule 对象,DestinationRule 对象是 VirtualService 路由生效后,用来将 VirtualService 中指定的 subset 与对应的 Pod 关联起来

更多推荐

istio

本文发布于:2024-03-09 22:59:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1726378.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:istio

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!