Istio 1.26.0 更新说明
Istio 1.26.0 更新说明。
流量治理
改进 改进了 CNI 代理,使其不再需要
hostNetwork,从而增强了兼容性。 现在可以根据需要动态切换到主机网络。可以通过设置istio-cniChart 中的ambient.shareHostNetworkNamespace字段暂时恢复之前的行为。 (Issue #54726)改进 改进了 iptables 二进制检测,以验证基线内核支持, 并在旧版和
nft都存在但未指定规则时优先选择nft。更新 更新了每个套接字事件接受的最大连接数默认值为 1,以提高性能。 要恢复到之前的行为,请将
MAX_CONNECTIONS_PER_SOCKET_EVENT_LOOP设置为 0。新增 添加了
EnvoyFilter通过域名匹配VirtualHost的功能。新增 添加了对实验性 Gateway API 功能
BackendTLSPolicy和XBackendTrafficPolicy的初始支持。 这些功能默认处于禁用状态,需要设置PILOT_ENABLE_ALPHA_GATEWAY_API=true。 (Issue #54131), (Issue #54132)新增 添加了在
SIMPLE模式下,除了Secret之外, 还支持引用ConfigMap,用于DestinationRuleTLS - 当只需要 CA 证书时很有用。 (Issue #54131), (Issue #54132)新增 添加了 Gateway API 自动化部署的自定义支持。 这适用于 Istio
Gateway类型(入口和出口)以及 Istio waypointGateway类型(Ambient waypoint)。 用户现在可以自定义生成的资源,例如Service、Deployment、ServiceAccount、HorizontalPodAutoscaler和PodDisruptionBudget。新增 为
istiod添加了新的环境变量ENABLE_GATEWAY_API_MANUAL_DEPLOYMENT。 设置为false时,将禁用 Gateway API 资源自动附加到现有网关部署的功能。 默认情况下,该变量为true,以维持当前行为。新增 添加了使用 Retry API(
retry_ignore_previous_hosts)配置重试主机谓词的功能。新增 添加了对重试期间指定退避间隔的支持。
新增 添加了在 waypoint 代理中使用
TCPRoute的支持。修复 修复了当
ServiceEntry配置了带有 DNS 解析的workloadSelector时, 验证 webhook 错误地报告警告的问题。 (Issue #50164)修复 修复了使用 Ambient 模式时 FQDN 无法在
WorkloadEntry中工作的问题。修复 修复了在 Gateway 侦听器上启用 mTLS 时
ReferenceGrants不起作用的情况。 (Issue #55623)修复 修复了 Istio 无法正确检索沙盒 waypoint 的
allowedRoutes的问题。 (Issue #56010)修复 修复了当 Pod 被驱逐时
ServiceEntry端点泄漏的错误。 (Issue #54997)修复 修复了 IPv6 优先级双栈服务的监听器地址重复的问题。 (Issue #56151)
安全性
- 新增 添加了对 v1alpha1
ClusterTrustBundleAPI 的实验性支持。 您可以通过设置values.pilot.env.ENABLE_CLUSTER_TRUST_BUNDLE_API=true来启用此功能。 请确保您的集群中已启用相应的功能门控; 详情请参阅 KEP-3257。 (Issue #43986)
遥测
新增 通过 Telemetry API 添加了对
EnvoyFileAccessLog提供程序中的omit_empty_values字段的支持。 (Issue #54930)新增 添加了环境变量
PILOT_SPAWN_UPSTREAM_SPAN_FOR_GATEWAY, 用于分隔服务器和客户端网关的链路追踪跨度。当前默认为false,但将来会默认开启。新增 添加了使用弃用的遥测提供商 Lightstep 和 OpenCensus 的警告消息。 (Issue #54002)
安装
改进 改进了 GKE 上的安装体验。设置
global.platform=gke后, 所需的ResourceQuota资源将自动部署。通过istioctl安装时, 如果检测到 GKE,此设置也会自动启用。此外,cniBinDir现已被正确配置。改进 改进了
ztunnelHelm Chart,不再将资源名称分配给.Release.Name, 而是默认使用ztunnel。此操作撤销了 Istio 1.25 中引入的更改。新增 添加了通过
istioctl或 Helm 安装 Istio 时在修订标签 webhook 中设置reinvocationPolicy的支持。新增 添加了在 Gateway Helm Chart 中配置服务
loadBalancerClass的功能。 (Issue #39079)新增 添加了一个
ConfigMapValue, 用于存储用户提供的 Helm Value 以及应用istiodChart 的配置文件后的合并 Value。新增 添加了从
istiod环境变量读取标头值的支持。 (Issue #53408)新增 为
ztunnel和istio-cniHelm Chart 添加了可配置的updateStrategy。修复 修复了 Sidecar 注入模板中的一个错误, 当流量拦截和原生 Sidecar 都被禁用时,该问题会错误地删除现有的 init 容器。 (Issue #54562)
修复 修复了使用
--set networkGateway时网关 Pod 上缺少topology.istio.io/network标签的问题。 (Issue #54909)修复 修复了在
istio/gatewayHelm Chart 中设置replicaCount=0导致replicas字段被省略而不是明确设置为0的问题。 (Issue #55092)修复 修复了使用 SPIRE 作为 CA 时导致基于文件的证书引用(例如来自
DestinationRule或Gateway)失败的问题。移除 删除了已弃用的
ENABLE_AUTO_SNI标志和相关代码路径。
istioctl
新增 在
istioctl experiment workload group create上添加了一个--locality参数。 (Issue #54022)新增 添加了使用
istioctl analyze命令运行特定分析器检查的功能。新增 在
istioctl create-remote-secret中添加了--tls-server-name参数, 允许在生成的 kubeconfig 中设置tls-server-name。 这可确保当server字段被网关代理主机名覆盖时,TLS 连接能够成功。新增 添加了对
istiodChart 中的envVarFrom字段的支持。修复 修复了
istioctl analyze报告未知注解sidecar.istio.io/statsCompression的问题。 (Issue #52082)修复 修复了省略
IstioOperator.components.gateways.ingressGateways.label或IstioOperator.components.gateways.ingressGateways.label时阻止安装的错误。 (Issue #54955)修复 修复了
istioctl忽略IstioOperator.components.gateways.ingressGateways和egressGateways下的tag字段的错误。 (Issue #54955)修复 修复了当指定名称时,
istioctl waypoint delete可能会删除非 waypoint Gateway 资源的问题。 (Issue #55235)修复 修复了
istioctl experiment describe不遵循--namespace标志的问题。 (Issue #55243)修复 修复了使用
istioctl创建 waypoint 代理时阻止同时生成istio.io/waypoint-for和istio.io/rev标签的错误。 (Issue #55437)修复 修复了
istioctl admin log无法修改ingress status日志级别的问题。 (Issue #55741)修复 修复了在
istioctlYAML 配置中设置reconcileIptablesOnStartup: true时验证失败的问题。 (Issue #55347)