Istio 的“DestinationRule”与 Kubernetes 的“Service”之间的区别?
The difference between Istio's `DestinationRule` vs Kubernetes `Service`?
刚看了istio 1.0.0的文档,特别是概念。我想了解一件事,尤其是 DestinationRule
的存在。所以,在使用 Istio 之前,暴露 pods 的唯一方法是通过 Kubernetes 的 Service
对象。现在,使用 Istio,有 DestinationRule
和 VirtualService
。
我知道在 Kubernetes 的服务中,我们可以定义 service
路由流量的 pod 标签。在 istio 中,我们还可以通过使用 DestionationRule
的 spec.subsets.label
字段来做到这一点。如果我们在同一个命名空间中有 Service
和 DestinationRule
对象会怎样?是否相互冲突?
它们相得益彰。您仍然需要定义一个 Kubernetes 服务,但 Istio DestinationRules
将允许您通过标签在该服务中优化 "subsets",然后在 VirtualService
对象中使用的子集之间智能地路由流量.您仍然可以将 Kubernetes 服务视为全局入口点,但 Istio 将通过让您声明可能指向不同部署的 "versions" 来进一步路由。
请参阅 istio 文档 (https://istio.io/docs/reference/config/networking/virtual-service/) VirtualService
定义如何与 DestinationRules
中声明的子集相关。
您可以在子集中看到的标签必须与您 deployments/pods 上设置的标签相匹配。
刚看了istio 1.0.0的文档,特别是概念。我想了解一件事,尤其是 DestinationRule
的存在。所以,在使用 Istio 之前,暴露 pods 的唯一方法是通过 Kubernetes 的 Service
对象。现在,使用 Istio,有 DestinationRule
和 VirtualService
。
我知道在 Kubernetes 的服务中,我们可以定义 service
路由流量的 pod 标签。在 istio 中,我们还可以通过使用 DestionationRule
的 spec.subsets.label
字段来做到这一点。如果我们在同一个命名空间中有 Service
和 DestinationRule
对象会怎样?是否相互冲突?
它们相得益彰。您仍然需要定义一个 Kubernetes 服务,但 Istio DestinationRules
将允许您通过标签在该服务中优化 "subsets",然后在 VirtualService
对象中使用的子集之间智能地路由流量.您仍然可以将 Kubernetes 服务视为全局入口点,但 Istio 将通过让您声明可能指向不同部署的 "versions" 来进一步路由。
请参阅 istio 文档 (https://istio.io/docs/reference/config/networking/virtual-service/) VirtualService
定义如何与 DestinationRules
中声明的子集相关。
您可以在子集中看到的标签必须与您 deployments/pods 上设置的标签相匹配。