介绍

介绍

Istio是一个开放平台,提供统一的方式来集成微服务,管理跨微服务的流量,执行策略和汇总遥测数据。Istio的控制面板在底层集群管理平台(如Kubernetes,Mesos等)上提供了一个抽象层。

Istio由以下组件组成:

  • Envoy - 每微服务器的Sidecar代理,处理集群中的服务间和服务到外部服务的入口/出口流量。代理形成安全的微服务网格,提供丰富的功能,如服务发现,丰富的7层路由,熔断器,策略执行和遥测记录/报告功能。

注意:服务网格不是overlay网络。它简化和增强了应用程序中的微服务通过底层平台提供的网络彼此通话的方式。

  • Mixer - 由代理和微服务使用的集中式组件,用于执行策略,如鉴权,限流,配额,认证,请求跟踪和遥测收集等。

  • Pilot - 负责在运行时配置代理的组件。

  • Citadel - 负责证书颁发和轮换的集中式组件

  • Node Agent - 负责证书颁发和轮换的每节点组件

  • Galley - 用于在Istio中验证,摄取,聚合,转换和分发配置的中央组件。

Istio目前只支持Kubernetes平台和基于consul的环境,我们计划在不久的将来支持其他平台,如Cloud Foundry和Mesos。

仓库

Istio项目分为多个GitHub库。

  • istio/istio: 这是Istio的主要存储库。 它托管了Istio的核心组件,以及管理Istio开源项目的示例程序和各种文档。 这包括:

    • security:此目录包含与安全性相关的代码,包括Citadel(充当证书颁发机构),node agent。
    • pilot:此目录包含特定于平台的代码,用于填充抽象服务模型,在应用程序拓扑更改时动态重新配置代理,以及将路由规则转换为特定于代理的配置。
    • istioctl:该目录包含istioctl命令行实用程序的代码。
    • mixer:此目录包含用于对通过代理的流量实施各种策略以及从代理和服务收集遥测数据的代码。 有插件可与各种云平台,策略管理服务和监控服务连接。
  • istio/API:该存储库定义了Istio平台的组件级API和通用配置格式。

  • istio/proxy: Istio代理包含Envoy代理的扩展(以Envoy过滤器的形式),允许代理将策略执行决策委托给Mixer。