变更说明
涉及以下变更:
流量管理
-
添加了 values.global.proxy.holdApplicationUntilProxyStarts config选项,它使sidecar注入器在pod容器列表的开始处注入sidecar,并将其配置为阻止所有其他容器的开始,直到代理就绪为止。默认情况下禁用此选项。(#11130)
-
新增了对用于客户端证书和CA证书的SDS支持,该证书用于使用DestinationRule从Egress Gateway发起的TLS/mTLS(#14039)
安全
- 改进的信任域验证也可以验证TCP流量,以前仅验证HTTP流量。(#26224)
- 改进的Istio网关,允许在服务器的TLS模式为ISTIO_MUTUAL时使用基于源主体的授权。(#25818)
- 改进的虚拟机安全性。 VM身份现在从一个短暂的Kubernetes服务帐户令牌中启动。 VM的工作负载证书会自动轮换。(#24554)
遥测
- 向istio-Agent添加了Prometheus指标。(#22825)
- 使用istioctl添加了自定义Metrics。(#25963)
- 向Stackdriver添加了TCP Metrics和访问日志。(#23134)
- istioctl已弃用遥测插件。 默认情况下将禁用这些功能,并且在将来的版本中将其完全删除。(#22762)
- 默认情况下,已启用Prometheus Metric合并。(#21366)
- 修复了合并的Prometheus指标不会在应用程序故障期间删除Envoy指标的。(#22825)
- 修复了无法解释的遥测会影响Kiali图。 此修复程序将默认出站协议嗅探超时增加到5s,这对像mysql这样的服务器优先协议产生了影响。(#24379)
- 删除了不准确的pilot_xds_eds_instances和pilot_xds_eds_all_locality_endpoints Istiod指标。(#25154)
安装
- 向版本中添加了用于在VM上运行Istio sidecar的RPM软件包。 9117)
- 增加了对单个群集和多个群集的实验性中央Istiod支持
修复了阻止NodePort服务用作meshNetworks中的RegistryServiceName的。 - 改进的网关部署,默认情况下以非root用户身份运行。(#23379)
- 改进了operator默认情况下以非root用户身份运行的功能。(#24960)
- 通过指定严格的安全上下文来改进operator。(#24963)
- 改进了Istiod,默认情况下以非root用户身份运行。(#24961)
- 改进的Kubernetes strategic merge用于覆盖IstioOperator用户文件,从而改善了列出/处理的方式。(#24432)
- 将CRD和Webhook版本升级到v1。(#18771),(#18838)
istioctl
- 为非Kubernetes工作负载添加了Allow proxy-status 命令,并通过–file参数传递了代理配置。
- 添加了一个配置文件以保存istioctl默认标志。可以使用环境变量ISTIOCONFIG更改其默认位置($HOME/.istioctl/config.yaml)。新命令istioctl实验性配置列表显示了默认标志。(#23868)
- 为istioctl operator init和istioctl operator remove命令添加了–revision标志,以支持多控制平面升级。(#23479)
- 添加了istioctl x uninstall命令以卸载Istio控制平面。(#24360)
- 改进的istioctl analyze可警告是否存在已弃用的混合器资源(#24471)
- 改进的istioctl analyze可警告DestinationRule是否未使用CaCertificates验证服务器身份。
- 改进的istioctl validate以检查资源中的未知字段。(#24861)
- 改进的istioctl install,在尝试以不支持的旧Kubernetes版本安装Istio时发出警告。(#26141)
- 删除的istioctl manifest apply。更简单的install命令将替换清单应用。(#25737)
升级说明
从Istio 1.6.x升级到Istio 1.7.x时,需要考虑以下更改。这些说明详细说明了有意破坏与Istio 1.6.x的向后兼容性的更改。这些说明还提到了在引入新行为时保留向后兼容性的更改。仅当新行为对Istio 1.6.x的用户而言是意外的时,才包括更改。
需要Kubernetes 1.16+
现在需要安装Kubernetes 1.16+。
安装
- istioctl manifest apply已删除,请istioctl install改用。
- istioctl不建议安装遥测插件,请使用这些插件集成说明。
网关以非root用户身份运行
默认情况下,网关现在将在没有root权限的情况下运行。结果,它们将不再能够绑定到1024以下的端口。默认情况下,我们将绑定到有效端口。但是,如果要在网关上明确声明端口,则可能需要修改installation。例如,如果您以前有以下配置:
ingressGateways:
- name: istio-ingressgateway
enabled: true
k8s:
service:
ports:
- port: 15021
targetPort: 15021
name: status-port
- port: 80
name: http2
- port: 443
name: https
应该更改它以指定targetPort可以绑定到的有效对象:
ingressGateways:
- name: istio-ingressgateway
enabled: true
k8s:
service:
ports:
- port: 15021
targetPort: 15021
name: status-port
- port: 80
name: http2
targetPort: 8080
- port: 443
name: https
targetPort: 8443
注意:targetPort仅修改网关绑定到的端口。客户端仍将连接到由port(通常为80和443)定义的端口,因此此更改应该是透明的。
如果您需要以root用户身份运行,可以使用此选项启用--set values.gateways.istio-ingressgateway.runAsRoot=true
。