tencent cloud

文档反馈

DestinationRule 配置服务版本和流量策略

最后更新时间:2023-12-26 11:50:28
    DestinationRule 定义服务的版本和路由发生后的流量策略,包括负载均衡、连接池大小、健康检查(从负载均衡后端中剔除不健康的 hosts)等流量策略。服务与 DestinationRule 是一对一的绑定关系。

    DestinationRule 重要字段说明

    以下是 DestinationRule 的重要字段说明:
    字段名称
    字段类型
    字段说明
    spec.host
    string
    关联 DestinationRule 配置的服务名称,可以是自动发现的服务(例如 Kubernetes service name),或通过 ServiceEntry 声明的 hosts。如填写的服务名无法在上述源中找到,则该 DestinationRule 中定义的规则无效
    spec.subsets
    Subset[]
    定义服务的版本(subsets),版本可通过标签键值对匹配匹配服务中的endpoints。可以在 subsets 级覆盖流量策略配置
    spec.trafficPolicy
    trafficPolicy
    定义流量策略,包括负载均衡、连接池、健康检查、TLS 策略
    spec.trafficPolicy.loadBalancer
    -
    配置负载均衡算法,可配置:简单负载均衡算法(round robin, least conn, random...),一致性哈希(会话保持,支持按 header name,cookie,IP,query parameter 哈希),地域感知负载均衡算法
    spec.trafficPolicy.connectionPool
    -
    配置与上游服务的连接量,可设置 TCP/HTTP 的连接池
    spec.trafficPolicy.outlierDetection
    -
    配置从负载均衡池中驱逐不健康的 hosts
    spec.trafficPolicy.tls
    -
    连接上游服务的 client 端 TLS 相关配置,与 PeerAuthentication 策略(server 端 TLS 模式配置)配合使用
    spec.trafficPolicy.portLevelSettings
    -
    配置端口级别的流量策略,端口级别的流量策略会覆盖服务 / subsets 级别的流量策略配置

    定义服务的版本(subsets)

    DestinationRule 可定义服务的版本(subsets),而 subset 则是腾讯云服务网格的最小流量管理单元。例如,您可以配置将流量路由至某个指定服务的指定 subset。以下是 DestinationRule 定义 product 服务两个 subset 的配置示例。
    YAML 配置示例
    控制台配置示例
    apiVersion: networking.istio.io/v1alpha3
    kind: DestinationRule
    metadata:
    name: product
    namespace: base
    spec:
    host: product
    subsets:
    - name: v1
    labels:
    version: v1 # subset v1 通过标签 version:v1 来匹配该服务的endpoint
    - name: v2
    labels:
    version: v2 # subset v2 通过标签 version:v2 来匹配该服务的endpoint
    DestinationRule 和服务是一一对应的绑定关系,配置 product 服务的 DestinationRule,需要从服务列表页进入 product 服务的详情页,在基本信息 Tab 配置。控制台配置 product 服务两个版本的步骤如下:
    1. 在服务列表页面,单击进入 product 服务的详情页面。
    
    
    2. 在服务详情页基本信息,第三个DestinationRule card 区域,单击新建 DestinationRule进入新建弹窗。
    
    
    3. 在弹窗页面为 product 服务添加两个版本,点击保存。
    
    
    4. product 服务版本配置完成。
    
    

    配置一致性哈希负载均衡

    以下是用 DestinationRule 配置 cart 服务按照 http header name 做一致性哈希负载均衡的配置示例。
    YAML 配置示例
    控制台配置示例
    kind: DestinationRule
    metadata:
    name: cart
    namespace: base
    spec:
    host: cart
    trafficPolicy:
    loadBalancer:
    consistentHash:
    httpHeaderName: UserID # 配置访问 cart 服务的流量按照 header UserID 做一致性哈希负载均衡
    
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持