Istio文档提供了一个使用通配符ServiceEntry here配置出口的示例。
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: wikipedia
spec:
hosts:
- "*.wikipedia.org"
ports:
- number: 443
name: tls
protocol: TLS
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: wikipedia
spec:
hosts:
- "*.wikipedia.org"
tls:
- match:
- port: 443
sniHosts:
- "*.wikipedia.org"
route:
- destination:
host: "*.wikipedia.org"
port:
number: 443
VirtualService有什么好处/不同之处?如果删除VirtualService,似乎什么都不会受到影响。我正在使用Istio 1.6.0
[VirtualService并没有真正做任何事情,但是如果您查看this或this istio文档。
从一开始就为每个服务创建具有默认路由的VirtualService,通常被视为Istio中的最佳实践>。
虚拟服务在使Istio的流量管理变得灵活和强大中发挥了关键作用。他们通过将客户端从真正实现它们的目标工作负载中发送请求的位置之间去耦合,来实现这一点。虚拟服务还提供了一种丰富的方法来指定用于将流量发送到那些工作负载的不同流量路由规则。
服务条目将这些维基百科站点添加为istio内部服务注册表的条目,因此网格中自动发现的服务可以路由到这些手动指定的服务。
通常,从一开始,当虚拟服务允许正确路由请求时,该功能就允许监视外部服务和其他Istio功能。
看看这个istio documentation。
[Service Entry确保您的网格知道该服务并可以对其进行监视。
使用Istio ServiceEntry配置,您可以从Istio群集中访问任何可公开访问的服务。
[Virtual Service管理到外部服务的流量并控制去往该服务的流量,在这种情况下就是全部。
我想说的好处是,您可以使用istio routing rules,也可以为使用Service Entry配置访问的外部服务进行设置。在此example中,您设置了对httpbin.org服务的调用的超时规则。