【发布时间】:2021-09-25 03:55:12
【问题描述】:
任何机构都可以通过简单的方式解释 istio 子集和目标规则,并通过引入子集来解释他们试图解决的问题。
【问题讨论】:
标签: kubernetes cloud devops istio
任何机构都可以通过简单的方式解释 istio 子集和目标规则,并通过引入子集来解释他们试图解决的问题。
【问题讨论】:
标签: kubernetes cloud devops istio
DestinationRule是在Service发生路由后添加额外路由策略的资源,例如说你有以下服务:
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: default
spec:
selector:
app: my-service
ports:
- name: http
protocol: TCP
port: 80
这个Service 可以路由到多个资源,它会选择包含标签app: my-service 的任何pod,这意味着您可以让同一服务的不同版本并行运行,每个版本使用一个部署。
现在,使用DestinationRule,您可以在此基础上添加其他路由策略,子集表示您可以通过标签识别的 pod 的一部分,例如:
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: my-service-ab
spec:
host: my-service.default.svc.cluster.local
trafficPolicy:
loadBalancer:
simple: LEAST_CONN
subsets:
- name: a-test
labels:
version: v3
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN
这个DestinationRule 对流向名为 a-test 的子集的所有流量使用循环负载平衡策略,该子集由带有标签(版本:v3)的端点(例如,pod)组成。这对于 A/B 测试等场景很有用,或者让您的服务的多个版本保持并行运行。
此外,您可以为将覆盖在服务级别定义的 TrafficPolicies 的子集指定自定义 TrafficPolicies。
【讨论】: