K8S 生产实践-17-1-ServiceMesh 代表作-Istio
一、什么是ServiceMesh?
- 服务网格
- 是概念,不是产品
- 解决网络层面的问题
对比
- 都是基于Sidecar 模式;
- 都分为数据层和控制层
二、Istio架构和原理
Istio使用功能强大的 Envoy 服务代理扩展了 Kubernetes,以建立一个可编程的、可感知的应用程序网络。Istio 与 Kubernetes 和传统工作负载一起使用,为复杂的部署带来了标准的通用流量管理、遥测和安全性。
istio架构图:
istio解决的问题:
故障排查
- 这个请求在哪失败的?A有调用B吗?
- 为什么用户的请求/页面 hung 住了?
- 为什么系统这么慢?那个组件最慢?
应用容错性
- 客户端没有设置 timeout 导致应用卡住
- 没有重试机制,某个服务偶尔出现的异常导致用户页面错误
- 某些节点异常(如load高),导致应用响应变长
应用升级发布
- 新版本一次性升级,一旦出错影响分为很大
- 无法进行 A/B 测试,根据用户属性访问不通版本
- 服务版本的依赖关系处理不当导致的服务不可用
系统安全
- 服务都是 HTTP 的而非 HTTPS
- 没有流量限制,任何人都可以对服务发起攻击
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)