云原生Service Mesh istio 技术体系
2022-02-16 11:14:06 42 举报
AI智能生成
登录查看完整内容
最通俗易懂的Service Mesh-知识体系-技能树
作者其他创作
大纲/内容
四大定律
几十年架构演进的指导思想之一
提高效率的方式之一就是参照组织架构划分子系统
康威定律
八个谬论
分布式事务
实现API幂等性
配置中心
注册中心
网络配置解耦
全链路追踪
容错
灰度发布
监控
故障转移
流量发放
pod运行正常但是service濒临崩溃,服务检测困难
部署问题
。。。
如何应对这种复杂性
用复杂性,来解决复杂性的问题
控制成百上千个微服务的复杂性的挑战
网络问题不可控,业务类型复杂多变,提升了治理的维度,直至不可用
控制体系过于松散,没有统一的治理平面
治理环节可能侵入业务层
治理的复杂性,限制了微服务架构的规模
应对复杂性方案带来的痛点
微服务架构带来的网络复杂性
CNCF全景图
容器化包装
通过中心编排系统的动态资源管理
面向微服务
CNCF的使命
CNCF简介
CNCF
Docker
war与Server分离模式
分布式文件系统、Volume的共享
Kubernetes InitContainer
日志收集模式
Proxy容器模式
适配器容器模式
Sidecar模式
服务注册与发现模式
中心化Broker模式
容器设计模式
容器化
Kubernetes环境中应用程序最小单位,Istio中包含Service + Proxy
Pod
自定义资源的方式,Istio控制平面配置的基础
底层集合K8s Controller = Operator
搭配Istio适配器实现原生功能
Kubernetes CRD(CustomResourceDefinition)
Kubernetes Helm
Kubernetes Ingress
Kubernetes Egress
Node级别代理
Kudu Proxy
Kubernetes APIServer
Kubernetes Service & Endpoint
自动故障恢复机制
Kubernetes环境下,Pilot实现服务注册发现的底层实现
Etcd
Kubernetes可视为Istio的基座
Istio是Kubernetes的复用 & 叠加 & 增强
Istio和Kubernetes的关系
Kubernetes
基于Flux CD的GitOps
两者的关系
GitOps的现实意义和实现前提
DevOps & GitOps
MVP理念
云原生
前置理论基础 & 概念
Envoy
Linkerd
数据平面
Istio
控制层面
Service Mesh选型
Mesh构建便利,环境无关,快速扩展
应用代码无侵入,业务层与治理,遥测等扩展能力无耦合
服务治理功能内聚度高,度量工具提供装配器,方便整合
真正的云原生底层框架,在Kubernetes基础至上叠加增强功能
资源组织方式统一
优势
需要更多的server,性价比低
网络开销大,服务器压力大
业务节点调用链变长,大量性能消耗在代理和Mixer上
服务粒度过细
框架本身的问题
版本兼容性问题(早期版本)
例子:istio dns proxy may cause pod/service ip conflictsstio dns代理可能会导致pod/服务ip冲突
App container unable to connect to network before sidecar is fully running在sidecar完全运行之前,应用程序容器无法连接到网络
需要关注GitHub Issue
新技术,成熟度低,可能有bug
最佳实践积累程度不够
原生配置使用文本方式,无可视化界面
劣势
解耦,架构边界清晰
分布式部署,增加了复杂度 & 网络通信压力
分拆
简化架构,提升网络性能
内部模块化,保持功能边界清晰,保持扩展性
提升安全性
回归单体
架构优化
istio版本迭代
网络通信
微服务通信的痛点
在云服务使用ServiceMesh的意义
与普通微服务对比
概述
Envoy代理接管的端口、协议
限制Envoy代理可访问的服务
Sidercar代理集合 by Envoy
路由配置信息转换成Envoy配置,并广播分发至Sidecar
Pilot
配置验证,提取处理,分发【1.1 & 1.5】
Galley
驱动Envoy check & report
监测数据手机 From Sidecar
限流 & 黑白名单
Mixer(only 1.0 & 1.1)
插件适配器【only 1.1】
Adapter
管理TLS certs
Citadel
组件
1.0 - 分布式
1.1 进一步分布式
1.5 单体模块化
架构模式
控制平面
架构
业务代码无侵入
跨云、跨集群通信
跨平台计算
协议
基础特性
路由、流量转移
蓝绿部署
AB测试
流量控制
超时
重试
熔断/降级
弹性
故障注入
流量镜像
调试
通过istio控制平面实现,定义Kubernetes CRD,推送给data plane
实现
定义PeerAuthentication CRD
DISABLE
STRICT
PERMISSIVE
UNSET
mTSL模式
对等认证(服务间)
JWT
请求认证(终端用户)
认证
定义AuthorizationPolicy CRD
授权
分类
安全
内外之分
主动 or 被动
可观察性和监控的区别
集成Prometheus Server
实现方式 - 通过聚合数据
网络请求相关的指标
代理级别(Proxy-level)
延迟、流量、错误、饱和
服务级别(Service-level)
控制平面(Control plane)
指标(度量 -Metrics)
接入jeager等
分布式追踪
Kiali
Istio服务网格可视化
EFK日志收集系统
EFK
elk日志收集系统
ELK
集中式日志系统
可观察性
限流
黑白名单
策略
原生功能
istio
本地环境 + Bookinfo
Dev自建机房 + 自行搭建 Kubernetes + Istio + Envoy
腾讯云容器服务-服务网络
阿里云服务网格 ASM
项目实践
交付
云原生Service Mesh istio 技术体系
0 条评论
回复 删除
下一页