istio 1.7发布

时间:2022-07-24
本文章向大家介绍istio 1.7发布,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

变更说明

涉及以下变更:

流量管理

•添加了 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: 844

注意:targetPort仅修改网关绑定到的端口。客户端仍将连接到由port(通常为80和443)定义的端口,因此此更改应该是透明的。

如果您需要以root用户身份运行,可以使用此选项启用--set values.gateways.istio-ingressgateway.runAsRoot=true