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


前言

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级别,将整体覆盖网格范围的设置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值