微服务架构Istio学习笔记2
- What is istio?
- Why use Istio?
- 控制平面的功能
- 重要特点
- 流量管理
- 安全
- 监控
- 平台支持
- 集成和本地化
- Istio的架构
- Envoy
- Mixer
- Pilot
- Citadel
翻译自官网
What is istio?
- Istio用来将传统应用微服务化
- Istio使用service mash作为微服务之间的通信及交互,并在service mesh的基础上提供行为监控及操作控制,诸如服务发现,负载平衡,故障恢复,指标,监控等
Why use Istio?
- Istio旨在提高集群可扩展性,满足各种部署需求
- 可以在不影响原有service部署的情况下部署基于Istio的微服务框架,实现微服务平台的各种管理功能
- 部署方式是在创建Pod时加入名为sidercar的转发组件,加入后,Pod网络流量都会通过sidercar组件转发
控制平面的功能
- 支持HTTP、gRPC、WebSocket、TCP流量的负载均衡功能
- 通过多样的路由规则,重试,故障转移和故障注入,对流量行为进行细粒度控制
- 支持访问控制,速率限制和配额管理
- 对集群的出入口进行自动的流量监控和日志采集
- 通过强大的身份验证和授权,在群集中实现可靠的Pod间通信
重要特点
流量管理
- 配置流量和路由规则,对Pod之间的流量进行管理
- Istio简化了熔断器、超时、重试等服务,可以按照百分比进行流量分割
- 可视化流量监控和故障恢复功能
安全
- Istio提供底层安全通信信道,并大规模管理服务通信的认证,授权和加密
监控
- Istio强大的跟踪,监控和日志记录可让您深入了解服务网格部署
- 通过Istio的监控功能真正了解服务性能如何影响上游和下游的功能,同时其自定义仪表板提供对所有服务性能的可视性,并让您了解该性能如何影响您的其他流程
- Istio的Mixer组件负责策略控制和遥测收集
平台支持
- Istio独立于平台,在Kubernetes和Mesos上都可以运行
集成和本地化
- 可以扩展和定制Istio的策略实施组件,以便与现有的ACL,日志记录,监控,配额,审计等解决方案集成
Istio的架构
- Istio在逻辑上分为data plane和control plane
- data plane由Proxy(sidecar)和Mixer组件组成,负责东西向的数据传输
- control plane由Pilot、Citadel组成,用来管理Proxy及路由流量
Envoy
- Istio将Envoy当做Proxy(sidecar)使用
- sidercar会从pod中获取信号传输给Mixer来执行策略决策,并将它们发送到监控系统,以提供有关整个网格行为的信息
Mixer
- Mixer独立于平台
- Mixer从sidercar中获得数据来实施控制和使用策略
Pilot
- Pilot利用sidercar回传的信号提供智能路由和流量管理的功能
- 实现服务发现功能
Citadel
- 提供身份验证功能