Istio 1.0

我们很自豪地发布了 Istio 1.0!Istio 至今已经开发了近两年,1.0 版本对我们来说是一个重要的里程碑。我们所有的核心功能现在都已经可以用于生产环境。

本文描述了 Istio 1.0 与 Istio 0.8 之间的不同之处。 此版本的大部分工作都用于修复错误和提高性能,因此相对于 0.8 来说,Istio 1.0 只提供了很少的新功能。

1.0 文档

网络

  • 使用 Virtual Service 进行 SNI 路由VirtualService 中新引入的 TLS 部分可用于根据 SNI 值路由 TLS 流量。名为 TLS/HTTPS 的服务端口可与虚拟服务 TLS 路由一起使用。没有附带虚拟服务的 TLS/HTTPS 端口将被视为不透明 TCP。

  • 流式 gRPC 恢复:Istio 0.8 中,长时间运行的流式 gRPC 连接会周期性的遭遇中断。这一问题已经在 1.0 中得以修复。

  • 移除旧版本(v1alpha1)的网络 API:已删除对旧的 v1alpha1 流量管理模型的支持。

  • Istio Ingress 被弃用:Istio Ingress 已弃用。默认情况下,旧的 Istio ingress 已被弃用和禁用。我们鼓励用户改用 Gateway

策略和遥测

  • 属性更新:用于描述流量来源和目的地的一组属性得到大幅改进,变得更加精确和全面。

  • 预检缓存:Mixer 现在为策略检查提供了较大的二级缓存,为 Sidecar 代理中的一级缓存提供了有力补充。进一步降低了的策略检查过程造成的平均延迟。

  • 遥测缓存:在调用适配器之前,Mixer 会对报告进行缓冲,这使适配器有机会以更大的块来处理遥测数据,从而减少了 Mixer 及其适配器的总体计算开销。

  • 进程外适配器:Mixer 现在为进程外适配器提供了初步支持。这是与 Mixer 集成的推荐方法。关于如何构建进程外适配器,可以阅读进程外适配器开发指南进程外 gRPC 适配器开发解析

  • 客户端遥测:除了服务器端遥测之外,现在还可以从交互的客户端收集遥测数据。

适配器

  • SignalFX:提供了新的 signalfx 适配器。

  • Stackdriver:此版本中的 stackdriver 适配器已得到充分增强,添加了新功能,同时也提高了性能。

安全

istioctl

  • 添加了 istioctl authn tls-check 命令。

  • 添加了 istioctl proxy-status 命令。

  • 添加了 istioctl experimental convert-ingress 命令。

  • 移除了 istioctl experimental convert-networking-config 命令。

  • 增强和 bug 修复:

    • istioctl 和 kubectl 使用相同的  kubeconfig

    • istioctl get all 返回网络和身份验证配置的所有类型。

    • istioctl get 命令中添加 --all-namespaces 标志,可用于检索所有 namespace 中的资源。

1.0 的已知问题

  • 亚马逊的 EKS 服务尚未支持 Sidecar 的自动注入。通过使用 Helm 参数 --set galley.enabled=false,使用手动注入 Sidecar 的方式,并关闭 Galley,可以在亚马逊的 EKS 中使用 Istio。

  • 多集群部署中,mixer-telemetry 和 mixer-policy 组件不会连接到任何远程集群的 Kubernetes API 端点。这将导致遥测保真度受损,因为与远程集群上的工作负载相关联的一些元数据不完整。

  • 当前有 Kubernetes 清单文件可用于独立启用 Citadel 或执行 Citadel 运行状况检查。这些模型还没有通过 Helm 实现。有关详细信息,请参见 Issue 6922

  • 让用户能够将原始虚拟机加入网格的扩展功能目前无法工作,我们将在未来几天内提供一个补丁来修正这一问题。