Istio VirtualService和Kubernetes服务之间的区别是什么?
据我所知,Istio VirtualService是一种抽象的东西,它试图在实际实现中添加一个接口,如Kubernetes中的服务或Concur中的类似内容 我的问题是:Istio VirtualService和Kubernetes服务之间的区别是什么?,kubernetes,istio,Kubernetes,Istio,据我所知,Istio VirtualService是一种抽象的东西,它试图在实际实现中添加一个接口,如Kubernetes中的服务或Concur中的类似内容 我的问题是: 当使用Kubernetes作为Istio的底层平台时,Istio VirtualService和Kubernetes服务之间有什么区别吗?或者它们是相同的?与每个Istio的扩展一样,Istio的VirtualService提供了一些附加功能,如外部流量路由/管理(Pod到外部通信、HTTPS外部通信、路由、url重写…) 有
当使用Kubernetes作为Istio的底层平台时,Istio VirtualService和Kubernetes服务之间有什么区别吗?或者它们是相同的?与每个Istio的扩展一样,Istio的VirtualService提供了一些附加功能,如外部流量路由/管理(Pod到外部通信、HTTPS外部通信、路由、url重写…) 有关详细信息,请查看此文档: 它们都很有用,因为您需要“经典”服务来管理入口流量或服务对服务通信
史蒂夫。虚拟服务: 它定义了一组基于匹配条件应用于kubernetes服务或服务子集的流量路由规则。这类似于kubernetes Ingress对象。它对Istio灵活、强大的交通管理起着关键作用 Kubernetes服务: 它可以是一组逻辑的POD,定义为POD之上的抽象,提供单个DNS名称或IP。Kubernetes服务 Kubernetes
服务
管理吊舱的网络。它指定您的POD是在内部(ClusterIP
),外部(NodePort
或LoadBalancer
)公开,还是作为其他DNS条目的CNAME公开(externalName
)
例如,此foo服务将公开带有标签app:foo
的pod。发送到端口30007
上的节点的任何请求都将转发到端口80
上的pod
apiVersion: v1
kind: Service
metadata:
name: foo-service
spec:
type: NodePort
selector:
app: foo
ports:
- port: 80
targetPort: 80
nodePort: 30007
Istio虚拟服务
Istiovirtualservice
比Kuberenetes服务高一级。它可用于将流量路由、故障注入、重试和许多其他配置应用于服务
例如,对于发送到foo
的失败请求,此foo重试virtualservice
将重试3次,每次超时2秒
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: foo-retry-virtualservice
spec:
hosts:
- foo
http:
- route:
- destination:
host: foo
retries:
attempts: 3
perTryTimeout: 2s
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: foo-delay-virtualservice
spec:
hosts:
- foo
http:
- fault:
delay:
percentage:
value: 0.1
fixedDelay: 5s
route:
- destination:
host: foo
此foo delay virtualservice
的另一个示例将对发送到foo
的0.1%的请求应用0.5s延迟
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: foo-retry-virtualservice
spec:
hosts:
- foo
http:
- route:
- destination:
host: foo
retries:
attempts: 3
perTryTimeout: 2s
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: foo-delay-virtualservice
spec:
hosts:
- foo
http:
- fault:
delay:
percentage:
value: 0.1
fixedDelay: 5s
route:
- destination:
host: foo
裁判
那么,当使用kubernetes时,虚拟服务是否使用k8s服务来路由流量?两者如何合作?链接断开正确的链接是查看我对类似问题的回答: