Istio 是一个开源服务网格,可以透明地分层到现有的分布式应用程序上。 Istio 的强大功能提供了一种统一且更有效的方式来保护、连接和监控服务。 Istio 是实现负载平衡、服务间身份验证和监控的途径——只需很少或无需更改服务代码。
有关如何使用 Istio 的深入信息,请访问 istio.io
要提出问题并从我们的社区获取帮助,请访问 Github 讨论
要了解如何参与我们的整个社区,请访问我们的社区页面
在本自述文件中:
介绍
存储库
问题管理
此外,您可能还想阅读以下一些其他文档:
Istio 社区 - 描述如何参与 Istio 项目并为其做出贡献
Istio 开发人员指南 - 解释如何设置和使用 Istio 开发环境
项目约定 - 描述我们在代码库中使用的约定
创建快速和精益的代码 - 面向性能的代码库建议和指南
您可以在我们的 Wiki 上找到许多其他有用的文档。
Istio 是一个开放平台,提供统一的方式来集成微服务、管理跨微服务的流量、执行策略和聚合遥测数据。 Istio 的控制平面在底层集群管理平台(例如 Kubernetes)上提供了一个抽象层。
Istio 由以下组件组成:
Envoy - 每个微服务的 Sidecar 代理,用于处理集群中服务之间以及从服务到外部服务的入口/出口流量。这些代理形成一个安全的微服务网格,提供丰富的功能,例如发现、丰富的第 7 层路由、断路器、策略执行和遥测记录/报告功能。
注意:服务网格不是覆盖网络。它简化并增强了应用程序中的微服务通过底层平台提供的网络相互通信的方式。
Istiod - Istio 控制平面。它提供服务发现、配置和证书管理。它由以下子组件组成:
Pilot - 负责在运行时配置代理。
Citadel - 负责证书颁发和轮换。
Galley - 负责在 Istio 内验证、摄取、聚合、转换和分发配置。
Operator - 该组件提供用户友好的选项来操作 Istio 服务网格。
Istio 项目分为几个 GitHub 存储库:
istio/api。该存储库定义了 Istio 平台的组件级 API 和通用配置格式。
Istio/社区。该存储库包含有关 Istio 社区的信息,包括管理 Istio 开源项目的各种文档。
伊斯蒂奥/伊斯蒂奥。这是主要的代码存储库。它托管 Istio 的核心组件、安装工件和示例程序。它包括:
istioctl。该目录包含istioctl命令行实用程序的代码。
飞行员。该目录包含特定于平台的代码,用于填充抽象服务模型、在应用程序拓扑更改时动态重新配置代理以及将路由规则转换为代理特定配置。
安全。该目录包含安全相关的代码,包括Citadel(充当证书颁发机构)、citadel 代理等。
istio/代理。 Istio 代理包含 Envoy 代理的扩展(以 Envoy 过滤器的形式),支持身份验证、授权和遥测收集。
istio/ztunnel。该存储库包含环境网格的 ztunnel 组件的 Rust 实现。
istio/client-go。该存储库定义了自动生成的 Kubernetes 客户端,用于以编程方式与 Istio 资源进行交互。
笔记
只有istio/api
和istio/client-go
存储库公开了可直接用作库的稳定接口。
我们使用 GitHub 来跟踪所有错误和功能请求。我们跟踪的每个问题都有各种元数据:
史诗。史诗代表了整个 Istio 的一个功能领域。史诗的范围相当广泛,基本上是产品级别的东西。每个问题最终都是史诗的一部分。
里程碑。每个问题都分配有一个里程碑。这是 0.1、0.2、... 或“模糊的未来”。该里程碑表明我们认为该问题何时应该得到解决。
优先事项。每个问题都有一个优先级,由优先级项目中的列表示。优先级可以是 P0、P1、P2 或 >P2 之一。优先级表明在里程碑中解决问题的重要性。 P0 表示,如果问题没有得到解决,就不能认为已经实现了里程碑。
Istio 是一个云原生计算基金会项目。