我们也在设置每个目的地的权重(weight
) 。权重等于发送到每个子集的流量的比例 。所有权重的总和应该是 100 。如果我们有一个单一的目的地,权重被假定为 100 。
通过 gateways
字段,我们还可以指定我们想要绑定这个 VirtualService 的网关名称 。比如说:
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata:name: customers-route spec:hosts:- customers.default.svc.cluster.localgateways:- my-gatewayhttp:...
上面的 YAML 文件将 customers-route
这个VirtualService 绑定到名为 my-gateway
的网关上 。这有效地暴露了通过网关的目标路由 。
当一个 VirtualService 被附加到一个网关上时,只允许在网关资源中定义的主机 。下表解释了网关资源中的 hosts
字段如何作为过滤器,以及 VirtualService 中的 hosts
字段如何作为匹配 。
Gateway HostsVirtualService Hosts行为*
customers.default.svc.cluster.local
流量通过 VirtualService 发送,因为 *
允许所有主机customers.default.svc.cluster.local
customers.default.svc.cluster.local
hosts 匹配,流量将被发送hello.default.svc.cluster.local
customers.default.svc.cluster.local
hosts 不匹配,无效hello.default.svc.cluster.local
["hello.default.svc.cluster.local", "customers.default.svc.cluster.local"]
只允许 hello.default.svc.cluster.local
。它绝不允许 customers.default.svc.cluster.local
通过网关 。然而,这仍然是一个有效的配置,因为 VirtualService 可以连接到第二个网关,该网关的 hosts
字段中包含 *.default.svc.cluster.local
四.Subset和DestinationRule4.1 Subset 和 DestinationRule目的地指的是不同的子集(subset)或服务版本 。通过子集,我们可以识别应用程序的不同变体 。在我们的例子中,我们有两个子集,v1
和 v2
,它们对应于我们 customer 服务的两个不同版本 。每个子集都使用键/值对(标签)的组合来确定哪些 Pod 要包含在子集中 。我们可以在一个名为 DestinationRule
的资源类型中声明子集 。
下面是定义了两个子集的 DestinationRule 资源的yaml文件 。
apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata:name: customers-destination spec:host: customers.default.svc.cluster.localsubsets:- name: v1labels:version: v1- name: v2labels:version: v2
让我们看看我们可以在 DestinationRule 中设置的流量策略 。
4.2 DestinationRule 中的流量策略通过 DestinationRule,我们可以定义设置,如负载均衡配置、连接池大小、局部异常检测等,在路由发生后应用于流量 。我们可以在 trafficPolicy
字段下设置流量策略 。以下是这些设置:
- 负载均衡器设置
- 连接池设置
- 局部异常点检测
- 客户端 TLS 设置
- 端口流量策略
round-robin
(轮询) 。 apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata:name: customers-destination spec:host: customers.default.svc.cluster.localtrafficPolicy:loadBalancer:simple: ROUND_ROBINsubsets:- name: v1labels:version: v1- name: v2labels:version: v2
我们还可以设置基于哈希的负载均衡,并根据 HTTP 头、cookies 或其他请求属性提供会话亲和性 。下面是一个流量策略的片段,它设置了基于哈希的负载均衡,并使用一个叫做 location
的 cookie 来实现亲和力 。
经验总结扩展阅读
- 破壁机玉米汁怎么榨才好喝
- 五行穿衣指南2023年9月24日 2023年穿衣五行颜色
- 玻璃自爆没掉下来怎么处理
- 2023年11月24日五行穿衣配色 今日幸运颜色讲究
- 2023年11月25日五行穿衣分享 穿什么颜色衣服好
- 2023年11月26日五行穿衣颜色搭配 今日招桃花幸运颜色
- 2023年11月27日五行穿衣颜色搭配 今日幸运颜色讲究
- 2023年11月28日五行穿衣配色 分享好运色穿衣搭配
- 2023年11月19日五行穿衣颜色搭配 今日幸运颜色查询
- 2023年11月20日五行穿衣查询 今日招桃花幸运颜色