K8S 生产实践-17-1-ServiceMesh 代表作-Istio

一、什么是ServiceMesh?

  • 服务网格
  • 是概念,不是产品
  • 解决网络层面的问题

对比

  • 都是基于Sidecar 模式;
  • 都分为数据层和控制层

二、Istio架构和原理

Istio使用功能强大的 Envoy 服务代理扩展了 Kubernetes,以建立一个可编程的、可感知的应用程序网络。Istio 与 Kubernetes 和传统工作负载一起使用,为复杂的部署带来了标准的通用流量管理、遥测和安全性。

file

istio架构图:
file

istio解决的问题:

故障排查

  • 这个请求在哪失败的?A有调用B吗?
  • 为什么用户的请求/页面 hung 住了?
  • 为什么系统这么慢?那个组件最慢?

应用容错性

  • 客户端没有设置 timeout 导致应用卡住
  • 没有重试机制,某个服务偶尔出现的异常导致用户页面错误
  • 某些节点异常(如load高),导致应用响应变长

应用升级发布

  • 新版本一次性升级,一旦出错影响分为很大
  • 无法进行 A/B 测试,根据用户属性访问不通版本
  • 服务版本的依赖关系处理不当导致的服务不可用

系统安全

  • 服务都是 HTTP 的而非 HTTPS
  • 没有流量限制,任何人都可以对服务发起攻击

相关文章:
K8S 生产实践-17-2-部署 stio

为者常成,行者常至