【问题标题】:What's Istio Subsets all about什么是 Istio 子集
【发布时间】:2021-09-25 03:55:12
【问题描述】:

任何机构都可以通过简单的方式解释 istio 子集和目标规则,并通过引入子集来解释他们试图解决的问题。

【问题讨论】:

    标签: kubernetes cloud devops istio


    【解决方案1】:

    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

    【讨论】:

    • 谢谢,我花了一段时间来解析答案,但在重新阅读文档后,我现在清楚了。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-09-06
    • 2019-05-20
    • 1970-01-01
    • 2021-08-26
    • 2016-02-05
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    相关资源
    最近更新 更多