48 解析 istio

极客时间 分布式系统案例课 笔记09 service mesh (下)

1.Envoy 以sidecar的形式,注入到K8s应用的pod中

2.修改iptables的转发规则,Envoy就可以代理接管应用服务的出入的流量

Istiod : 负责对所有的Envoy proxy进行集中配置管理

Pilot : 对Envoy 下发功能,路由,限流熔断

Citadel : 下发安全配置

Galley : 对 istiod本身进行配置管理

Envoy 看作是数据访问层,Pilot 和 Citadel 看做是对应到web的业务逻辑层

istio : 最大的卖点,提供精细化的流量治理能力,实现灰度发布,或者金丝雀发布

极客时间 分布式系统案例课 笔记09 service mesh (下)

极客时间 分布式系统案例课 笔记09 service mesh (下)

虚拟服务被认为是对服务不同版本的抽象

DestinationRule : 可以控制流量

极客时间 分布式系统案例课 笔记09 service mesh (下)

极客时间 分布式系统案例课 笔记09 service mesh (下)

K8s Service 是和 服务集群cluster相对应的概念,一个集群会有多个pod,每个service都有唯一的clusterIP

通过service实现对Cluster的负载均衡访问,同时service还可以做服务发现

极客时间 分布式系统案例课 笔记09 service mesh (下)

转发的pod2实例

istio 给每个实例pod 注入一个边车istio-proxy

极客时间 分布式系统案例课 笔记09 service mesh (下)

把信息下发到istio-proxy

极客时间 分布式系统案例课 笔记09 service mesh (下)

Ingress 接外部流量,并且把流量路由到内部的service

 

49 Ingress 和 gateway 和 API gateway选择

pod 认为是K8s的虚拟机资源,是K8s调度和发布的最基本单位

pod ip可能会变,service把请求转发到某个目标pod上

UserSpace Proxy Mode 用户空间代理模式

极客时间 分布式系统案例课 笔记09 service mesh (下)

kube-proxy会为每一个service创建一个监听端口

kube-proxy会根据负载均衡算法,选择一个目标pod

kube-proxy相当于一个穿透的四层反向代理,后端pod不可用时,kube-proxy可以重试其它的pod

新版K8s支持iptables mode

极客时间 分布式系统案例课 笔记09 service mesh (下)

   对后端的每一个pod创建iptables规则,通过iptables 直接转发到目标pod,kube-proxy并不直接承担这个负载均衡和转发任务,只是创建对应的iptables规则;流量并不穿透kube-proxy,所以效率比较高,少了一些内核的数据copy操作

但是iptables转发不提供灵活的负载均衡策略,后端pod不可用的时候,无法提供重试

K8s集群规模比较大时,需要同步的iptables规则的数量和开销也比较大,所以对集群规模有一定的限制

极客时间 分布式系统案例课 笔记09 service mesh (下)

新版K8s,还支持IPVS mode

kube-proxy会监控pod的变化,并且创造相对应的IPVS规则,IPVS也是内核模式下,通过NetFilter来实现的;使用Hash表来存储规则

IPVS还支持高级的负载均衡算法,操作系统中需要安装ipvs内核模块

K8s和Istio进行集成,实现精细化的流量治理

极客时间 分布式系统案例课 笔记09 service mesh (下)

istio通过iptables和 sideCar Proxy接管服务之间的通讯,然后把请求流量转发到目标pod

kube-proxy工作在四层,但是sideCar Proxy是工作在七层的,可以对Http1,Http2这些协议实现更灵活的流量治理功能

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2022-01-02
  • 2021-07-31
  • 2021-05-15
  • 2021-11-11
  • 2022-01-02
  • 2021-05-10
  • 2021-08-03
  • 2021-08-05
猜你喜欢
  • 2021-08-04
  • 2021-10-11
  • 2021-09-03
  • 2021-04-11
  • 2021-10-03
  • 2021-08-21
  • 2021-07-03
相关资源
相似解决方案