【07】DestinationRule 配置要点

6.1 DestinationRule配置要点

  • DestinationRule用于配置路由完成之后的应用于服务的流量策略,即配置如何将流量调度到上游端点,同时也是为VirtualService的Destination指定的目标提供具体的定义和实现;主要包括以下配置项:
    • 负载均衡配置
    • Sidercar连接池
    • 异常检测相关的配置,即异常端点驱逐机制
  • DestinationRule的关键字段
    • host:必选字段,指定规则的适用对象,可以使用短域名;
    • trafficPolicy:具体的规则内容,包括负载均衡,连接池策略和异常值检测;
    • subsets:服务的子集定义,通常一个子集用于定义一个服务版本‘;
    • exportTo:用于控制DestinationRule跨名称空间的可见性,即控制一个ns下定义的DestinationRule资源对象是否被其他ns下的Sidercar执行:
      1. “.” : 表示仅用于当前名称空间
      2. “*”: 表示应用于所有名称空间
  • Subset:服务子集
    • name:子集名称
    • labels:子集上的标签
    • trafficPolicy:应用于当前子集的流量策略
  • TrafficPolicy主要包含如下几项重要配置
    • loadBalancer:定义使用的负载均衡器,即负载均衡算法;
      1. 简单的负载均衡:ROUND_ROBIN、LEAST_CONN、RANDOM和PASSTHROUGH
      2. 一致性哈希:
    • outlierDetection:异常点检测;
      1. consecutiveErrors:实例被驱逐前的连续错误次数和,默认为5;
      2. interval:驱逐的时间间隔,默认值为10s,支持,时,分,秒,毫秒为单位;
      3. baseEjectionTime:基准驱逐时长,具体时长取决于退避算法;
      4. maxEjectionPercent:可被驱逐的最大实例比例,默认为10%;
      5. minHealthPercent:启用异常值检测时要满足的最小健康状态实力比例,小于此比例,异常值检测将被禁用;默认为50%;
    • connectionPool:连接池配置;
      1. Tcp连接池配置:
        • maxConnections:为上游服务的所有实例建立最大连接数,默认1024;
        • connectTimeout:TCP连接超时时长;
        • tcpKeepalive:TCP keepalive机制,通过定期发送一个keepalive探测报文来判断是否可用;
      2. HTTP连接池配置:
        • http1MaxPendingRequests:允许挂起的最大HTTP请求数,默认为1024,仅适用于HTTP/1.1;
        • http2MaxRequests:允许的HTTP/2最大请求数,默认为1024;
        • maxRequestsPerConnection:每连接的最大请求数,默认为无限制,而1表示禁用keep-alive;
        • idleTimeout:空闲超时时长;
    • PortTrafficPolicy:流量策略要应用的目标端口;

你可能感兴趣的:(Istio,istio)