我正在观看有关 Istio 服务网格的 Pluralsight 视频。演示文稿的一部分这样说:
VirtualService 使用 Kubernetes 服务查找所有 Pod 的 IP 地址。VirtualService 不会通过 [Kubernetes] 服务路由任何流量,但它只是使用它来获取流量可能到达的端点列表。
它显示了这个图形(显示 Pod 发现,而不是用于流量路由):
我对此有点困惑,因为我不知道 Istio 如何知道要查看VirtualService哪个 Kubernetes 。Service我在示例 Istio yaml 文件中没有看到任何VirtualService对 Kubernetes 的引用Service。
我的理论是,DestinationRules它们可能有足够的标签来找到所需的 pod,但这些示例仅使用标签v1和v2。单独一个版本似乎不太可能只提供所需的 Pod。(许多不同的Services可能在v1或 上v2。)
Istio 如何知道要关联到VirtualService哪个 Kubernetes ?Service
或者换句话说,
Istio 如何VirtualService知道如何从集群中的所有 pod 中找到正确的 pod?
创建 VitualService 时,您可以在route.destination部分中定义要查找的服务
port:端口上运行的服务
host: 服务名称
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: test
spec:
hosts:
- "example.com"
gateways:
- test-gateway
http:
- match:
- uri:
prefix: /
route:
- destination:
port:
number: 80
host: app-service
Run Code Online (Sandbox Code Playgroud)
所以,
app-pod/s->(管理者)app-service->test虚拟服务
阿尔法特的回答是正确的。
\n我想添加有关主机的文档中的以下部分,这应该使事情更加清晰。\n https://istio.io/latest/docs/reference/config/networking/virtual-service/#VirtualService
\n\n\n[...] Kubernetes 用户注意:当使用短名称时(例如 \xe2\x80\x9creviews\xe2\x80\x9d 而不是 \xe2\x80\x9creviews.default.svc.cluster.local\xe2\x80\ x9d),Istio 将根据规则的命名空间而不是服务来解释短名称。\xe2\x80\x9cdefault\xe2\x80\x9d 命名空间中包含主机 \xe2\x80\x9creviews\xe2\x80\x9d 的规则将被解释为 \xe2\x80\x9creviews.default.svc.cluster.local \xe2\x80\x9d,无论与评论服务关联的实际命名空间如何。为了避免潜在的错误配置,建议始终使用完全限定域名而不是短名称。
\n
因此,当您编写host: app-service并且VirtualServiceis 在default命名空间中时,主机将被解释为app-service.default.svc.cluster.local,这是 kubernetes 服务的 FQDN。如果应用程序服务位于另一个命名空间中,例如dev,您需要将主机设置为host: app-service.dev.svc.cluster.local。
同样适用于DestinationRule,其中 kubernetes 服务的 FQDN 也定义为主机。\n https://istio.io/latest/docs/reference/config/networking/destination-rule/#DestinationRule
VirtualService并DestinationRule为主机配置。Envoy两者都是配置作为 istio 网关/sidecar 运行的抽象。定义VirtualService流量应该去哪里(例如主机、不同版本的权重……)以及定义DestinationRule流量应该如何处理(例如负载平衡算法以及如何定义版本)。
所以流量不是这样路由的
\n网关 -> VirtualService -> DestinationRule -> Service -> Pod,但类似
\n网关 -> 服务,考虑 VirtualService 和 DestinationRule 的配置。
\n| 归档时间: |
|
| 查看次数: |
2968 次 |
| 最近记录: |