istio学习资料(持续更新)

理论入门

1. 仅需20分钟,完全了解服务网格和Istio原理!

https://www.ixigua.com/6815911276313575944?logTag=WToAX91xHoz7HhwAnj96m

  • 组成 控制面板,数据面板(sidecar proxies,使用envoy)
  • 部署环境以K8S为主,envoy以从容器的方式工作,
  • K8S中基于mutating webhook机制来完成sidecar容器的初始化和注入,初始化的时候会修改iptables,如此变可以拦截网络流量(基于7层网络协议 的 代理)。疑问:sidecar的呈现形式是额外的一个pod吗?(补充:sidecar以container的形式存在)
  • sidecar的配置的分发和同步是个挑战
  • istio gateway服务于mesh外围的负载均衡器 ,是独立于k8s的流量管理功能的

2. 2分钟把握 Envoy 的脉络,适应新场景的 envoy 有哪些不同?能做什么?

https://blog.csdn.net/lijiaocn/article/details/100638831

  1. envoy 的一大卖点就是自带配置 API,但要把它自带的 API 用起来还挺周折。envoy 率先提出使用统一的 data-plane-api ,定义了一套 API 标准。

  2. go-controller-plane 是 envoy 提出的 data-plane-api 的 go 语言实现,可以用它向 envoy 下发配置。

  3. 三个项目的关系: envoy 就是单机软件 envoy,data-plane-api 是 API 接口标准,go-control-plane 是 API 接口标准的实现。

3. 组件及功能

https://www.cnblogs.com/haoyunlaile/tag/service%20mesh/

3.1 安全
3.2 动态路由
  1. 应用场景
  • 按服务版本路由
  • 按比例切分流量
  • 根据匹配规则进行路由
  • 定义各种策略(负载均衡 、连接池等等)

2 核心组件: 虚拟服务+目标规则

  • 虚拟服务:定义路由规则,定义匹配条件和请求去向
  • 目标规则:定义目标 和策略
  1. 域模型


    image.png
3.3 网关
  1. 应用场景:
  • 运行在网格边缘的负载均衡器,控制网格的入口和出口的流量,需要一个sidecar,流量控制通过虚拟服务来实现
  • 入口网关,接收外部请求,转发给网格内的服务
  • 配置对外的端口、协议与内部服务的映射关系
  • 访问安全控制
image.png
  1. 域模型


    image.png

3.4 服务入口

使用服务入口Service Entry来添加一个入口到 Istio 内部维护的服务注册中心。添加了服务入口后,Envoy 代理可以向服务发送流量,就好像它是网格内部的服务一样。配置服务入口允许您管理运行在网格外的服务的流量

  1. 应用场景:
  • 为外部目标 redirect 和转发请求,例如来自 web 端的 API 调用,或者流向遗留老系统的服务。
  • 为外部目标定义重试、超时和故障注入策略。
  • 添加一个运行在虚拟机的服务来扩展您的网格。
  • 从逻辑上添加来自不同集群的服务到网格,在 Kubernetes 上实现一个多集群 Istio 网格。

3.5 istio 可视化管理

kiali :

  • 知乎介绍
  • b站视频:【Istio 重要组件介绍 Kiali及Jaeger】
  • git地址

3.6 istio自身的指标查看与遥测

prometheus 查看指标
1.5版本去掉mixter新版遥测未来可能是基于WebAssembly技术,来实现插件化

4. 环境操作入门

在线免费的环境:Katacoda:免费学习 Kubernetes 利器

K8S入门视频:Kubernetes基础入门

5. ENVOY文档

中文参考文档 v1.5.0

自己看文档晦涩效率低,一套类似文档导读的视频:https://www.ixigua.com/6857408733321003533?id=6857420520548205059&logTag=BqMu9vllEW0k17Kp96EWD

【云原生学院 #7】Envoy 调试流量的常用技巧

你可能感兴趣的:(istio学习资料(持续更新))