说到内部服务的虚拟服务(没有网关规范),
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: frontend
spec:
hosts:
- nginx.default.svc.cluster.local
- httpd.default.svc.cluster.local
http:
- name: nginx
match:
- uri:
prefix: /nginx
rewrite:
uri: /
route:
- destination:
host: nginx.default.svc.cluster.local
port:
number: 80
- name: httpd
match:
- uri:
prefix: /httpd
rewrite:
uri: /
route:
- destination:
host: httpd.default.svc.cluster.local
port:
number: 80
此虚拟服务根据 URI /nginx 或 /httpd 发送流量,
例如,curl httpd/httpd 和 curl nginx/httpd 将被发送到 httpd 服务器。序列将是..检查规范中的主机并遵循 URI 匹配。
但是,那之后,当流量发往最终主机时,就不再考虑虚拟服务了吗?
因为 virtualservice 是关于 nginx 和 httpd 服务的,当 virtualservice 的序列结束时,最终目的地与 spec 中的 hosts 相同。
什么时候才考虑虚拟服务?将流量发送到与虚拟服务中的主机相关的主机时的每一刻与否。