理论入门
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
-
envoy 的一大卖点就是自带配置 API,但要把它自带的 API 用起来还挺周折。envoy 率先提出使用统一的 data-plane-api ,定义了一套 API 标准。
-
go-controller-plane 是 envoy 提出的 data-plane-api 的 go 语言实现,可以用它向 envoy 下发配置。
-
三个项目的关系: envoy 就是单机软件 envoy,data-plane-api 是 API 接口标准,go-control-plane 是 API 接口标准的实现。
3. 组件及功能
https://www.cnblogs.com/haoyunlaile/tag/service%20mesh/
3.1 安全
3.2 动态路由
- 应用场景
- 按服务版本路由
- 按比例切分流量
- 根据匹配规则进行路由
- 定义各种策略(负载均衡 、连接池等等)
2 核心组件: 虚拟服务+目标规则
- 虚拟服务:定义路由规则,定义匹配条件和请求去向
- 目标规则:定义目标 和策略
-
域模型
image.png
3.3 网关
- 应用场景:
- 运行在网格边缘的负载均衡器,控制网格的入口和出口的流量,需要一个sidecar,流量控制通过虚拟服务来实现
- 入口网关,接收外部请求,转发给网格内的服务
- 配置对外的端口、协议与内部服务的映射关系
- 访问安全控制
-
域模型
image.png
3.4 服务入口
使用服务入口Service Entry
来添加一个入口到 Istio 内部维护的服务注册中心。添加了服务入口后,Envoy 代理可以向服务发送流量,就好像它是网格内部的服务一样。配置服务入口允许您管理运行在网格外的服务的流量
- 应用场景:
- 为外部目标 redirect 和转发请求,例如来自 web 端的 API 调用,或者流向遗留老系统的服务。
- 为外部目标定义重试、超时和故障注入策略。
- 添加一个运行在虚拟机的服务来扩展您的网格。
- 从逻辑上添加来自不同集群的服务到网格,在 Kubernetes 上实现一个多集群 Istio 网格。
3.5 istio 可视化管理
kiali :
3.6 istio自身的指标查看与遥测
prometheus 查看指标
1.5版本去掉mixter新版遥测未来可能是基于WebAssembly技术,来实现插件化
4. 环境操作入门
在线免费的环境:Katacoda:免费学习 Kubernetes 利器
K8S入门视频:Kubernetes基础入门
5. ENVOY文档
自己看文档晦涩效率低,一套类似文档导读的视频:https://www.ixigua.com/6857408733321003533?id=6857420520548205059&logTag=BqMu9vllEW0k17Kp96EWD
网友评论