第二十章 九析带你轻松完爆 Istio - virtual service 简述

网友投稿 278 2022-10-29

第二十章 九析带你轻松完爆 Istio - virtual service 简述

系列文章:总目录索引:九析带你轻松完爆 istio 服务网格系列教程

目录

1 前言

2 邀约

3 virtual service 简述

4 virtual service 样例

4.1 jiuxi-busybox.yaml

4.2 jiuxi-deployment.yaml

4.3 jiuxi-svc.yaml

4.4 jiuxi-vs.yaml

5 Istio 注入

6 登录客户端验证规则生效

7 总结

1 前言

2 邀约

3 virtual service 简述

在前面的章节中已经讲过了 virtual service 的概念和理论了。这里再做一个赘述,virtual service 是虚拟服务,它并非真正的 k8s service,首先不能通过 kubectl get svc 的方式找到它,其次在服务调用的时候也不会直接调用它,它就像 k8s service 背后的女人一样,紧紧握着 k8s service 的老二,让它乖乖按照自己的旨意将请求流量路由到网格内的特定目标。

如下是经常困扰初学者的问题,下面一一做解答。

问题一:Virtual service 跟 k8s service 的关系是什么。属于强绑定吗?回答:不是强绑定。virtual service 可以帮助 k8s service 在路由控制上做到更细粒度,不必只是 Round-Robin 策略。问题二:Virtual service 必须要跟 Istio traffic management 的其他资源,比如 destination rule、gateway、service entries 捆绑使用吗?回答:否。Virtual service 自身就可以产生作用。当然它也可以跟网关,或者跟 destination rule 一起构造更加灵活、丰富的路由规则。问题三:路由规则(Routing rules)跟 Destination rule 是同样的东西吗?回答:否。路由规则是逻辑上的概念,而 Destination rule 是 Istio 的一种资源。你可以将 Destination rule 看做 Routing rules 的子集。问题四:Virtaul service 的 hosts 字段填写什么内容?回答:hosts 字段值是客户端向服务发送请求时使用的地址。这个地址可以是 IP 地址、DNS 名称、也可以是 k8s service 名称(短名词地址或者完整地址,比如 web-svc.default.cluster.local),如果是短名称,要求可以隐式或者显式地解析为完全限定域名(FQDN)。当然也可以使用通配符(*)前缀,从而为所有匹配的服务创建一套路由规则。虚拟服务主机实际上不一定是 Istio 服务注册表的一部分,它们只是可以可寻址的虚拟目的地而已。这样,也就可以为网格内没有可路由条目的虚拟主机流量进行建模。

4 virtual service 样例

下面介绍一个 virtual service 独立作用的例子,本例需要的资源如下:

# 调用服务的客户端jiuxi-busybox.yaml

# 两个 web 服务器: tomcat 和 Istio 注入,注入后就变成服务网格中的服务jiuxi-deployment.yaml# 定义 3 个服务:指向 指向 tomcat。web-svc 同时指向 和 tomcatjiuxi-svc.yaml# Istio virtual service:定义虚拟服务,该虚拟服务作用在 web-svc 服务上,并设置简单的路由规则(Routing rule,而非 Destination rule)jiuxi-vs.yaml

下面一一介绍各个资源文件明细。

4.1 jiuxi-busybox.yaml

4.2 jiuxi-deployment.yaml

4.3 jiuxi-svc.yaml

4.4 jiuxi-vs.yaml

5 Istio 注入

针对客户端和 deployment 执行手工注入:

istioctl kube-inject -f jiuxi-deploy.yaml jiuxi-busybox.yaml | kubectl apply -f -istioctl kube-inject -f jiuxi-busybox.yaml | kubectl apply -f -

6 登录客户端验证规则生效

登录到 busybox,然后通过如下命令均可以看到规则生效:

wget -q -O - web-svc 是 k8s service。字母 O,非数字 0wget -q -O - IP 是 web-svc 的 ClusterIP。

7 总结

自此九析带你轻松完爆了 Istio traffic management 的 virtaul service。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:第二十一章 九析带你轻松完爆 service mesh - Istio 路由规则
下一篇:路由器网络接口解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~