istio学习(四)Istio服务治理-负载均衡模型介绍

文章目录

  • 前言
  • 一、simple
  • 二、consistentHash(hash一致性)
  • 三、LocalityLoadBalancer(区域加权负载均衡)(没太懂)


前言

Istio提供了三种负载均衡策略:simple、consistentHash、localityLbSetting,下面一一介绍。

名称 描述
simple 简单方式,其内置了四种负载均衡算法
consistentHash 基于HASH一致性算法的负载均衡
localityLbSetting 局部负载均衡器设置,将完全覆盖网格的设置

一、simple

simple方式提供四种负载均衡算法:

  • 轮询(ROUND_ROBIN)
  • 最少连接(LEAST_CONN)
  • 随机(RANDOM)
  • 透传(PASSTHROUGH)
名称 描述
ROUND_ROBIN 默认算法,循环访问某个服务
LEAST_CONN 该算法随机选择两个健康的服务,最终选择活动请求较少的服务
RANDOM 该算法随机选择1个健康的服务,如果服务未配置健康检测策略,该策略的性能通常比轮询更好
PASSTHROUGH 该算法将连接转发到呼叫着请求的原始IP地址,不进行任何负载均衡,需谨慎使用

二、consistentHash(hash一致性)

consistentHash提供五种设置参数:

  • httpHeaderName
  • httpCookie
  • useSourceIp
  • httpQueryParamterName
  • minimumRingSize
名称 描述
httpHeaderName 基于HTTP请求头的哈希
httpCookie 基于HTTP Cookie的哈希
useSourceIp 基于源IP地址的哈希
httpQueryParamterName 基于特定HTTP请求参数的哈希
minimumRingSize 用户哈希环的最小虚拟节点,默认值为1024,

使用useSourceIp的设置例子:

---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: newframe
  namespace: dmo
spec:
  host: newframe-tttest-service
  trafficPolicy:
    loadBalancer:
      consistentHash:
        useSourceIp: true
    connectionPool:
      tcp:
        maxConnections: 100
      http:
        http1MaxPendingRequests: 50
        maxRequestsPerConnection: 80
  #    outlierDetection:
  #      # 实例被驱逐前的连续错误次数,默认是5.HTTP返回5xx被认为异常,TCP超时和连接出错被认为异常
  #      consecutiveErrors: 100
  #      # 驱逐的时间间隔,默认10s,要求大于1ms,可以是ms、s、m、h
  #      interval: 10s
  #      # 最小驱逐时间,默认30s。
  #      baseEjectionTime: 10s
  #      # 均衡池中可以被驱逐的故障实例最大比例。默认是10%. 避免驱逐太多服务能力下降。
  #      maxEjectionPercent: 50
  subsets:
    - name: v1
      labels:
        version: v1

使用cookie的例子:

 apiVersion: networking.istio.io/v1alpha3
 kind: DestinationRule
 metadata:
   name: newframe
 spec:
   host: newframe
   trafficPolicy:
     loadBalancer:
       consistentHash:
         httpCookie:
           name: Authorization
           ttl: 0s # Cookie的生命周期 必须写

三、LocalityLoadBalancer(区域加权负载均衡)(没太懂)

LocalityLoadBalancer提供三种算法

  • distribute
  • failover
  • enabled
名称 描述
distribute 可选,只能设置分发或故障转移之一,明确指定跨不同区域和地理位置的负载均衡权重。
failover 可选,只能 设置故障转移或分发,明确指定当本地区域中的端点变得不健康时,区域通信将降落,应该与OutlierDetection一起使用以检测不健康的端口。
enabled 启用局域负载平衡,这是DestinationRule级别,将整体覆盖网格范围的设置

你可能感兴趣的:(istio,istio,服务治理,consistentHash,useSourceIp,hash一致性)