## 综合

- **更新配置模型**：目前 Istio 使用的是 Kubernetes [自定义资源](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) 来描述和保存配置信息。在 Kubernetes 中运行时，可以选择使用 `kubectl` 命令来进行配置的管理了。

- **多命名空间的支持**：现在 Istio 控制平面被部署到独立的 `istio-system` 命名空间，Istio 能够管理其它非系统命名空间的服务了。

- **网格扩展**：服务网格中开始加入对非 Kubernetes 服务的支持（虚拟机或物理机上的服务）。这是一个非常早期的版本，还有一些限制（例如需要一个跨越容器和虚拟机的平面网络）。

- **多环境支持**：开始和其他的服务注册机制提供支持（包括 Consul 和 Eureka）。

- **Sidecar 的自动注入**：Kubernetes 提供了 Alpha 阶段的 [Initializers](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/) 功能，Istio 利用这一功能自动的将 Sidecar 注入到 Pod 之中。

## 性能和质量

这一版本中做出很多性能和可靠性方面的改进。虽然还 Istio 0.2 还不能投入生产使用，但是我们在这个方向上取得了长足的进步。下面是一些记录：

- **客户端缓存**：Envoy 中使用的 Mixer 客户端库开始为预检功能提供缓存，并用批处理的方式来进行报告，应该能减少端到端的开销。

- **避免热重启**：有效的运用 LDS/RDS/CDS/EDS 技术，消除了大多数热重启 Envoy 的需要。

- **降低内存用量**：Sidecar helper agent 的内存用量从 50Mb 降低为 7Mb。

- **改善 Mixer 延迟**：Mixer 清晰的划定了配置和请求的边界，避免了在请求发起时做出额外的设置工作，从而提供了更平滑的平均延迟。更好的资源缓存也改善了端到端性能。

- **降低 Egress 流量的延迟**：现在直接从 Sidecar 完成到外部服务的流量转发。

## 流量管理

- **Egress 规则**：可以为 Egress 流量指定路由规则了。

- **新的协议**：为 MongoDB、WebSocket 连接以及 Kubernetes [Headless 服务](https://kubernetes.io/docs/concepts/services-networking/service/#headless-services) 提供网格范围的支持。

- **其它改进**：Ingress 为 gRPC 服务提供了正确的支持，并改善了健康检查和 Jaeger 跟踪功能。

## 遥测和策略实施

- ** Ingress 策略**：除了 0.1 中提供的东西向流量支持，现在还可以将策略应用于南北向流量。

- **支持 TCP 服务**：在 0.1 中为 HTTP 提供了策略控制，0.2 中为 TCP 服务也提供了策略控制。

- **新的 Mixer API**：Envoy 用于与 Mixer 交互的 API 已经过全面重新设计，以提高健壮性和灵活性，并提供了客户端缓存和批处理等措施以提高性能。

- **新的 Mixer 适配器模型**：新的适配器组合模型通过模板添加全新的适配器类，可以更轻松地扩展Mixer，这个新模型将成为未来许多功能的基础构建模块，请参阅[适配器开发人员指南](https://github.com/istio/istio/wiki/Mixer-Compiled-In-Adapter-Dev-Guide)，深入了解开发适配器的方法。

- **改进的 Mixer 构建模型**：现在，构建包含自定义适配器的 Mixer 二进制文件变得更加容易。

- **Mixer 适配器更新**：所有内置适配器都已重写，以适应新的适配器模型，该版本中添加了 `stackdriver` 适配器，实验性的 Redis 配额适配器已在 0.2 版本中删除，但预计将在 0.3 版本中恢复提供。

- **Mixer 调用跟踪**：现在可以在 Zipkin 仪表板中追踪和分析 Envoy 和 Mixer 之间的调用。

## 安全

- **TCP 流量的双向 TLS**：除 HTTP 流量外，现在还为 TCP 流量提供了双向 TLS 支持。

- **虚拟机和物理机的身份配置**：`Auth` 支持使用节点代理进行身份配置的新机制，此代理在每个节点（VM /物理机）上运行，并负责生成和发送 CSR（证书签名请求），并 Istio CA 获取证书。

- **自行提供 CA 证书**：允许用户为 Istio CA 提供自己的密钥和证书。

- **持久性 CA 密钥/证书存储**：Istio CA 为密钥和证书提供了持久存储，便于 CA 重新启动。

## 已知的问题

- **用户在访问应用程序时可能会定期遭遇 404 错误**:  我们注意到，有时 Envoy 无法正确获取路由，因此返回给用户 404 错误，我们正积极解决这一[问题](https://github.com/istio/istio/issues/1038)。

- **在 Pilot 实际就绪之前，Istio Ingress 或 Egress 报告已准备就绪**：您可以在 `istio-system` 命名空间中检查 `istio-ingress` 和 `istio-egress` 的 Pod 状态，并在所有 Istio pod 达到就绪状态后等待几秒钟，该[问题](https://github.com/istio/istio/pull/1055)正在解决之中。

- **启用了 `Istio Auth` 的服务无法与非 Istio 服务通信**：将会在近期解除这一限制。