三、istio学习概要

学习istio之初,找了蛮多相关的资料,发现都很零散。最后找到这一篇是比较系统的,推荐大家学习
https://www.servicemesher.com/istio-handbook/

以下相关重点概念的集合以及学习资源入口

1、架构

Istio 是独立于平台的,可以在 Kubernetes 、 Consul 、虚拟机上部署的服务
扩展理解: 对k8s的支持最完善,其余的尚未特别完善,官方文档都写得不是很全

2、数据面

2.1 概念:数据平面由一组以 sidecar 方式部署的智能代理组成,典型的数据平面实现有:Linkerd、NGINX、HAProxy、Envoy、Traefik
2.2 envoy: istio配套的是envoy,本质上是个代理。重点理解:

  • proxy配置:bootstrap/listen/cluster/router四大金刚
  • xDS协议: LDS/EDS/RDS/CDS/HDS/ADS, ADS特殊,是个聚合服务,有省流和保证启动顺序两大作用

详见envoy的学习见此教程: https://www.servicemesher.com/envoy/

三、控制面

控制面的组件比较多一些,如下图:


image.png

3.1 组件概况

虽然 Istio 支持多个平台,但将其与 Kubernetes 结合使用,其优势会更大,Istio 对 Kubernetes 平台支持也是最完善的

在安装了grafana, prometheus, kiali, jaeger等后端组件的情况下, 一个完整的控制面组件应该包括以下pod:

% kubectl -n istio-system get pod
NAME                                          READY     STATUS
grafana-5f54556df5-s4xr4                      1/1       Running
istio-citadel-775c6cfd6b-8h5gt                1/1       Running
istio-galley-675d75c954-kjcsg                 1/1       Running
istio-ingressgateway-6f7b477cdd-d8zpv         1/1       Running
istio-pilot-7dfdb48fd8-92xgt                  2/2       Running
istio-policy-544967d75b-p6qkk                 2/2       Running
istio-sidecar-injector-5f7894f54f-w7f9v       1/1       Running
istio-telemetry-777876dc5d-msclx              2/2       Running
istio-tracing-5fbc94c494-558fp                1/1       Running
kiali-7c6f4c9874-vzb4t                        1/1       Running
prometheus-66b7689b97-w9glt                   1/1       Running

3.2 关键组件之pilot

所谓的pilot包含两个组件:pilot-agent和pilot-discovery

3.2.1 pilot-agnet

学习资料: https://www.servicemesher.com/blog/istio-service-mesh-source-code-pilot-agent-deepin/
pilot-agent负责的工作包括:

  • 生成envoy的配置
  • 启动envoy
  • 监控并管理envoy的运行状况

3.2.2 pilot-discovery

学习资料:

  • https://www.servicemesher.com/blog/istio-service-mesh-source-code-pilot-discovery-module-deepin/
  • https://www.servicemesher.com/blog/istio-service-mesh-source-code-pilot-discovery-module-deepin-part2/

pilot-discovery的主要工作(自己理解的简化版):
1、 初始化: 作为client来调用k8s api server获取集群信息,保存在配置存储中心k8s CRD,提供xDS访问服务
2、 istio控制面信息监控与处理:对istio CRD资源的list/watch
3、服务注册信息监控与处理
4、Envoy控制面信息服务:创建Envoy xds server对外提供gRPC协议discovery服务

3.3. todo还要持续去学习其它控制面组件的机制/原理

你可能感兴趣的:(三、istio学习概要)