本文档为您介绍如何通过Istio管理流量。Istio提供的流量治理策略包含负载均衡算法设置、会话保持、连接池管理、熔断配置和故障注入等。

操作步骤

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,选择服务网格 > 虚拟服务
    虚拟服务
    说明 未绑定网关的虚拟服务在服务网关列会显示绑定按钮。
  3. 单击对应虚拟服务右侧的管理,进入详情界面,您可以根据需要,进行流量管理。

流量治理

在虚拟服务基本信息详情页,单击流量治理虚拟服务基本信息
  • 负载均衡设置:Istio提供标准负载均衡算法会话保持两种方式,两者只能取其一。
    图 1. 负载均衡算法
    负载均衡算法
    图 2. 会话保持
    会话保持
    表 1. 负载均衡设置
    参数 参数名称 参数说明
    loadBalancer 负载均衡算法
    • ROUND_ROBIN:轮询调度策略。是Istio代理的缺省算法。此算法按顺序在负载平衡池中的端点上均匀分配负载。
    • LEAST_CONN:随机选择两个健康主机,从中选择一个较少请求的主机提供服务。 这是加权最小请求负载平衡的实现。
    • RANDOM:随机的负载均衡算法。从所有健康的主机中随机选择一个主机,在负载平衡池的端点上均匀分配负载。在没有健康检查策略的情况下,随机策略通常会比轮询调度策略更加高效,但不会有任何顺序。
    • PASSTHROUGH:这个策略会直接把请求发给客户端要求的地址上。请谨慎使用。
    consistentHash 会话保持
    • 基于HTTP头:根据HTTP header中的内容获取哈希。
    • 基于Cookie:根据Cookie中的内容获取哈希。
    • 基于源IP:根据源IP中的内容获得哈希。
  • 连接池管理。连接池管理
    表 2. 连接池管理
    参数 参数名称 参数说明
    maxConnections 最大连接数 是指Envoy将为上游群集中的所有主机建立的最大连接数。适用于HTTP/1.1群集。
    说明 最大连接数连接超时时间是对TCP和HTTP都有效的通用连接设置。
    connectTimeout 连接超时时间 TCP连接超时时间。最小值必须大于1ms。
    说明 最大连接数连接超时时间是对TCP和HTTP都有效的通用连接设置。
    maxRequestsPerConnection HTTP每连接最大请求数 对某一后端的请求中,一个连接内能够发出的最大请求数量。对后端连接中最大的请求数量若设为1,则会禁止keep alive特性。
    说明 HTTP每连接最大请求数HTTP最大请求重试次数仅针对HTTP1.1/HTTP2/GRPC协议的连接生效。
    maxRetries HTTP最大请求重试次数 在指定时间内对目标主机最大重试次数。默认值为3。
    说明 HTTP每连接最大请求数HTTP最大请求重试次数仅针对HTTP1.1/HTTP2/GRPC协议的连接生效。
  • 熔断设置:您可以在流量策略中选择进行熔断策略配置。熔断设置
表 3. 熔断配置
参数 参数名称 参数解释
consecutiveErrors 连续错误响应个数 周期内连续出现错误的个数。超过该值后,主机将会被移出连接池。默认值是5。
说明 当上游服务是HTTP服务时,5xx的返回码会被记为错误;当上游主机提供的是TCP服务时,TCP连接超时和连接错误/故障事件会被记为错误。
maxEjectionPercent 隔离实例比例(%) 上游服务的负载均衡池中允许被移除的主机的最大百分比。默认值为10%。
baseEjectionTime 最短隔离时间 最小的移除时间长度。主机每次被移除后的隔离时间为被移除的次数和最小移除时间的乘积。这样的实现,让系统能够自动增加不健康上游服务实例的隔离时间。默认值为30s。
interval 检查周期 检测主机上一次被移除和这一次被移除之间的时间间隔。默认值为10s,最小值为1ms。
说明 勾选将设置应用于所有版本,上述设置在该服务的各个版本均生效。

故障注入策略

在虚拟服务基本信息详情页,单击故障注入策略故障注入策略

故障注入策略包含时延故障中断故障策略,当前故障注入支持HTTP。

  • 时延故障:转发之前加入延迟,用于模拟网络故障、上游服务过载等故障。时延故障
    表 4. 时延故障
    参数 参数名称 参数解释
    percent 百分比 取值范围为0~100,用来指定注入延迟的比例。
    fixedDelay 时延 必填项。在请求转发之前设定的时间延迟单位。取值单位包括小时(h)、分钟(m)、秒钟(s)和毫秒(ms),允许的最小值是1ms。
  • 中断故障:终止请求并向下游服务返回错误代码,模拟上游服务出错的状况。中断故障
    表 5. 中断故障
    参数 参数名称 参数解释
    percent 百分比 取值范围为0~100,用来指定中断请求的比例。
    httpStatus 状态码 必填项。来定义返回给客户端服务的有效的HTTP错误代码。