我们很自豪地发布了Istio 1.3!
我们花了3个月的时间对整个产品进行了一些重大改进,并修复了Istio社区的提出的问题。
本发行说明介绍Istio 1.2.5
和Istio 1.3
之间的不同之处。
流量管理
- 未根据 Istio 约定命名端口时,自动为出站流量添加 HTTP 或 TCP。
- 为Gateway API添加了一种模式,用于相互TLS操作。
- 修复了当一个服务首先在网络上在允许的相互TLS进行通信时出现的问题,如MySQL和MongoDB。
- 改进了Envoy代理就绪检查。现在可以检查Envoy的状态。
pod spec
中不再需要修改容器端口。默认情况下捕获所有端口。- 改进了 EnvoyFilter API,现在可以添加或更新所有配置
- 改进了redis负载均衡器,在使用
redis proxy
时默认为MAGLEV。 - 改进了负载平衡,默认情况下将流量定向到同一区域和区域。
- 通过降低CPU利用率来改进Pilot。根据具体部署,减少量接近90%。
- 改进了
ServiceEntry API
,以允许在不同的命名空间中使用相同的hostname。 - 改进了
Sidecar API
,来自定义OutboundTrafficPolicy策略。
安全
- 为使用TLS的服务添加了信任域验证。默认情况下,server仅对来自同一信任域的请求进行身份验证。
- 添加lables以控制根据namespace生成的service帐户密钥。
- 添加了SDS支持,以便为每个Istio控制plane服务提供私钥和证书。
- 添加了对Citadel内省的支持。
- 向端口15014上的Citadel Agent的
/metrics
添加度量,用于监听SDS服务。 - 为Citadel Agent添加诊断,通过在8080端口上的
/debug/sds/workload
和/debug/sds/gateway
。 - 改进了
ingress网关
,以便在使用sds时从单独的secret加载受信任的ca证书。 - 通过强制使用
Kubernetes Trustworthy JWTs
来提高sds的安全性。 - 改进了Citadel Agent日志,通过统一日志的pattern。
- 当使用早于1.13的Kubernetes版本时,移除对Istio SDS的支持。
- 临时移除了与
Vault CA
的集成。 SDS要求导致临时删除,但我们将在以后的版本中重新引入Vault CA集成。 - 默认情况下启用Envoy JWT过滤器以提高安全性和可靠性。
Telemetry
- 为Envoy gRPC添加了访问日志服务ALS支持。
- 为Citadel监控添加了Grafana仪表盘。
- 添加了用于监控sidecar注入webhook的指标。
- 添加了控制平面指标以监控Istio的配置状态。
- 添加了针对Passthrough和BlackHole集群的流量的telemetry报告。
- Added alpha support for in-proxy generation of service metrics using Prometheus.
- 使用Prometheus为poxy内生成服务指标添加了alpha支持。
- 在Envoy节点元数据中添加了对环境元数据的alpha支持。
- 为 Metadata Exchange添加了alpha支持。
- 为OpenCensus跟踪驱动程序添加了alpha支持。
- 通过移除添加服务条目的要求,改进了对外部服务的报告。
- 改进了网格仪表板,以监控Istio的配置状态。
- 改进了Pilot仪表板以公开其他关键指标,以更清楚地识别错误。
- 移除了已弃用的Adapter和Template自定义资源定义(CRD)。
- 弃用的Mixer适配器。请开始转换到新扩展模型的所有扩展。Legacy Mixer集成支持仅适用于Istio 1.3和1.4。
- 不推荐使用用于生成API属性的HTTP API规范。我们将在Istio 1.4中移除生成API属性的支持。
Policy
- 改进了速率限制,以便在配额后端不可用时允许通信。
配置管理
- 修复了Galley关闭连接时阻塞过多GRPC ping的问题。
- 改进Galley以避免控制平面升级失败。
istioctl
- 添加了istioctl实验清单来管理新的实验安装清单。
- 添加了istioctl实验配置文件来管理新的实验安装配置文件。
- 添加了istioctl实验指标
- 添加了istioctl实验描述pod来描述Istio pod的配置。
- 添加了istioctl实验性的
add-to-mesh
,以将Kubernetes服务或虚拟机添加到现有的Istio服务网格中。 - 添加了istioctl实验性的
remove-from-mesh
,以从现有的Istio服务网格中删除Kubernetes服务或虚拟机。 - 将istioctl实验转换入口命令提升为
istioctl convert-ingress
。 - 将istioctl实验仪表板命令提升为istioctl dashboard。
其他
- 添加了基于distroless基本镜像的新镜像。
- 改进了Istio CNI Helm,使其与Istio具有一致的版本。
- 改进了Kubernetes Jobs的行为。 当job手动调用
/quitquitquit
端点时,Kubernetes Jobs现在可以正确退出。